From 5f0bab00cdb35b85ff8dfd099c23d4f368a71abd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <slomo@circular-chaos.org>
Date: Sun, 14 Jul 2013 11:42:29 +0200
Subject: [PATCH] Imported Upstream version 1.1.2

---
 ChangeLog                                     | 8337 ++++++++++++++---
 Makefile.in                                   |  331 +-
 NEWS                                          |  219 +-
 README                                        |   46 +-
 RELEASE                                       |   66 +-
 aclocal.m4                                    |  790 +-
 autogen.sh                                    |   59 +-
 common/Makefile.in                            |  267 +-
 common/README                                 |  255 +
 common/c-to-xml.py                            |   14 +-
 common/check.mak                              |   68 +-
 common/coverage/coverage-report-entry.pl      |    2 +-
 common/coverage/coverage-report.pl            |    2 +-
 common/coverage/coverage-report.xsl           |    2 +-
 common/coverage/lcov.mak                      |   10 +-
 common/gst.supp                               |   15 +
 common/gstdoc-scangobj                        |   14 +-
 common/gtk-doc-plugins.mak                    |   17 +-
 common/gtk-doc.mak                            |   17 +-
 common/m4/Makefile.in                         |  103 +-
 common/m4/as-docbook.m4                       |   14 +-
 common/m4/gst-check.m4                        |   30 +-
 common/m4/gst-doc.m4                          |   62 +-
 common/m4/gst-glib2.m4                        |    8 +-
 common/m4/gst-plugin-docs.m4                  |   12 +-
 common/mangle-tmpl.py                         |    2 +
 common/scangobj-merge.py                      |   20 +-
 common/win32.mak                              |    8 +-
 compile                                       |   91 +-
 config.h.in                                   |   16 +-
 config.sub                                    |   11 +-
 configure                                     | 1098 ++-
 configure.ac                                  |   88 +-
 depcomp                                       |  124 +-
 docs/Makefile.in                              |  266 +-
 docs/plugins/Makefile.am                      |    6 +
 docs/plugins/Makefile.in                      |  133 +-
 .../gst-plugins-good-plugins-docs.sgml        |   17 +-
 .../gst-plugins-good-plugins-sections.txt     |  260 +-
 docs/plugins/gst-plugins-good-plugins.args    |  478 +-
 .../gst-plugins-good-plugins.hierarchy        |   18 +-
 .../gst-plugins-good-plugins.interfaces       |    2 +
 docs/plugins/gst-plugins-good-plugins.signals |   30 +-
 docs/plugins/html/GstIirEqualizer.html        |    2 +-
 docs/plugins/html/ch01.html                   |   56 +-
 docs/plugins/html/ch02.html                   |  149 +-
 docs/plugins/html/ch03.html                   |    8 +-
 ... => gst-plugins-good-plugins-1.0.devhelp2} |  913 +-
 .../gst-plugins-good-plugins-3gppmux.html     |   28 +-
 ...plugins-good-plugins-GstVideoMixerPad.html |    2 +-
 .../gst-plugins-good-plugins-aacparse.html    |   23 +-
 .../html/gst-plugins-good-plugins-aasink.html |   26 +-
 .../gst-plugins-good-plugins-ac3parse.html    |   27 +-
 .../gst-plugins-good-plugins-agingtv.html     |   23 +-
 .../gst-plugins-good-plugins-alawdec.html     |   21 +-
 .../gst-plugins-good-plugins-alawenc.html     |   21 +-
 .../html/gst-plugins-good-plugins-alpha.html  |   32 +-
 .../gst-plugins-good-plugins-alphacolor.html  |   21 +-
 .../gst-plugins-good-plugins-amrparse.html    |   30 +-
 .../gst-plugins-good-plugins-apedemux.html    |   23 +-
 .../gst-plugins-good-plugins-apev2mux.html    |   21 +-
 ...-plugins-good-plugins-aspectratiocrop.html |   27 +-
 ...gst-plugins-good-plugins-audioamplify.html |   23 +-
 ...st-plugins-good-plugins-audiochebband.html |   23 +-
 ...t-plugins-good-plugins-audiocheblimit.html |   23 +-
 ...gst-plugins-good-plugins-audiodynamic.html |   23 +-
 .../gst-plugins-good-plugins-audioecho.html   |   23 +-
 ...t-plugins-good-plugins-audiofirfilter.html |   32 +-
 ...t-plugins-good-plugins-audioiirfilter.html |   32 +-
 .../gst-plugins-good-plugins-audioinvert.html |   23 +-
 ...gst-plugins-good-plugins-audiokaraoke.html |   23 +-
 ...st-plugins-good-plugins-audiopanorama.html |   31 +-
 ...t-plugins-good-plugins-audiowsincband.html |   23 +-
 ...-plugins-good-plugins-audiowsinclimit.html |   29 +-
 .../gst-plugins-good-plugins-auparse.html     |   21 +-
 ...st-plugins-good-plugins-autoaudiosink.html |   18 +-
 ...gst-plugins-good-plugins-autoaudiosrc.html |   18 +-
 ...st-plugins-good-plugins-autovideosink.html |   18 +-
 ...gst-plugins-good-plugins-autovideosrc.html |   18 +-
 .../gst-plugins-good-plugins-avidemux.html    |   35 +-
 .../html/gst-plugins-good-plugins-avimux.html |   30 +-
 .../gst-plugins-good-plugins-avisubtitle.html |   23 +-
 .../gst-plugins-good-plugins-cacasink.html    |   18 +-
 ...gst-plugins-good-plugins-cairooverlay.html |   31 +-
 .../gst-plugins-good-plugins-capssetter.html  |   23 +-
 .../html/gst-plugins-good-plugins-cutter.html |   25 +-
 .../gst-plugins-good-plugins-dcaparse.html    |   27 +-
 .../gst-plugins-good-plugins-deinterlace.html |   25 +-
 ...gst-plugins-good-plugins-deinterleave.html |   23 +-
 .../html/gst-plugins-good-plugins-dicetv.html |   28 +-
 ...-plugins-good-plugins-directsoundsink.html |   15 +-
 .../gst-plugins-good-plugins-dtmfsrc.html     |  256 +
 .../gst-plugins-good-plugins-dv1394src.html   |   27 +-
 .../html/gst-plugins-good-plugins-dvdec.html  |   21 +-
 .../gst-plugins-good-plugins-dvdemux.html     |   26 +-
 .../html/gst-plugins-good-plugins-edgetv.html |   23 +-
 ...lugins-good-plugins-equalizer-10bands.html |   23 +-
 ...plugins-good-plugins-equalizer-3bands.html |   23 +-
 ...plugins-good-plugins-equalizer-nbands.html |   25 +-
 .../gst-plugins-good-plugins-flacdec.html     |   21 +-
 .../gst-plugins-good-plugins-flacenc.html     |   21 +-
 .../gst-plugins-good-plugins-flacparse.html   |   23 +-
 .../gst-plugins-good-plugins-flactag.html     |   21 +-
 .../gst-plugins-good-plugins-flvdemux.html    |   28 +-
 .../html/gst-plugins-good-plugins-flvmux.html |   28 +-
 .../html/gst-plugins-good-plugins-flxdec.html |   21 +-
 .../html/gst-plugins-good-plugins-gamma.html  |   27 +-
 ...plugins-good-plugins-gdkpixbufoverlay.html |  225 -
 ...st-plugins-good-plugins-gdkpixbufsink.html |   24 +-
 .../html/gst-plugins-good-plugins-goom.html   |   23 +-
 .../gst-plugins-good-plugins-goom2k1.html     |   23 +-
 .../gst-plugins-good-plugins-hdv1394src.html  |   18 +-
 .../gst-plugins-good-plugins-icydemux.html    |   23 +-
 .../gst-plugins-good-plugins-id3demux.html    |   23 +-
 .../gst-plugins-good-plugins-id3v2mux.html    |   21 +-
 .../gst-plugins-good-plugins-imagefreeze.html |   23 +-
 .../gst-plugins-good-plugins-interleave.html  |   23 +-
 .../gst-plugins-good-plugins-ismlmux.html     |   28 +-
 ...st-plugins-good-plugins-jackaudiosink.html |   16 +-
 ...gst-plugins-good-plugins-jackaudiosrc.html |   16 +-
 .../gst-plugins-good-plugins-jpegdec.html     |   21 +-
 .../gst-plugins-good-plugins-jpegenc.html     |   26 +-
 .../html/gst-plugins-good-plugins-level.html  |   86 +-
 ...st-plugins-good-plugins-matroskademux.html |   33 +-
 .../gst-plugins-good-plugins-matroskamux.html |   35 +-
 .../html/gst-plugins-good-plugins-mj2mux.html |   30 +-
 .../gst-plugins-good-plugins-monoscope.html   |   73 +-
 .../html/gst-plugins-good-plugins-mp4mux.html |   30 +-
 ...t-plugins-good-plugins-mpegaudioparse.html |   23 +-
 .../gst-plugins-good-plugins-mulawdec.html    |   24 +-
 .../gst-plugins-good-plugins-mulawenc.html    |   25 +-
 ...st-plugins-good-plugins-multifilesink.html |   25 +-
 ...gst-plugins-good-plugins-multifilesrc.html |   18 +-
 ...t-plugins-good-plugins-multipartdemux.html |   25 +-
 ...gst-plugins-good-plugins-multipartmux.html |   23 +-
 ...gst-plugins-good-plugins-multiudpsink.html |   79 +-
 .../html/gst-plugins-good-plugins-optv.html   |   23 +-
 .../gst-plugins-good-plugins-oss4sink.html    |   18 +-
 .../gst-plugins-good-plugins-oss4src.html     |   18 +-
 .../gst-plugins-good-plugins-osssink.html     |   16 +-
 .../html/gst-plugins-good-plugins-osssrc.html |   18 +-
 ...gst-plugins-good-plugins-osxaudiosink.html |   11 +-
 .../gst-plugins-good-plugins-osxaudiosrc.html |   11 +-
 ...gst-plugins-good-plugins-osxvideosink.html |   11 +-
 .../gst-plugins-good-plugins-plugin-1394.html |   18 +-
 ...st-plugins-good-plugins-plugin-aasink.html |   18 +-
 .../gst-plugins-good-plugins-plugin-alaw.html |   18 +-
 ...gst-plugins-good-plugins-plugin-alpha.html |   18 +-
 ...lugins-good-plugins-plugin-alphacolor.html |   18 +-
 ...st-plugins-good-plugins-plugin-apetag.html |   18 +-
 ...t-plugins-good-plugins-plugin-audiofx.html |   22 +-
 ...t-plugins-good-plugins-plugin-auparse.html |   18 +-
 ...lugins-good-plugins-plugin-autodetect.html |   18 +-
 .../gst-plugins-good-plugins-plugin-avi.html  |   18 +-
 ...-plugins-good-plugins-plugin-cacasink.html |   18 +-
 ...gst-plugins-good-plugins-plugin-cairo.html |   18 +-
 ...st-plugins-good-plugins-plugin-cutter.html |   18 +-
 ...gst-plugins-good-plugins-plugin-debug.html |   18 +-
 ...ugins-good-plugins-plugin-deinterlace.html |   18 +-
 ...ugins-good-plugins-plugin-directsound.html |   20 +-
 .../gst-plugins-good-plugins-plugin-dtmf.html |   90 +
 .../gst-plugins-good-plugins-plugin-dv.html   |   22 +-
 ...t-plugins-good-plugins-plugin-effectv.html |   18 +-
 ...plugins-good-plugins-plugin-equalizer.html |   18 +-
 .../gst-plugins-good-plugins-plugin-flac.html |   18 +-
 .../gst-plugins-good-plugins-plugin-flv.html  |   18 +-
 ...st-plugins-good-plugins-plugin-flxdec.html |   18 +-
 ...plugins-good-plugins-plugin-gdkpixbuf.html |   20 +-
 .../gst-plugins-good-plugins-plugin-goom.html |   18 +-
 ...t-plugins-good-plugins-plugin-goom2k1.html |   18 +-
 ...-plugins-good-plugins-plugin-icydemux.html |   18 +-
 ...-plugins-good-plugins-plugin-id3demux.html |   18 +-
 ...ugins-good-plugins-plugin-imagefreeze.html |   18 +-
 ...lugins-good-plugins-plugin-interleave.html |   18 +-
 ...st-plugins-good-plugins-plugin-isomp4.html |   18 +-
 .../gst-plugins-good-plugins-plugin-jack.html |   18 +-
 .../gst-plugins-good-plugins-plugin-jpeg.html |   18 +-
 ...gst-plugins-good-plugins-plugin-level.html |   18 +-
 ...-plugins-good-plugins-plugin-matroska.html |   18 +-
 ...plugins-good-plugins-plugin-monoscope.html |   18 +-
 ...gst-plugins-good-plugins-plugin-mulaw.html |   18 +-
 ...plugins-good-plugins-plugin-multifile.html |   18 +-
 ...plugins-good-plugins-plugin-multipart.html |   18 +-
 ...ns-good-plugins-plugin-navigationtest.html |   18 +-
 .../gst-plugins-good-plugins-plugin-oss4.html |   18 +-
 ...-plugins-good-plugins-plugin-ossaudio.html |   18 +-
 ...-plugins-good-plugins-plugin-osxaudio.html |   16 +-
 ...-plugins-good-plugins-plugin-osxvideo.html |   16 +-
 .../gst-plugins-good-plugins-plugin-png.html  |   18 +-
 ...lugins-good-plugins-plugin-pulseaudio.html |   18 +-
 ...lugins-good-plugins-plugin-replaygain.html |   18 +-
 .../gst-plugins-good-plugins-plugin-rtp.html  |   50 +-
 ...lugins-good-plugins-plugin-rtpmanager.html |   26 +-
 .../gst-plugins-good-plugins-plugin-rtsp.html |   18 +-
 ...plugins-good-plugins-plugin-shapewipe.html |   18 +-
 ...lugins-good-plugins-plugin-shout2send.html |   18 +-
 ...gst-plugins-good-plugins-plugin-smpte.html |   18 +-
 .../gst-plugins-good-plugins-plugin-soup.html |   18 +-
 ...-plugins-good-plugins-plugin-spectrum.html |   18 +-
 ...gst-plugins-good-plugins-plugin-speex.html |   18 +-
 ...st-plugins-good-plugins-plugin-taglib.html |   18 +-
 .../gst-plugins-good-plugins-plugin-udp.html  |   18 +-
 ...gins-good-plugins-plugin-video4linux2.html |   18 +-
 ...-plugins-good-plugins-plugin-videobox.html |   18 +-
 ...plugins-good-plugins-plugin-videocrop.html |   18 +-
 ...ugins-good-plugins-plugin-videofilter.html |   18 +-
 ...lugins-good-plugins-plugin-videomixer.html |   18 +-
 .../gst-plugins-good-plugins-plugin-vpx.html  |   18 +-
 ...-plugins-good-plugins-plugin-waveform.html |   16 +-
 ...st-plugins-good-plugins-plugin-wavenc.html |   18 +-
 ...t-plugins-good-plugins-plugin-wavpack.html |   18 +-
 ...-plugins-good-plugins-plugin-wavparse.html |   18 +-
 ...plugins-good-plugins-plugin-ximagesrc.html |   18 +-
 ...st-plugins-good-plugins-plugin-y4menc.html |   18 +-
 .../html/gst-plugins-good-plugins-pngdec.html |   21 +-
 .../html/gst-plugins-good-plugins-pngenc.html |   21 +-
 ...t-plugins-good-plugins-progressreport.html |   23 +-
 .../gst-plugins-good-plugins-pulsesink.html   |   20 +-
 .../gst-plugins-good-plugins-pulsesrc.html    |   20 +-
 .../gst-plugins-good-plugins-qtdemux.html     |   38 +-
 ...st-plugins-good-plugins-qtmoovrecover.html |   13 +-
 .../html/gst-plugins-good-plugins-qtmux.html  |   43 +-
 .../gst-plugins-good-plugins-quarktv.html     |   32 +-
 .../gst-plugins-good-plugins-radioactv.html   |   23 +-
 .../html/gst-plugins-good-plugins-revtv.html  |   21 +-
 .../gst-plugins-good-plugins-rganalysis.html  |   25 +-
 .../gst-plugins-good-plugins-rglimiter.html   |   23 +-
 .../gst-plugins-good-plugins-rgvolume.html    |   27 +-
 .../gst-plugins-good-plugins-rippletv.html    |   23 +-
 .../gst-plugins-good-plugins-rtpL16depay.html |  189 +
 .../gst-plugins-good-plugins-rtpL16pay.html   |  194 +
 .../gst-plugins-good-plugins-rtpac3depay.html |  185 +
 .../gst-plugins-good-plugins-rtpac3pay.html   |  189 +
 .../gst-plugins-good-plugins-rtpamrdepay.html |  193 +
 .../gst-plugins-good-plugins-rtpamrpay.html   |  193 +
 .../html/gst-plugins-good-plugins-rtpbin.html |  271 +-
 .../gst-plugins-good-plugins-rtpbvdepay.html  |  150 +
 .../gst-plugins-good-plugins-rtpbvpay.html    |  150 +
 .../html/gst-plugins-good-plugins-rtpdec.html |   75 +-
 .../gst-plugins-good-plugins-rtpdtmfmux.html  |  195 +
 .../gst-plugins-good-plugins-rtpdtmfsrc.html  |  315 +
 .../gst-plugins-good-plugins-rtpj2kpay.html   |   25 +-
 ...-plugins-good-plugins-rtpjitterbuffer.html |   59 +-
 .../gst-plugins-good-plugins-rtpjpegpay.html  |   27 +-
 .../html/gst-plugins-good-plugins-rtpmux.html |  241 +
 .../gst-plugins-good-plugins-rtpptdemux.html  |   45 +-
 .../gst-plugins-good-plugins-rtpsbcpay.html   |  173 +
 .../gst-plugins-good-plugins-rtpsession.html  |  101 +-
 ...gst-plugins-good-plugins-rtpssrcdemux.html |   50 +-
 .../gst-plugins-good-plugins-rtspsrc.html     |  213 +-
 .../gst-plugins-good-plugins-sbcparse.html    |  163 +
 .../gst-plugins-good-plugins-scaletempo.html  |  274 +
 ...gst-plugins-good-plugins-shagadelictv.html |   27 +-
 .../gst-plugins-good-plugins-shapewipe.html   |   30 +-
 .../html/gst-plugins-good-plugins-smpte.html  |   28 +-
 .../gst-plugins-good-plugins-smptealpha.html  |   23 +-
 .../gst-plugins-good-plugins-souphttpsrc.html |   16 +-
 .../gst-plugins-good-plugins-spectrum.html    |   41 +-
 .../gst-plugins-good-plugins-speexdec.html    |   21 +-
 .../gst-plugins-good-plugins-speexenc.html    |   21 +-
 ...gst-plugins-good-plugins-splitfilesrc.html |   18 +-
 .../gst-plugins-good-plugins-streaktv.html    |   23 +-
 .../gst-plugins-good-plugins-taginject.html   |   23 +-
 .../gst-plugins-good-plugins-udpsink.html     |   18 +-
 .../html/gst-plugins-good-plugins-udpsrc.html |   28 +-
 .../gst-plugins-good-plugins-v4l2radio.html   |   13 +-
 .../gst-plugins-good-plugins-v4l2sink.html    |   49 +-
 .../gst-plugins-good-plugins-v4l2src.html     |   58 +-
 .../gst-plugins-good-plugins-vertigotv.html   |   28 +-
 ...gst-plugins-good-plugins-videobalance.html |   25 +-
 .../gst-plugins-good-plugins-videobox.html    |   21 +-
 .../gst-plugins-good-plugins-videocrop.html   |   43 +-
 .../gst-plugins-good-plugins-videoflip.html   |   32 +-
 .../gst-plugins-good-plugins-videomixer.html  |   25 +-
 .../html/gst-plugins-good-plugins-vp8dec.html |   21 +-
 .../html/gst-plugins-good-plugins-vp8enc.html |   28 +-
 .../html/gst-plugins-good-plugins-warptv.html |   23 +-
 ...gst-plugins-good-plugins-waveformsink.html |   11 +-
 .../html/gst-plugins-good-plugins-wavenc.html |   60 +-
 .../gst-plugins-good-plugins-wavpackdec.html  |   21 +-
 .../gst-plugins-good-plugins-wavpackenc.html  |   26 +-
 ...gst-plugins-good-plugins-wavpackparse.html |   23 +-
 .../gst-plugins-good-plugins-wavparse.html    |   23 +-
 .../gst-plugins-good-plugins-webmmux.html     |   37 +-
 .../gst-plugins-good-plugins-ximagesrc.html   |   16 +-
 .../html/gst-plugins-good-plugins-y4menc.html |   23 +-
 docs/plugins/html/index.html                  |  195 +-
 docs/plugins/html/index.sgml                  |  189 +-
 docs/plugins/inspect/plugin-1394.xml          |    2 +-
 docs/plugins/inspect/plugin-aasink.xml        |    2 +-
 docs/plugins/inspect/plugin-alaw.xml          |    2 +-
 docs/plugins/inspect/plugin-alpha.xml         |    2 +-
 docs/plugins/inspect/plugin-alphacolor.xml    |    2 +-
 docs/plugins/inspect/plugin-annodex.xml       |   55 +
 docs/plugins/inspect/plugin-apetag.xml        |    2 +-
 docs/plugins/inspect/plugin-audiofx.xml       |   27 +-
 docs/plugins/inspect/plugin-audioparsers.xml  |   27 +-
 docs/plugins/inspect/plugin-auparse.xml       |    2 +-
 docs/plugins/inspect/plugin-autodetect.xml    |    2 +-
 docs/plugins/inspect/plugin-avi.xml           |    6 +-
 docs/plugins/inspect/plugin-cacasink.xml      |    4 +-
 docs/plugins/inspect/plugin-cairo.xml         |    2 +-
 docs/plugins/inspect/plugin-cutter.xml        |    2 +-
 docs/plugins/inspect/plugin-debug.xml         |    2 +-
 docs/plugins/inspect/plugin-deinterlace.xml   |    2 +-
 docs/plugins/inspect/plugin-dtmf.xml          |   64 +
 docs/plugins/inspect/plugin-dv.xml            |    2 +-
 docs/plugins/inspect/plugin-effectv.xml       |    2 +-
 docs/plugins/inspect/plugin-equalizer.xml     |    2 +-
 docs/plugins/inspect/plugin-flac.xml          |    2 +-
 docs/plugins/inspect/plugin-flv.xml           |    2 +-
 docs/plugins/inspect/plugin-flxdec.xml        |    2 +-
 docs/plugins/inspect/plugin-gdkpixbuf.xml     |    2 +-
 docs/plugins/inspect/plugin-goom.xml          |    2 +-
 docs/plugins/inspect/plugin-goom2k1.xml       |    2 +-
 docs/plugins/inspect/plugin-icydemux.xml      |    2 +-
 docs/plugins/inspect/plugin-id3demux.xml      |    2 +-
 docs/plugins/inspect/plugin-imagefreeze.xml   |    2 +-
 docs/plugins/inspect/plugin-interleave.xml    |    2 +-
 docs/plugins/inspect/plugin-isomp4.xml        |    2 +-
 docs/plugins/inspect/plugin-jack.xml          |    2 +-
 docs/plugins/inspect/plugin-jpeg.xml          |    2 +-
 docs/plugins/inspect/plugin-level.xml         |    2 +-
 docs/plugins/inspect/plugin-matroska.xml      |    4 +-
 docs/plugins/inspect/plugin-monoscope.xml     |    2 +-
 docs/plugins/inspect/plugin-mulaw.xml         |    2 +-
 docs/plugins/inspect/plugin-multifile.xml     |    2 +-
 docs/plugins/inspect/plugin-multipart.xml     |    2 +-
 .../plugins/inspect/plugin-navigationtest.xml |    2 +-
 docs/plugins/inspect/plugin-oss4.xml          |    2 +-
 docs/plugins/inspect/plugin-ossaudio.xml      |    2 +-
 docs/plugins/inspect/plugin-png.xml           |    2 +-
 docs/plugins/inspect/plugin-pulseaudio.xml    |    2 +-
 docs/plugins/inspect/plugin-replaygain.xml    |    2 +-
 docs/plugins/inspect/plugin-rtp.xml           |  160 +-
 docs/plugins/inspect/plugin-rtpmanager.xml    |   50 +-
 docs/plugins/inspect/plugin-rtsp.xml          |    2 +-
 docs/plugins/inspect/plugin-shapewipe.xml     |    2 +-
 docs/plugins/inspect/plugin-shout2send.xml    |    4 +-
 docs/plugins/inspect/plugin-smpte.xml         |    2 +-
 docs/plugins/inspect/plugin-soup.xml          |    2 +-
 docs/plugins/inspect/plugin-spectrum.xml      |    2 +-
 docs/plugins/inspect/plugin-speex.xml         |    2 +-
 docs/plugins/inspect/plugin-taglib.xml        |    2 +-
 docs/plugins/inspect/plugin-udp.xml           |    2 +-
 docs/plugins/inspect/plugin-video4linux2.xml  |    6 +-
 docs/plugins/inspect/plugin-videobox.xml      |    2 +-
 docs/plugins/inspect/plugin-videocrop.xml     |   10 +-
 docs/plugins/inspect/plugin-videofilter.xml   |    6 +-
 docs/plugins/inspect/plugin-videomixer.xml    |    2 +-
 docs/plugins/inspect/plugin-vpx.xml           |    2 +-
 docs/plugins/inspect/plugin-wavenc.xml        |    2 +-
 docs/plugins/inspect/plugin-wavpack.xml       |    2 +-
 docs/plugins/inspect/plugin-wavparse.xml      |    2 +-
 docs/plugins/inspect/plugin-ximagesrc.xml     |    2 +-
 docs/plugins/inspect/plugin-y4menc.xml        |    2 +-
 ext/Makefile.in                               |  268 +-
 ext/aalib/Makefile.in                         |  208 +-
 ext/aalib/gstaasink.c                         |    4 +-
 ext/aalib/gstaasink.h                         |    4 +-
 ext/cairo/Makefile.am                         |    8 -
 ext/cairo/Makefile.in                         |  216 +-
 ext/cairo/gstcairo.c                          |   20 +-
 ext/cairo/gstcairooverlay.c                   |    4 +-
 ext/cairo/gstcairooverlay.h                   |    4 +-
 ext/dv/Makefile.in                            |  208 +-
 ext/dv/gstdv.c                                |    4 +-
 ext/dv/gstdvdec.c                             |    4 +-
 ext/dv/gstdvdec.h                             |    4 +-
 ext/dv/gstdvdemux.c                           |    4 +-
 ext/dv/gstdvdemux.h                           |    4 +-
 ext/dv/gstsmptetimecode.c                     |    4 +-
 ext/dv/gstsmptetimecode.h                     |    4 +-
 ext/flac/Makefile.in                          |  208 +-
 ext/flac/gstflac.c                            |    4 +-
 ext/flac/gstflacdec.c                         |    4 +-
 ext/flac/gstflacdec.h                         |    4 +-
 ext/flac/gstflacenc.c                         |   41 +-
 ext/flac/gstflacenc.h                         |    4 +-
 ext/flac/gstflactag.c                         |   32 +-
 ext/flac/gstflactag.h                         |    4 +-
 ext/gdk_pixbuf/Makefile.in                    |  208 +-
 ext/gdk_pixbuf/gstgdkpixbufdec.c              |   29 +-
 ext/gdk_pixbuf/gstgdkpixbufdec.h              |    5 +-
 ext/gdk_pixbuf/gstgdkpixbufoverlay.c          |   31 +-
 ext/gdk_pixbuf/gstgdkpixbufoverlay.h          |    4 +-
 ext/gdk_pixbuf/gstgdkpixbufplugin.c           |    4 +-
 ext/gdk_pixbuf/gstgdkpixbufsink.c             |   18 +-
 ext/gdk_pixbuf/gstgdkpixbufsink.h             |    4 +-
 ext/jack/Makefile.in                          |  208 +-
 ext/jack/gstjack.c                            |    5 +-
 ext/jack/gstjack.h                            |    6 +-
 ext/jack/gstjackaudioclient.c                 |    4 +-
 ext/jack/gstjackaudioclient.h                 |    4 +-
 ext/jack/gstjackaudiosink.c                   |    5 +-
 ext/jack/gstjackaudiosink.h                   |    4 +-
 ext/jack/gstjackaudiosrc.c                    |    6 +-
 ext/jack/gstjackaudiosrc.h                    |    4 +-
 ext/jack/gstjackringbuffer.h                  |    4 +-
 ext/jack/gstjackutil.c                        |    4 +-
 ext/jack/gstjackutil.h                        |    6 +-
 ext/jpeg/Makefile.in                          |  208 +-
 ext/jpeg/gstjpeg.c                            |    4 +-
 ext/jpeg/gstjpeg.h                            |    4 +-
 ext/jpeg/gstjpegdec.c                         |    6 +-
 ext/jpeg/gstjpegdec.h                         |    4 +-
 ext/jpeg/gstjpegenc.c                         |    6 +-
 ext/jpeg/gstjpegenc.h                         |    4 +-
 ext/libcaca/Makefile.in                       |  208 +-
 ext/libcaca/gstcacasink.c                     |   25 +-
 ext/libcaca/gstcacasink.h                     |    4 +-
 ext/libpng/Makefile.in                        |  208 +-
 ext/libpng/gstpng.c                           |    4 +-
 ext/libpng/gstpngdec.c                        |    4 +-
 ext/libpng/gstpngdec.h                        |    4 +-
 ext/libpng/gstpngenc.c                        |    7 +-
 ext/libpng/gstpngenc.h                        |    4 +-
 ext/pulse/Makefile.in                         |  208 +-
 ext/pulse/plugin.c                            |    2 +-
 ext/pulse/pulseprobe.c                        |    4 +-
 ext/pulse/pulseprobe.h                        |    2 +-
 ext/pulse/pulsesink.c                         |  463 +-
 ext/pulse/pulsesink.h                         |   47 +-
 ext/pulse/pulsesrc.c                          |    4 +-
 ext/pulse/pulsesrc.h                          |    2 +-
 ext/pulse/pulseutil.c                         |   46 +-
 ext/pulse/pulseutil.h                         |    3 +-
 ext/raw1394/Makefile.in                       |  208 +-
 ext/raw1394/gst1394.c                         |    4 +-
 ext/raw1394/gst1394clock.c                    |    7 +-
 ext/raw1394/gst1394clock.h                    |    4 +-
 ext/raw1394/gst1394probe.c                    |    4 +-
 ext/raw1394/gst1394probe.h                    |    4 +-
 ext/raw1394/gstdv1394src.c                    |    4 +-
 ext/raw1394/gstdv1394src.h                    |    4 +-
 ext/raw1394/gsthdv1394src.c                   |    4 +-
 ext/raw1394/gsthdv1394src.h                   |    4 +-
 ext/shout2/Makefile.in                        |  208 +-
 ext/shout2/gstshout2.c                        |    4 +-
 ext/shout2/gstshout2.h                        |    4 +-
 ext/soup/Makefile.am                          |    5 +-
 ext/soup/Makefile.in                          |  214 +-
 ext/soup/gstsouphttpclientsink.h              |    4 +-
 ext/soup/gstsouphttpsrc.c                     |  235 +-
 ext/soup/gstsouphttpsrc.h                     |    5 +
 ext/speex/Makefile.in                         |  208 +-
 ext/speex/gstspeex.c                          |    4 +-
 ext/speex/gstspeexdec.c                       |    4 +-
 ext/speex/gstspeexdec.h                       |    4 +-
 ext/speex/gstspeexenc.c                       |    4 +-
 ext/speex/gstspeexenc.h                       |    4 +-
 ext/taglib/Makefile.in                        |  214 +-
 ext/taglib/gstapev2mux.cc                     |    4 +-
 ext/taglib/gstapev2mux.h                      |    4 +-
 ext/taglib/gstid3v2mux.cc                     |    4 +-
 ext/taglib/gstid3v2mux.h                      |    4 +-
 ext/taglib/gsttaglibplugin.c                  |    4 +-
 ext/vpx/Makefile.am                           |    4 +
 ext/vpx/Makefile.in                           |  230 +-
 ext/vpx/gstvp8dec.c                           |   20 +-
 ext/vpx/gstvp8dec.h                           |    4 +-
 ext/vpx/gstvp8enc.c                           |   60 +-
 ext/vpx/gstvp8enc.h                           |    7 +-
 ext/vpx/gstvp8utils.c                         |    4 +-
 ext/vpx/gstvp8utils.h                         |    4 +-
 ext/vpx/gstvp9dec.c                           |  624 ++
 ext/vpx/gstvp9dec.h                           |   84 +
 ext/vpx/gstvp9enc.c                           | 1936 ++++
 ext/vpx/gstvp9enc.h                           |  113 +
 ext/vpx/plugin.c                              |   16 +-
 ext/wavpack/Makefile.in                       |  208 +-
 ext/wavpack/gstwavpack.c                      |    4 +-
 ext/wavpack/gstwavpackcommon.c                |    4 +-
 ext/wavpack/gstwavpackcommon.h                |    4 +-
 ext/wavpack/gstwavpackdec.c                   |    4 +-
 ext/wavpack/gstwavpackdec.h                   |    4 +-
 ext/wavpack/gstwavpackenc.c                   |    4 +-
 ext/wavpack/gstwavpackenc.h                   |    4 +-
 ext/wavpack/gstwavpackstreamreader.c          |    4 +-
 ext/wavpack/gstwavpackstreamreader.h          |    4 +-
 gst-libs/gst/gettext.h                        |    2 +-
 gst-libs/gst/glib-compat-private.h            |    4 +-
 gst-libs/gst/gst-i18n-plugin.h                |    4 +-
 gst-plugins-good.doap                         |   54 +-
 gst-plugins-good.spec                         |    3 +-
 gst-plugins-good.spec.in                      |    1 +
 gst/Makefile.in                               |  268 +-
 gst/alpha/Makefile.in                         |  209 +-
 gst/alpha/gstalpha.c                          |   69 +-
 gst/alpha/gstalpha.h                          |    4 +-
 gst/alpha/gstalphacolor.c                     |    4 +-
 gst/alpha/gstalphacolor.h                     |    4 +-
 gst/apetag/Makefile.in                        |  208 +-
 gst/apetag/gstapedemux.c                      |    4 +-
 gst/apetag/gstapedemux.h                      |    4 +-
 gst/audiofx/Makefile.am                       |   12 +-
 gst/audiofx/Makefile.in                       |  319 +-
 gst/audiofx/audioamplify.c                    |    4 +-
 gst/audiofx/audioamplify.h                    |    4 +-
 gst/audiofx/audiochebband.c                   |    4 +-
 gst/audiofx/audiochebband.h                   |    4 +-
 gst/audiofx/audiocheblimit.c                  |    4 +-
 gst/audiofx/audiocheblimit.h                  |    4 +-
 gst/audiofx/audiodynamic.c                    |    4 +-
 gst/audiofx/audiodynamic.h                    |    4 +-
 gst/audiofx/audioecho.c                       |    4 +-
 gst/audiofx/audioecho.h                       |    4 +-
 gst/audiofx/audiofirfilter.c                  |    4 +-
 gst/audiofx/audiofirfilter.h                  |    4 +-
 gst/audiofx/audiofx.c                         |    9 +-
 gst/audiofx/audiofxbasefirfilter.c            |    4 +-
 gst/audiofx/audiofxbasefirfilter.h            |    4 +-
 gst/audiofx/audiofxbaseiirfilter.c            |    4 +-
 gst/audiofx/audiofxbaseiirfilter.h            |    4 +-
 gst/audiofx/audioiirfilter.c                  |    4 +-
 gst/audiofx/audioiirfilter.h                  |    4 +-
 gst/audiofx/audioinvert.c                     |    4 +-
 gst/audiofx/audioinvert.h                     |    4 +-
 gst/audiofx/audiokaraoke.c                    |    4 +-
 gst/audiofx/audiokaraoke.h                    |    4 +-
 gst/audiofx/audiopanorama.c                   |  430 +-
 gst/audiofx/audiopanorama.h                   |   16 +-
 gst/audiofx/audiopanoramaorc-dist.c           | 3977 ++++++++
 gst/audiofx/audiopanoramaorc-dist.h           |  107 +
 gst/audiofx/audiopanoramaorc.orc              |  258 +
 gst/audiofx/audiowsincband.c                  |    4 +-
 gst/audiofx/audiowsincband.h                  |    4 +-
 gst/audiofx/audiowsinclimit.c                 |   10 +-
 gst/audiofx/audiowsinclimit.h                 |    4 +-
 gst/audiofx/gstscaletempo.c                   |  747 ++
 gst/audiofx/gstscaletempo.h                   |   98 +
 gst/audiofx/math_compat.h                     |    4 +-
 gst/audioparsers/Makefile.am                  |    5 +-
 gst/audioparsers/Makefile.in                  |  222 +-
 gst/audioparsers/gstaacparse.c                |    4 +-
 gst/audioparsers/gstaacparse.h                |    4 +-
 gst/audioparsers/gstac3parse.c                |   73 +-
 gst/audioparsers/gstac3parse.h                |   15 +-
 gst/audioparsers/gstamrparse.c                |    4 +-
 gst/audioparsers/gstamrparse.h                |    4 +-
 gst/audioparsers/gstdcaparse.c                |   55 +-
 gst/audioparsers/gstdcaparse.h                |   20 +-
 gst/audioparsers/gstflacparse.c               |   65 +-
 gst/audioparsers/gstflacparse.h               |    4 +-
 gst/audioparsers/gstmpegaudioparse.c          |    4 +-
 gst/audioparsers/gstmpegaudioparse.h          |    4 +-
 gst/audioparsers/gstsbcparse.c                |  487 +
 gst/audioparsers/gstsbcparse.h                |   74 +
 gst/audioparsers/gstwavpackparse.c            |    4 +-
 gst/audioparsers/gstwavpackparse.h            |    4 +-
 gst/audioparsers/plugin.c                     |    7 +-
 gst/auparse/Makefile.in                       |  208 +-
 gst/auparse/gstauparse.c                      |    4 +-
 gst/auparse/gstauparse.h                      |    4 +-
 gst/autodetect/Makefile.in                    |  208 +-
 gst/autodetect/gstautoaudiosink.c             |   19 +-
 gst/autodetect/gstautoaudiosink.h             |    4 +-
 gst/autodetect/gstautoaudiosrc.c              |   19 +-
 gst/autodetect/gstautoaudiosrc.h              |    4 +-
 gst/autodetect/gstautodetect.c                |    4 +-
 gst/autodetect/gstautodetect.h                |    4 +-
 gst/autodetect/gstautovideosink.c             |   19 +-
 gst/autodetect/gstautovideosink.h             |    4 +-
 gst/autodetect/gstautovideosrc.c              |   19 +-
 gst/autodetect/gstautovideosrc.h              |    4 +-
 gst/avi/Makefile.in                           |  208 +-
 gst/avi/avi-ids.h                             |    4 +-
 gst/avi/gstavi.c                              |    4 +-
 gst/avi/gstavidemux.c                         |   48 +-
 gst/avi/gstavidemux.h                         |    4 +-
 gst/avi/gstavimux.c                           |  126 +-
 gst/avi/gstavimux.h                           |    4 +-
 gst/avi/gstavisubtitle.c                      |    4 +-
 gst/cutter/Makefile.in                        |  208 +-
 gst/cutter/gstcutter.c                        |    4 +-
 gst/cutter/gstcutter.h                        |    4 +-
 gst/debugutils/Makefile.in                    |  209 +-
 gst/debugutils/breakmydata.c                  |    4 +-
 gst/debugutils/cpureport.c                    |    4 +-
 gst/debugutils/cpureport.h                    |    4 +-
 gst/debugutils/gstcapsdebug.h                 |    4 +-
 gst/debugutils/gstdebug.c                     |    4 +-
 gst/debugutils/gstnavigationtest.c            |    4 +-
 gst/debugutils/gstnavigationtest.h            |    4 +-
 gst/debugutils/gstnavseek.c                   |    4 +-
 gst/debugutils/gstnavseek.h                   |    4 +-
 gst/debugutils/gstpushfilesrc.c               |    4 +-
 gst/debugutils/gstpushfilesrc.h               |    4 +-
 gst/debugutils/gsttaginject.c                 |    4 +-
 gst/debugutils/gsttaginject.h                 |    4 +-
 gst/debugutils/progressreport.c               |    4 +-
 gst/debugutils/progressreport.h               |    4 +-
 gst/debugutils/rndbuffersize.c                |    4 +-
 gst/debugutils/testplugin.c                   |    4 +-
 gst/debugutils/tests.c                        |    4 +-
 gst/debugutils/tests.h                        |    4 +-
 gst/deinterlace/Makefile.in                   |  208 +-
 gst/deinterlace/gstdeinterlace.c              |   57 +-
 gst/deinterlace/gstdeinterlace.h              |    6 +-
 gst/deinterlace/gstdeinterlacemethod.c        |  273 +-
 gst/deinterlace/gstdeinterlacemethod.h        |   12 +-
 gst/deinterlace/tvtime-dist.c                 |   90 +
 gst/deinterlace/tvtime/greedy.c               |   42 +-
 gst/deinterlace/tvtime/greedyh.asm            |    4 +-
 gst/deinterlace/tvtime/greedyh.c              |   14 +-
 gst/deinterlace/tvtime/greedyhmacros.h        |    4 +-
 gst/deinterlace/tvtime/linear.c               |   24 +-
 gst/deinterlace/tvtime/linearblend.c          |   39 +-
 gst/deinterlace/tvtime/plugins.h              |    4 +-
 gst/deinterlace/tvtime/scalerbob.c            |   20 +-
 gst/deinterlace/tvtime/tomsmocomp.c           |    4 +-
 .../tvtime/tomsmocomp/TomsMoCompAll.inc       |   19 +-
 gst/deinterlace/tvtime/vfir.c                 |   16 +-
 gst/deinterlace/tvtime/weave.c                |   44 +-
 gst/deinterlace/tvtime/weavebff.c             |   44 +-
 gst/deinterlace/tvtime/weavetff.c             |   44 +-
 gst/deinterlace/tvtime/x86-64_macros.inc      |    4 +-
 gst/dtmf/Makefile.am                          |   31 +
 gst/dtmf/Makefile.in                          |  940 ++
 gst/dtmf/gstdtmf.c                            |   45 +
 gst/dtmf/gstdtmfcommon.h                      |   52 +
 gst/dtmf/gstdtmfsrc.c                         |  969 ++
 gst/dtmf/gstdtmfsrc.h                         |  101 +
 gst/dtmf/gstrtpdtmfdepay.c                    |  543 ++
 gst/dtmf/gstrtpdtmfdepay.h                    |   68 +
 gst/dtmf/gstrtpdtmfsrc.c                      | 1156 +++
 gst/dtmf/gstrtpdtmfsrc.h                      |  115 +
 gst/effectv/Makefile.in                       |  208 +-
 gst/effectv/gstaging.c                        |    4 +-
 gst/effectv/gstaging.h                        |    4 +-
 gst/effectv/gstdice.c                         |    4 +-
 gst/effectv/gstdice.h                         |    4 +-
 gst/effectv/gstedge.c                         |    4 +-
 gst/effectv/gstedge.h                         |    4 +-
 gst/effectv/gsteffectv.c                      |    4 +-
 gst/effectv/gsteffectv.h                      |    4 +-
 gst/effectv/gstop.c                           |    4 +-
 gst/effectv/gstop.h                           |    4 +-
 gst/effectv/gstquark.c                        |    4 +-
 gst/effectv/gstquark.h                        |    4 +-
 gst/effectv/gstradioac.c                      |    4 +-
 gst/effectv/gstradioac.h                      |    4 +-
 gst/effectv/gstrev.c                          |    4 +-
 gst/effectv/gstrev.h                          |    4 +-
 gst/effectv/gstripple.c                       |    4 +-
 gst/effectv/gstripple.h                       |    4 +-
 gst/effectv/gstshagadelic.c                   |    4 +-
 gst/effectv/gstshagadelic.h                   |    4 +-
 gst/effectv/gststreak.c                       |    4 +-
 gst/effectv/gststreak.h                       |    4 +-
 gst/effectv/gstvertigo.c                      |    4 +-
 gst/effectv/gstvertigo.h                      |    4 +-
 gst/effectv/gstwarp.c                         |    4 +-
 gst/effectv/gstwarp.h                         |    4 +-
 gst/equalizer/Makefile.in                     |  209 +-
 gst/equalizer/gstiirequalizer.c               |    4 +-
 gst/equalizer/gstiirequalizer.h               |    4 +-
 gst/equalizer/gstiirequalizer10bands.c        |    4 +-
 gst/equalizer/gstiirequalizer10bands.h        |    4 +-
 gst/equalizer/gstiirequalizer3bands.c         |    4 +-
 gst/equalizer/gstiirequalizer3bands.h         |    4 +-
 gst/equalizer/gstiirequalizernbands.c         |    4 +-
 gst/equalizer/gstiirequalizernbands.h         |    4 +-
 gst/flv/Makefile.in                           |  208 +-
 gst/flv/amfdefs.h                             |    4 +-
 gst/flv/gstflvdemux.c                         |    4 +-
 gst/flv/gstflvdemux.h                         |    4 +-
 gst/flv/gstflvmux.c                           |   32 +-
 gst/flv/gstflvmux.h                           |    4 +-
 gst/flv/gstindex.c                            |    4 +-
 gst/flv/gstindex.h                            |    4 +-
 gst/flv/gstmemindex.c                         |    4 +-
 gst/flx/Makefile.in                           |  208 +-
 gst/flx/flx_color.c                           |    4 +-
 gst/flx/flx_color.h                           |    4 +-
 gst/flx/flx_fmt.h                             |    4 +-
 gst/flx/gstflxdec.c                           |   11 +-
 gst/flx/gstflxdec.h                           |    4 +-
 gst/goom/Makefile.in                          |  207 +-
 gst/goom/config_param.c                       |    4 +-
 gst/goom/convolve_fx.c                        |    4 +-
 gst/goom/drawmethods.c                        |    4 +-
 gst/goom/drawmethods.h                        |    4 +-
 gst/goom/filters.c                            |    4 +-
 gst/goom/flying_stars_fx.c                    |    4 +-
 gst/goom/goom.h                               |    4 +-
 gst/goom/goom_config.h                        |    4 +-
 gst/goom/goom_config_param.h                  |    4 +-
 gst/goom/goom_core.c                          |    4 +-
 gst/goom/goom_filters.h                       |    4 +-
 gst/goom/goom_fx.h                            |    4 +-
 gst/goom/goom_graphic.h                       |    4 +-
 gst/goom/goom_plugin_info.h                   |    4 +-
 gst/goom/goom_tools.c                         |    4 +-
 gst/goom/goom_tools.h                         |    4 +-
 gst/goom/goom_typedefs.h                      |    4 +-
 gst/goom/goom_visual_fx.h                     |    4 +-
 gst/goom/graphic.c                            |    4 +-
 gst/goom/gstgoom.c                            |    6 +-
 gst/goom/gstgoom.h                            |    4 +-
 gst/goom/lines.c                              |    4 +-
 gst/goom/lines.h                              |    4 +-
 gst/goom/mathtools.c                          |    4 +-
 gst/goom/mathtools.h                          |    4 +-
 gst/goom/motif_goom1.h                        |    4 +-
 gst/goom/motif_goom2.h                        |    4 +-
 gst/goom/plugin_info.c                        |    4 +-
 gst/goom/ppc_drawings.h                       |    4 +-
 gst/goom/ppc_drawings.s                       |    4 +-
 gst/goom/ppc_zoom_ultimate.h                  |    4 +-
 gst/goom/ppc_zoom_ultimate.s                  |    4 +-
 gst/goom/sound_tester.c                       |    4 +-
 gst/goom/sound_tester.h                       |    4 +-
 gst/goom/surf3d.c                             |    4 +-
 gst/goom/surf3d.h                             |    4 +-
 gst/goom/tentacle3d.c                         |    4 +-
 gst/goom/tentacle3d.h                         |    4 +-
 gst/goom/v3d.c                                |    4 +-
 gst/goom/v3d.h                                |    4 +-
 gst/goom2k1/Makefile.am                       |   16 +-
 gst/goom2k1/Makefile.in                       |  224 +-
 gst/goom2k1/gstgoom.c                         |    6 +-
 gst/goom2k1/gstgoom.h                         |    4 +-
 gst/icydemux/Makefile.in                      |  208 +-
 gst/icydemux/gsticydemux.c                    |   53 +-
 gst/icydemux/gsticydemux.h                    |    4 +-
 gst/id3demux/Makefile.in                      |  208 +-
 gst/id3demux/gstid3demux.c                    |    4 +-
 gst/id3demux/gstid3demux.h                    |    4 +-
 gst/imagefreeze/Makefile.in                   |  208 +-
 gst/imagefreeze/gstimagefreeze.c              |    4 +-
 gst/imagefreeze/gstimagefreeze.h              |    4 +-
 gst/interleave/Makefile.in                    |  208 +-
 gst/interleave/deinterleave.c                 |   90 +-
 gst/interleave/deinterleave.h                 |    4 +-
 gst/interleave/interleave.c                   |   42 +-
 gst/interleave/interleave.h                   |    4 +-
 gst/interleave/plugin.c                       |    4 +-
 gst/interleave/plugin.h                       |    4 +-
 gst/isomp4/Makefile.am                        |    2 +-
 gst/isomp4/Makefile.in                        |  212 +-
 gst/isomp4/atoms.c                            |    4 +-
 gst/isomp4/atoms.h                            |    6 +-
 gst/isomp4/atomsrecovery.c                    |    4 +-
 gst/isomp4/atomsrecovery.h                    |    4 +-
 gst/isomp4/descriptors.c                      |    4 +-
 gst/isomp4/descriptors.h                      |    4 +-
 gst/isomp4/fourcc.h                           |    4 +-
 gst/isomp4/ftypcc.h                           |    4 +-
 gst/isomp4/gstqtmoovrecover.c                 |    4 +-
 gst/isomp4/gstqtmoovrecover.h                 |    4 +-
 gst/isomp4/gstqtmux-doc.c                     |    4 +-
 gst/isomp4/gstqtmux-doc.h                     |    4 +-
 gst/isomp4/gstqtmux.c                         |  336 +-
 gst/isomp4/gstqtmux.h                         |    9 +-
 gst/isomp4/gstqtmuxmap.c                      |    4 +-
 gst/isomp4/gstqtmuxmap.h                      |    4 +-
 gst/isomp4/gstrtpxqtdepay.c                   |    4 +-
 gst/isomp4/gstrtpxqtdepay.h                   |    4 +-
 gst/isomp4/isomp4-plugin.c                    |    4 +-
 gst/isomp4/properties.c                       |    4 +-
 gst/isomp4/properties.h                       |    4 +-
 gst/isomp4/qtatomparser.h                     |    4 +-
 gst/isomp4/qtdemux.c                          | 1034 +-
 gst/isomp4/qtdemux.h                          |   12 +-
 gst/isomp4/qtdemux_dump.c                     |    4 +-
 gst/isomp4/qtdemux_dump.h                     |    4 +-
 gst/isomp4/qtdemux_fourcc.h                   |    5 +-
 gst/isomp4/qtdemux_lang.c                     |    4 +-
 gst/isomp4/qtdemux_lang.h                     |    4 +-
 gst/isomp4/qtdemux_types.c                    |    4 +-
 gst/isomp4/qtdemux_types.h                    |    4 +-
 gst/isomp4/qtpalette.h                        |    4 +-
 gst/law/Makefile.in                           |  209 +-
 gst/law/alaw-decode.c                         |    4 +-
 gst/law/alaw-decode.h                         |    4 +-
 gst/law/alaw-encode.c                         |    4 +-
 gst/law/alaw-encode.h                         |    4 +-
 gst/law/alaw.c                                |    4 +-
 gst/law/mulaw-decode.c                        |  290 +-
 gst/law/mulaw-decode.h                        |   24 +-
 gst/law/mulaw-encode.c                        |  272 +-
 gst/law/mulaw-encode.h                        |   22 +-
 gst/law/mulaw.c                               |    4 +-
 gst/level/Makefile.in                         |  208 +-
 gst/level/gstlevel.c                          |  257 +-
 gst/level/gstlevel.h                          |   16 +-
 gst/matroska/Makefile.in                      |  208 +-
 gst/matroska/ebml-ids.h                       |    4 +-
 gst/matroska/ebml-read.c                      |    4 +-
 gst/matroska/ebml-read.h                      |    4 +-
 gst/matroska/ebml-write.c                     |    4 +-
 gst/matroska/ebml-write.h                     |    4 +-
 gst/matroska/lzo.c                            |    3 +
 gst/matroska/matroska-demux.c                 |  325 +-
 gst/matroska/matroska-demux.h                 |    4 +-
 gst/matroska/matroska-ids.c                   |  154 +-
 gst/matroska/matroska-ids.h                   |   56 +-
 gst/matroska/matroska-mux.c                   |   42 +-
 gst/matroska/matroska-mux.h                   |    4 +-
 gst/matroska/matroska-parse.c                 |   12 +-
 gst/matroska/matroska-parse.h                 |    4 +-
 gst/matroska/matroska-read-common.c           |  529 +-
 gst/matroska/matroska-read-common.h           |    4 +-
 gst/matroska/matroska.c                       |    4 +-
 gst/matroska/webm-mux.c                       |    9 +-
 gst/matroska/webm-mux.h                       |    4 +-
 gst/monoscope/Makefile.in                     |  208 +-
 gst/monoscope/convolve.c                      |    4 +-
 gst/monoscope/convolve.h                      |    4 +-
 gst/monoscope/gstmonoscope.c                  |    7 +-
 gst/monoscope/gstmonoscope.h                  |    4 +-
 gst/multifile/Makefile.in                     |  208 +-
 gst/multifile/gstmultifile.c                  |    4 +-
 gst/multifile/gstmultifilesink.c              |   13 +-
 gst/multifile/gstmultifilesink.h              |    4 +-
 gst/multifile/gstmultifilesrc.c               |   19 +-
 gst/multifile/gstmultifilesrc.h               |    4 +-
 gst/multifile/gstsplitfilesrc.c               |    4 +-
 gst/multifile/gstsplitfilesrc.h               |    4 +-
 gst/multifile/patternspec.c                   |    4 +-
 gst/multifile/patternspec.h                   |    4 +-
 gst/multipart/Makefile.in                     |  208 +-
 gst/multipart/multipart.c                     |    4 +-
 gst/multipart/multipartdemux.c                |    6 +-
 gst/multipart/multipartdemux.h                |    4 +-
 gst/multipart/multipartmux.c                  |   30 +-
 gst/multipart/multipartmux.h                  |    4 +-
 gst/replaygain/Makefile.in                    |  208 +-
 gst/replaygain/gstrgvolume.c                  |    6 +-
 gst/rtp/Makefile.am                           |  178 +-
 gst/rtp/Makefile.in                           |  454 +-
 gst/rtp/README                                |    2 +-
 gst/rtp/dboolhuff.LICENSE                     |   29 +
 gst/rtp/dboolhuff.c                           |   68 +
 gst/rtp/dboolhuff.h                           |  151 +
 gst/rtp/fnv1hash.c                            |    4 +-
 gst/rtp/fnv1hash.h                            |    4 +-
 gst/rtp/gstasteriskh263.c                     |    4 +-
 gst/rtp/gstasteriskh263.h                     |    4 +-
 gst/rtp/gstrtp.c                              |   24 +-
 gst/rtp/gstrtpL16depay.c                      |   30 +-
 gst/rtp/gstrtpL16depay.h                      |    4 +-
 gst/rtp/gstrtpL16pay.c                        |   22 +-
 gst/rtp/gstrtpL16pay.h                        |    4 +-
 gst/rtp/gstrtpac3depay.c                      |   23 +-
 gst/rtp/gstrtpac3depay.h                      |    4 +-
 gst/rtp/gstrtpac3pay.c                        |   22 +-
 gst/rtp/gstrtpac3pay.h                        |    4 +-
 gst/rtp/gstrtpamrdepay.c                      |   41 +-
 gst/rtp/gstrtpamrdepay.h                      |    4 +-
 gst/rtp/gstrtpamrpay.c                        |   46 +-
 gst/rtp/gstrtpamrpay.h                        |    4 +-
 gst/rtp/gstrtpbvdepay.c                       |   20 +-
 gst/rtp/gstrtpbvdepay.h                       |    4 +-
 gst/rtp/gstrtpbvpay.c                         |   14 +-
 gst/rtp/gstrtpbvpay.h                         |    4 +-
 gst/rtp/gstrtpceltdepay.c                     |    5 +-
 gst/rtp/gstrtpceltpay.c                       |    4 +-
 gst/rtp/gstrtpchannels.c                      |    4 +-
 gst/rtp/gstrtpchannels.h                      |    4 +-
 gst/rtp/gstrtpdvdepay.c                       |    5 +-
 gst/rtp/gstrtpdvdepay.h                       |    4 +-
 gst/rtp/gstrtpdvpay.c                         |    4 +-
 gst/rtp/gstrtpdvpay.h                         |    4 +-
 gst/rtp/gstrtpg722depay.c                     |   12 +-
 gst/rtp/gstrtpg722depay.h                     |    4 +-
 gst/rtp/gstrtpg722pay.c                       |    4 +-
 gst/rtp/gstrtpg722pay.h                       |    4 +-
 gst/rtp/gstrtpg723depay.c                     |    7 +-
 gst/rtp/gstrtpg723depay.h                     |    4 +-
 gst/rtp/gstrtpg723pay.c                       |    4 +-
 gst/rtp/gstrtpg723pay.h                       |    4 +-
 gst/rtp/gstrtpg726depay.c                     |    9 +-
 gst/rtp/gstrtpg726pay.c                       |    4 +-
 gst/rtp/gstrtpg729depay.c                     |    7 +-
 gst/rtp/gstrtpg729depay.h                     |    4 +-
 gst/rtp/gstrtpg729pay.c                       |    4 +-
 gst/rtp/gstrtpg729pay.h                       |    4 +-
 gst/rtp/gstrtpgsmdepay.c                      |    9 +-
 gst/rtp/gstrtpgsmdepay.h                      |    4 +-
 gst/rtp/gstrtpgsmpay.c                        |    4 +-
 gst/rtp/gstrtpgsmpay.h                        |    4 +-
 gst/rtp/gstrtpgstdepay.c                      |  302 +-
 gst/rtp/gstrtpgstdepay.h                      |    4 +-
 gst/rtp/gstrtpgstpay.c                        |  302 +-
 gst/rtp/gstrtpgstpay.h                        |   12 +-
 gst/rtp/gstrtph263depay.c                     |    7 +-
 gst/rtp/gstrtph263depay.h                     |    4 +-
 gst/rtp/gstrtph263pay.c                       |    4 +-
 gst/rtp/gstrtph263pay.h                       |    4 +-
 gst/rtp/gstrtph263pdepay.c                    |    6 +-
 gst/rtp/gstrtph263pdepay.h                    |    4 +-
 gst/rtp/gstrtph263ppay.c                      |    4 +-
 gst/rtp/gstrtph263ppay.h                      |    4 +-
 gst/rtp/gstrtph264depay.c                     |    5 +-
 gst/rtp/gstrtph264depay.h                     |    4 +-
 gst/rtp/gstrtph264pay.c                       |    4 +-
 gst/rtp/gstrtph264pay.h                       |    4 +-
 gst/rtp/gstrtpilbcdepay.c                     |    9 +-
 gst/rtp/gstrtpilbcdepay.h                     |    4 +-
 gst/rtp/gstrtpilbcpay.c                       |    4 +-
 gst/rtp/gstrtpilbcpay.h                       |    4 +-
 gst/rtp/gstrtpj2kdepay.c                      |    5 +-
 gst/rtp/gstrtpj2kdepay.h                      |    4 +-
 gst/rtp/gstrtpj2kpay.c                        |    4 +-
 gst/rtp/gstrtpj2kpay.h                        |    4 +-
 gst/rtp/gstrtpjpegdepay.c                     |   16 +-
 gst/rtp/gstrtpjpegdepay.h                     |    4 +-
 gst/rtp/gstrtpjpegpay.c                       |  134 +-
 gst/rtp/gstrtpjpegpay.h                       |    4 +-
 gst/rtp/gstrtpmp1sdepay.c                     |    6 +-
 gst/rtp/gstrtpmp1sdepay.h                     |    4 +-
 gst/rtp/gstrtpmp2tdepay.c                     |    5 +-
 gst/rtp/gstrtpmp2tdepay.h                     |    4 +-
 gst/rtp/gstrtpmp2tpay.c                       |    4 +-
 gst/rtp/gstrtpmp2tpay.h                       |    4 +-
 gst/rtp/gstrtpmp4adepay.c                     |    7 +-
 gst/rtp/gstrtpmp4adepay.h                     |    4 +-
 gst/rtp/gstrtpmp4apay.c                       |    4 +-
 gst/rtp/gstrtpmp4apay.h                       |    4 +-
 gst/rtp/gstrtpmp4gdepay.c                     |    5 +-
 gst/rtp/gstrtpmp4gdepay.h                     |    4 +-
 gst/rtp/gstrtpmp4gpay.c                       |    4 +-
 gst/rtp/gstrtpmp4gpay.h                       |    4 +-
 gst/rtp/gstrtpmp4vdepay.c                     |    5 +-
 gst/rtp/gstrtpmp4vdepay.h                     |    4 +-
 gst/rtp/gstrtpmp4vpay.c                       |    4 +-
 gst/rtp/gstrtpmp4vpay.h                       |    4 +-
 gst/rtp/gstrtpmpadepay.c                      |    9 +-
 gst/rtp/gstrtpmpadepay.h                      |    4 +-
 gst/rtp/gstrtpmpapay.c                        |    4 +-
 gst/rtp/gstrtpmpapay.h                        |    4 +-
 gst/rtp/gstrtpmparobustdepay.c                |    8 +-
 gst/rtp/gstrtpmparobustdepay.h                |    4 +-
 gst/rtp/gstrtpmpvdepay.c                      |    5 +-
 gst/rtp/gstrtpmpvdepay.h                      |    4 +-
 gst/rtp/gstrtpmpvpay.c                        |    4 +-
 gst/rtp/gstrtpmpvpay.h                        |    4 +-
 gst/rtp/gstrtppcmadepay.c                     |   11 +-
 gst/rtp/gstrtppcmapay.c                       |    4 +-
 gst/rtp/gstrtppcmudepay.c                     |   11 +-
 gst/rtp/gstrtppcmupay.c                       |    4 +-
 gst/rtp/gstrtpqcelpdepay.c                    |    5 +-
 gst/rtp/gstrtpqcelpdepay.h                    |    4 +-
 gst/rtp/gstrtpqdmdepay.c                      |    8 +-
 gst/rtp/gstrtpqdmdepay.h                      |    4 +-
 gst/rtp/gstrtpsbcdepay.c                      |  287 +
 gst/rtp/gstrtpsbcdepay.h                      |   65 +
 gst/rtp/gstrtpsbcpay.c                        |  350 +
 gst/rtp/gstrtpsbcpay.h                        |   64 +
 gst/rtp/gstrtpsirendepay.c                    |    5 +-
 gst/rtp/gstrtpsirendepay.h                    |    4 +-
 gst/rtp/gstrtpsirenpay.c                      |    4 +-
 gst/rtp/gstrtpsirenpay.h                      |    4 +-
 gst/rtp/gstrtpspeexdepay.c                    |    5 +-
 gst/rtp/gstrtpspeexpay.c                      |    4 +-
 gst/rtp/gstrtpsv3vdepay.c                     |    5 +-
 gst/rtp/gstrtpsv3vdepay.h                     |    4 +-
 gst/rtp/gstrtptheoradepay.c                   |   10 +-
 gst/rtp/gstrtptheoradepay.h                   |    4 +-
 gst/rtp/gstrtptheorapay.c                     |  120 +-
 gst/rtp/gstrtptheorapay.h                     |    4 +-
 gst/rtp/gstrtpvorbisdepay.c                   |    5 +-
 gst/rtp/gstrtpvorbisdepay.h                   |    4 +-
 gst/rtp/gstrtpvorbispay.c                     |  363 +-
 gst/rtp/gstrtpvorbispay.h                     |   11 +-
 gst/rtp/gstrtpvp8depay.c                      |  206 +
 gst/rtp/gstrtpvp8depay.h                      |   64 +
 gst/rtp/gstrtpvp8pay.c                        |  444 +
 gst/rtp/gstrtpvp8pay.h                        |   74 +
 gst/rtp/gstrtpvrawdepay.c                     |    5 +-
 gst/rtp/gstrtpvrawdepay.h                     |    4 +-
 gst/rtp/gstrtpvrawpay.c                       |    4 +-
 gst/rtp/gstrtpvrawpay.h                       |    4 +-
 gst/rtpmanager/Makefile.am                    |    4 +
 gst/rtpmanager/Makefile.in                    |  231 +-
 gst/rtpmanager/gstrtpbin.c                    |  106 +-
 gst/rtpmanager/gstrtpbin.h                    |    4 +-
 gst/rtpmanager/gstrtpdtmfmux.c                |  233 +
 gst/rtpmanager/gstrtpdtmfmux.h                |   67 +
 gst/rtpmanager/gstrtpjitterbuffer.c           |  186 +-
 gst/rtpmanager/gstrtpjitterbuffer.h           |    4 +-
 gst/rtpmanager/gstrtpmanager.c                |   12 +-
 gst/rtpmanager/gstrtpmux.c                    |  886 ++
 gst/rtpmanager/gstrtpmux.h                    |   96 +
 gst/rtpmanager/gstrtpptdemux.c                |   19 +-
 gst/rtpmanager/gstrtpptdemux.h                |    4 +-
 gst/rtpmanager/gstrtpsession.c                |  169 +-
 gst/rtpmanager/gstrtpsession.h                |    4 +-
 gst/rtpmanager/gstrtpssrcdemux.c              |  215 +-
 gst/rtpmanager/gstrtpssrcdemux.h              |    6 +-
 gst/rtpmanager/rtpjitterbuffer.c              |    7 +-
 gst/rtpmanager/rtpjitterbuffer.h              |    4 +-
 gst/rtpmanager/rtpsession.c                   |   67 +-
 gst/rtpmanager/rtpsession.h                   |    7 +-
 gst/rtpmanager/rtpsource.c                    |    4 +-
 gst/rtpmanager/rtpsource.h                    |    4 +-
 gst/rtpmanager/rtpstats.c                     |    4 +-
 gst/rtpmanager/rtpstats.h                     |    4 +-
 gst/rtsp/Makefile.am                          |    4 +-
 gst/rtsp/Makefile.in                          |  215 +-
 gst/rtsp/gstrtpdec.c                          |    4 +-
 gst/rtsp/gstrtpdec.h                          |    4 +-
 gst/rtsp/gstrtsp.c                            |    4 +-
 gst/rtsp/gstrtsp.h                            |    4 +-
 gst/rtsp/gstrtspext.c                         |    4 +-
 gst/rtsp/gstrtspext.h                         |    4 +-
 gst/rtsp/gstrtspsrc.c                         |  754 +-
 gst/rtsp/gstrtspsrc.h                         |   16 +-
 gst/shapewipe/Makefile.in                     |  208 +-
 gst/shapewipe/gstshapewipe.c                  |   33 +-
 gst/shapewipe/gstshapewipe.h                  |    4 +-
 gst/smpte/Makefile.in                         |  208 +-
 gst/smpte/barboxwipes.c                       |    4 +-
 gst/smpte/gstmask.c                           |    4 +-
 gst/smpte/gstmask.h                           |    4 +-
 gst/smpte/gstsmpte.c                          |    4 +-
 gst/smpte/gstsmpte.h                          |    4 +-
 gst/smpte/gstsmptealpha.c                     |    4 +-
 gst/smpte/gstsmptealpha.h                     |    4 +-
 gst/smpte/paint.c                             |    4 +-
 gst/smpte/paint.h                             |    4 +-
 gst/smpte/plugin.c                            |    4 +-
 gst/spectrum/Makefile.in                      |  208 +-
 gst/spectrum/README                           |    5 -
 gst/spectrum/gstspectrum.c                    |   18 +-
 gst/spectrum/gstspectrum.h                    |    4 +-
 gst/udp/Makefile.am                           |   20 +-
 gst/udp/Makefile.in                           |  312 +-
 gst/udp/gstdynudpsink.c                       |  232 +-
 gst/udp/gstdynudpsink.h                       |   12 +-
 gst/udp/gstmultiudpsink.c                     |  392 +-
 gst/udp/gstmultiudpsink.h                     |   14 +-
 gst/udp/gstudp-marshal.list                   |    2 -
 gst/udp/gstudp.c                              |   10 +-
 gst/udp/gstudp.h                              |   39 -
 gst/udp/gstudpnetutils.c                      |    4 +-
 gst/udp/gstudpnetutils.h                      |    4 +-
 gst/udp/gstudpsink.c                          |    4 +-
 gst/udp/gstudpsink.h                          |    5 +-
 gst/udp/gstudpsrc.c                           |   89 +-
 gst/udp/gstudpsrc.h                           |    7 +-
 gst/videobox/Makefile.in                      |  209 +-
 gst/videobox/gstvideobox.c                    |    4 +-
 gst/videobox/gstvideobox.h                    |    4 +-
 gst/videobox/gstvideoboxorc-dist.c            |   10 +
 gst/videocrop/Makefile.in                     |  208 +-
 gst/videocrop/gstaspectratiocrop.c            |    9 +-
 gst/videocrop/gstaspectratiocrop.h            |    4 +-
 gst/videocrop/gstvideocrop.c                  |  212 +-
 gst/videocrop/gstvideocrop.h                  |   12 +-
 gst/videofilter/Makefile.in                   |  208 +-
 gst/videofilter/gstgamma.c                    |    4 +-
 gst/videofilter/gstgamma.h                    |    4 +-
 gst/videofilter/gstvideobalance.c             |    4 +-
 gst/videofilter/gstvideobalance.h             |    4 +-
 gst/videofilter/gstvideoflip.c                |  219 +-
 gst/videofilter/gstvideoflip.h                |    4 +-
 gst/videofilter/gstvideomedian.c              |    4 +-
 gst/videofilter/gstvideomedian.h              |    4 +-
 gst/videofilter/gstvideotemplate.c            |    4 +-
 gst/videofilter/plugin.c                      |    4 +-
 gst/videomixer/Makefile.in                    |  209 +-
 gst/videomixer/blend.c                        |    4 +-
 gst/videomixer/blend.h                        |    4 +-
 gst/videomixer/blendorc-dist.c                |  158 +
 gst/videomixer/videomixer2.c                  |  158 +-
 gst/videomixer/videomixer2.h                  |   10 +-
 gst/videomixer/videomixer2pad.h               |    4 +-
 gst/wavenc/Makefile.am                        |    2 +
 gst/wavenc/Makefile.in                        |  212 +-
 gst/wavenc/gstwavenc.c                        |  736 +-
 gst/wavenc/gstwavenc.h                        |   15 +-
 gst/wavparse/Makefile.in                      |  208 +-
 gst/wavparse/gstwavparse.c                    |   99 +-
 gst/wavparse/gstwavparse.h                    |    5 +-
 gst/y4m/Makefile.in                           |  208 +-
 gst/y4m/gsty4mencode.c                        |    4 +-
 gst/y4m/gsty4mencode.h                        |    4 +-
 ltmain.sh                                     |    4 +-
 m4/Makefile.in                                |  103 +-
 pkgconfig/Makefile.in                         |  105 +-
 po/LINGUAS                                    |    2 +-
 po/POTFILES.in                                |   10 +-
 po/af.gmo                                     |  Bin 621 -> 666 bytes
 po/af.po                                      |   82 +-
 po/az.gmo                                     |  Bin 679 -> 723 bytes
 po/az.po                                      |   82 +-
 po/bg.gmo                                     |  Bin 10793 -> 11149 bytes
 po/bg.po                                      |   99 +-
 po/ca.gmo                                     |  Bin 8791 -> 9124 bytes
 po/ca.po                                      |  101 +-
 po/cs.gmo                                     |  Bin 8536 -> 8856 bytes
 po/cs.po                                      |  101 +-
 po/da.gmo                                     |  Bin 9513 -> 8139 bytes
 po/da.po                                      |  485 +-
 po/de.gmo                                     |  Bin 10573 -> 9531 bytes
 po/de.po                                      |  293 +-
 po/el.gmo                                     |  Bin 11207 -> 11122 bytes
 po/el.po                                      |  146 +-
 po/en_GB.gmo                                  |  Bin 625 -> 671 bytes
 po/en_GB.po                                   |   82 +-
 po/eo.gmo                                     |  Bin 1275 -> 1328 bytes
 po/eo.po                                      |   76 +-
 po/es.gmo                                     |  Bin 9054 -> 9369 bytes
 po/es.po                                      |  101 +-
 po/eu.gmo                                     |  Bin 7280 -> 7626 bytes
 po/eu.po                                      |  101 +-
 po/fi.gmo                                     |  Bin 7731 -> 8041 bytes
 po/fi.po                                      |  101 +-
 po/fr.gmo                                     |  Bin 8893 -> 9222 bytes
 po/fr.po                                      |  101 +-
 po/gl.gmo                                     |  Bin 10698 -> 9101 bytes
 po/gl.po                                      |  197 +-
 po/gst-plugins-good-1.0.pot                   |  216 +-
 po/hr.gmo                                     |  Bin 8211 -> 0 bytes
 po/hr.po                                      |  702 --
 po/hu.gmo                                     |  Bin 10471 -> 8533 bytes
 po/hu.po                                      |  194 +-
 po/id.gmo                                     |  Bin 8294 -> 8586 bytes
 po/id.po                                      |  101 +-
 po/it.gmo                                     |  Bin 8243 -> 8539 bytes
 po/it.po                                      |  101 +-
 po/ja.gmo                                     |  Bin 11838 -> 9659 bytes
 po/ja.po                                      |  213 +-
 po/lt.gmo                                     |  Bin 7132 -> 7460 bytes
 po/lt.po                                      |  101 +-
 po/lv.gmo                                     |  Bin 8213 -> 8543 bytes
 po/lv.po                                      |  101 +-
 po/mt.gmo                                     |  Bin 5905 -> 5942 bytes
 po/mt.po                                      |   87 +-
 po/nb.gmo                                     |  Bin 9512 -> 2403 bytes
 po/nb.po                                      |  440 +-
 po/nl.gmo                                     |  Bin 9966 -> 8545 bytes
 po/nl.po                                      |  186 +-
 po/or.gmo                                     |  Bin 763 -> 832 bytes
 po/or.po                                      |   82 +-
 po/pl.gmo                                     |  Bin 10342 -> 8874 bytes
 po/pl.po                                      |  482 +-
 po/pt_BR.gmo                                  |  Bin 8552 -> 8887 bytes
 po/pt_BR.po                                   |  101 +-
 po/ro.gmo                                     |  Bin 7681 -> 8001 bytes
 po/ro.po                                      |  101 +-
 po/ru.gmo                                     |  Bin 13344 -> 11903 bytes
 po/ru.po                                      |  174 +-
 po/sk.gmo                                     |  Bin 8533 -> 8854 bytes
 po/sk.po                                      |  101 +-
 po/sl.gmo                                     |  Bin 9825 -> 8497 bytes
 po/sl.po                                      |  668 +-
 po/sq.gmo                                     |  Bin 640 -> 685 bytes
 po/sq.po                                      |   82 +-
 po/sr.gmo                                     |  Bin 10821 -> 11202 bytes
 po/sr.po                                      |  101 +-
 po/sv.gmo                                     |  Bin 8572 -> 8861 bytes
 po/sv.po                                      |  101 +-
 po/tr.gmo                                     |  Bin 8287 -> 8583 bytes
 po/tr.po                                      |  121 +-
 po/uk.gmo                                     |  Bin 13296 -> 11775 bytes
 po/uk.po                                      |  174 +-
 po/vi.gmo                                     |  Bin 11329 -> 8296 bytes
 po/vi.po                                      |  262 +-
 po/zh_CN.gmo                                  |  Bin 6261 -> 6295 bytes
 po/zh_CN.po                                   |  169 +-
 po/zh_HK.gmo                                  |  Bin 1300 -> 1571 bytes
 po/zh_HK.po                                   |   96 +-
 po/zh_TW.gmo                                  |  Bin 1299 -> 1570 bytes
 po/zh_TW.po                                   |   96 +-
 sys/Makefile.in                               |  268 +-
 sys/directsound/Makefile.in                   |  208 +-
 sys/directsound/gstdirectsoundplugin.c        |    4 +-
 sys/directsound/gstdirectsoundsink.c          |   40 +-
 sys/directsound/gstdirectsoundsink.h          |    5 +-
 sys/oss/Makefile.in                           |  208 +-
 sys/oss/common.h                              |    6 +-
 sys/oss/gstossaudio.c                         |    5 +-
 sys/oss/gstossdmabuffer.h                     |    4 +-
 sys/oss/gstosshelper.c                        |    4 +-
 sys/oss/gstosshelper.h                        |    4 +-
 sys/oss/gstosssink.c                          |    4 +-
 sys/oss/gstosssink.h                          |    4 +-
 sys/oss/gstosssrc.c                           |    6 +-
 sys/oss/gstosssrc.h                           |    4 +-
 sys/oss4/Makefile.in                          |  208 +-
 sys/oss4/oss4-audio.c                         |    4 +-
 sys/oss4/oss4-audio.h                         |    6 +-
 sys/oss4/oss4-property-probe.c                |    4 +-
 sys/oss4/oss4-property-probe.h                |    4 +-
 sys/oss4/oss4-sink.c                          |   12 +-
 sys/oss4/oss4-sink.h                          |    4 +-
 sys/oss4/oss4-source.c                        |    4 +-
 sys/oss4/oss4-source.h                        |    4 +-
 sys/osxaudio/Makefile.in                      |  208 +-
 sys/osxaudio/gstosxaudio.c                    |    4 +-
 sys/osxaudio/gstosxaudioelement.c             |    4 +-
 sys/osxaudio/gstosxaudioelement.h             |    4 +-
 sys/osxaudio/gstosxaudioringbuffer.c          |    4 +-
 sys/osxaudio/gstosxaudioringbuffer.h          |    4 +-
 sys/osxaudio/gstosxaudiosink.c                |   17 +-
 sys/osxaudio/gstosxaudiosink.h                |    4 +-
 sys/osxaudio/gstosxaudiosrc.c                 |    4 +-
 sys/osxaudio/gstosxaudiosrc.h                 |    4 +-
 sys/osxaudio/gstosxcoreaudio.h                |    4 +-
 sys/osxvideo/Makefile.in                      |  208 +-
 sys/osxvideo/cocoawindow.h                    |    4 +-
 sys/osxvideo/cocoawindow.m                    |    4 +-
 sys/osxvideo/osxvideosink.h                   |    4 +-
 sys/osxvideo/osxvideosink.m                   |    4 +-
 sys/sunaudio/Makefile.in                      |  208 +-
 sys/sunaudio/gstsunaudio.c                    |    4 +-
 sys/sunaudio/gstsunaudiomixer.c               |    4 +-
 sys/sunaudio/gstsunaudiomixer.h               |    2 +-
 sys/sunaudio/gstsunaudiomixerctrl.c           |    4 +-
 sys/sunaudio/gstsunaudiomixerctrl.h           |    2 +-
 sys/sunaudio/gstsunaudiomixeroptions.c        |    4 +-
 sys/sunaudio/gstsunaudiomixeroptions.h        |    2 +-
 sys/sunaudio/gstsunaudiomixertrack.c          |    4 +-
 sys/sunaudio/gstsunaudiomixertrack.h          |    4 +-
 sys/sunaudio/gstsunaudiosink.c                |    4 +-
 sys/sunaudio/gstsunaudiosink.h                |    4 +-
 sys/sunaudio/gstsunaudiosrc.c                 |    4 +-
 sys/sunaudio/gstsunaudiosrc.h                 |    4 +-
 sys/v4l2/Makefile.am                          |    9 +-
 sys/v4l2/Makefile.in                          |  218 +-
 sys/v4l2/gstv4l2.c                            |    4 +-
 sys/v4l2/gstv4l2bufferpool.c                  |  211 +-
 sys/v4l2/gstv4l2bufferpool.h                  |    5 +-
 sys/v4l2/gstv4l2colorbalance.c                |    4 +-
 sys/v4l2/gstv4l2colorbalance.h                |    4 +-
 sys/v4l2/gstv4l2object.c                      |  241 +-
 sys/v4l2/gstv4l2object.h                      |   18 +-
 sys/v4l2/gstv4l2radio.c                       |    4 +-
 sys/v4l2/gstv4l2radio.h                       |    4 +-
 sys/v4l2/gstv4l2sink.c                        |    8 +-
 sys/v4l2/gstv4l2sink.h                        |    4 +-
 sys/v4l2/gstv4l2src.c                         |   51 +-
 sys/v4l2/gstv4l2src.h                         |    4 +-
 sys/v4l2/gstv4l2tuner.c                       |    4 +-
 sys/v4l2/gstv4l2tuner.h                       |    4 +-
 sys/v4l2/gstv4l2videooverlay.c                |    4 +-
 sys/v4l2/gstv4l2videooverlay.h                |    4 +-
 sys/v4l2/gstv4l2vidorient.c                   |    4 +-
 sys/v4l2/gstv4l2vidorient.h                   |    4 +-
 sys/v4l2/tuner.c                              |    4 +-
 sys/v4l2/tuner.h                              |    4 +-
 sys/v4l2/tunerchannel.c                       |    4 +-
 sys/v4l2/tunerchannel.h                       |    4 +-
 sys/v4l2/tunernorm.c                          |    4 +-
 sys/v4l2/tunernorm.h                          |    4 +-
 sys/v4l2/v4l2_calls.c                         |  113 +-
 sys/v4l2/v4l2_calls.h                         |    7 +-
 sys/waveform/Makefile.in                      |  208 +-
 sys/waveform/gstwaveformplugin.c              |    4 +-
 sys/waveform/gstwaveformsink.c                |    4 +-
 sys/waveform/gstwaveformsink.h                |    5 +-
 sys/ximage/Makefile.in                        |  208 +-
 sys/ximage/gstximagesrc.c                     |    7 +-
 sys/ximage/gstximagesrc.h                     |    4 +-
 sys/ximage/ximageutil.c                       |    4 +-
 sys/ximage/ximageutil.h                       |    4 +-
 test-driver                                   |  127 +
 tests/Makefile.in                             |  266 +-
 tests/check/Makefile.am                       |   22 +-
 tests/check/Makefile.in                       | 1578 +++-
 tests/check/elements/aacparse.c               |    4 +-
 tests/check/elements/ac3parse.c               |    4 +-
 tests/check/elements/alphacolor.c             |   18 +-
 tests/check/elements/amrparse.c               |    4 +-
 tests/check/elements/apev2mux.c               |    6 +-
 tests/check/elements/aspectratiocrop.c        |    7 +-
 tests/check/elements/audioamplify.c           |   20 +-
 tests/check/elements/audiochebband.c          |   48 +-
 tests/check/elements/audiocheblimit.c         |   32 +-
 tests/check/elements/audiodynamic.c           |   18 +-
 tests/check/elements/audioecho.c              |   10 +-
 tests/check/elements/audioinvert.c            |   12 +-
 tests/check/elements/audiopanorama.c          |  968 +-
 tests/check/elements/audiowsincband.c         |  132 +-
 tests/check/elements/audiowsinclimit.c        |  100 +-
 tests/check/elements/autodetect.c             |   26 +-
 tests/check/elements/avimux.c                 |   12 +-
 tests/check/elements/avisubtitle.c            |   13 +-
 tests/check/elements/capssetter.c             |    6 +-
 tests/check/elements/deinterlace.c            |    9 +-
 tests/check/elements/deinterleave.c           |   68 +-
 tests/check/elements/dtmf.c                   |  588 ++
 tests/check/elements/equalizer.c              |    6 +-
 tests/check/elements/flacparse.c              |    4 +-
 tests/check/elements/flvdemux.c               |    4 +-
 tests/check/elements/flvmux.c                 |    4 +-
 tests/check/elements/gdkpixbufsink.c          |    4 +-
 tests/check/elements/icydemux.c               |   21 +-
 tests/check/elements/id3demux.c               |    4 +-
 tests/check/elements/id3v2mux.c               |    6 +-
 tests/check/elements/imagefreeze.c            |    4 +-
 tests/check/elements/interleave.c             |   35 +-
 tests/check/elements/jpegdec.c                |    4 +-
 tests/check/elements/jpegenc.c                |    6 +-
 tests/check/elements/level.c                  |  487 +-
 tests/check/elements/matroskamux.c            |   39 +-
 tests/check/elements/matroskaparse.c          |    4 +-
 tests/check/elements/mpegaudioparse.c         |    4 +-
 tests/check/elements/mulawdec.c               |  125 +
 tests/check/elements/mulawenc.c               |  175 +
 tests/check/elements/multifile.c              |   64 +-
 tests/check/elements/parser.c                 |   15 +-
 tests/check/elements/parser.h                 |    4 +-
 tests/check/elements/qtmux.c                  |   49 +-
 tests/check/elements/rganalysis.c             |  184 +-
 tests/check/elements/rglimiter.c              |   21 +-
 tests/check/elements/rgvolume.c               |  165 +-
 tests/check/elements/rtp-payloading.c         |   69 +-
 tests/check/elements/rtpbin.c                 |   10 +-
 tests/check/elements/rtpbin_buffer_list.c     |    4 +-
 tests/check/elements/rtpjitterbuffer.c        |  521 +-
 tests/check/elements/rtpmux.c                 |  316 +
 tests/check/elements/shapewipe.c              |   42 +-
 tests/check/elements/souphttpsrc.c            |  125 +-
 tests/check/elements/spectrum.c               |   39 +-
 tests/check/elements/sunaudio.c               |    4 +-
 tests/check/elements/udpsink.c                |    4 +-
 tests/check/elements/udpsrc.c                 |    4 +-
 tests/check/elements/videocrop.c              |   96 +-
 tests/check/elements/videofilter.c            |    8 +-
 tests/check/elements/videomixer.c             | 1059 +++
 tests/check/elements/vp8dec.c                 |    6 +-
 tests/check/elements/vp8enc.c                 |    6 +-
 tests/check/elements/wavpackdec.c             |   21 +-
 tests/check/elements/wavpackenc.c             |    4 +-
 tests/check/elements/wavpackparse.c           |    5 +-
 tests/check/elements/wavparse.c               |   80 +
 tests/check/elements/y4menc.c                 |    6 +-
 tests/check/generic/states.c                  |    4 +-
 tests/check/pipelines/effectv.c               |    4 +-
 tests/check/pipelines/flacdec.c               |    6 +-
 tests/check/pipelines/simple-launch-lines.c   |    6 +-
 tests/check/pipelines/tagschecking.c          |    7 +-
 tests/check/pipelines/wavenc.c                |    4 +-
 tests/check/pipelines/wavpack.c               |    4 +-
 tests/examples/Makefile.in                    |  268 +-
 tests/examples/audiofx/Makefile.in            |  191 +-
 tests/examples/audiofx/firfilter-example.c    |    4 +-
 tests/examples/audiofx/iirfilter-example.c    |    4 +-
 tests/examples/cairo/Makefile.in              |  190 +-
 tests/examples/cairo/cairo_overlay.c          |    4 +-
 tests/examples/equalizer/Makefile.in          |  190 +-
 tests/examples/jack/Makefile.in               |  190 +-
 tests/examples/jack/jack_client.c             |    2 +-
 tests/examples/level/Makefile.in              |  190 +-
 tests/examples/level/level-example.c          |   39 +-
 tests/examples/pulse/Makefile.in              |  190 +-
 tests/examples/pulse/pulse.c                  |    4 +-
 tests/examples/rtp/Makefile.in                |  191 +-
 tests/examples/rtp/client-PCMA.c              |    4 +-
 tests/examples/rtp/server-alsasrc-PCMA.c      |    6 +-
 tests/examples/shapewipe/Makefile.in          |  191 +-
 tests/examples/shapewipe/shapewipe-example.c  |    4 +-
 tests/examples/spectrum/Makefile.in           |  192 +-
 tests/examples/spectrum/demo-audiotest.c      |    4 +-
 tests/examples/spectrum/demo-osssrc.c         |    4 +-
 tests/examples/spectrum/spectrum-example.c    |    4 +-
 tests/examples/v4l2/Makefile.in               |  190 +-
 tests/examples/v4l2/camctrl.c                 |    4 +-
 tests/files/Makefile.in                       |  103 +-
 tests/icles/Makefile.in                       |  197 +-
 tests/icles/equalizer-test.c                  |    4 +-
 tests/icles/gdkpixbufsink-test.c              |    4 +-
 tests/icles/test-oss4.c                       |    4 +-
 tests/icles/v4l2src-test.c                    |    4 +-
 tests/icles/videobox-test.c                   |    4 +-
 tests/icles/videocrop-test.c                  |    4 +-
 tests/icles/videocrop2-test.c                 |    4 +-
 tests/icles/ximagesrc-test.c                  |    6 +-
 win32/common/config.h                         |   22 +-
 1374 files changed, 66972 insertions(+), 22657 deletions(-)
 create mode 100644 common/README
 rename docs/plugins/html/{gst-plugins-good-plugins.devhelp2 => gst-plugins-good-plugins-1.0.devhelp2} (84%)
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html
 delete mode 100644 docs/plugins/html/gst-plugins-good-plugins-gdkpixbufoverlay.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-rtpmux.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-sbcparse.html
 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-scaletempo.html
 create mode 100644 docs/plugins/inspect/plugin-annodex.xml
 create mode 100644 docs/plugins/inspect/plugin-dtmf.xml
 create mode 100644 ext/vpx/gstvp9dec.c
 create mode 100644 ext/vpx/gstvp9dec.h
 create mode 100644 ext/vpx/gstvp9enc.c
 create mode 100644 ext/vpx/gstvp9enc.h
 create mode 100644 gst/audiofx/audiopanoramaorc-dist.c
 create mode 100644 gst/audiofx/audiopanoramaorc-dist.h
 create mode 100644 gst/audiofx/audiopanoramaorc.orc
 create mode 100644 gst/audiofx/gstscaletempo.c
 create mode 100644 gst/audiofx/gstscaletempo.h
 create mode 100644 gst/audioparsers/gstsbcparse.c
 create mode 100644 gst/audioparsers/gstsbcparse.h
 create mode 100644 gst/dtmf/Makefile.am
 create mode 100644 gst/dtmf/Makefile.in
 create mode 100644 gst/dtmf/gstdtmf.c
 create mode 100644 gst/dtmf/gstdtmfcommon.h
 create mode 100644 gst/dtmf/gstdtmfsrc.c
 create mode 100644 gst/dtmf/gstdtmfsrc.h
 create mode 100644 gst/dtmf/gstrtpdtmfdepay.c
 create mode 100644 gst/dtmf/gstrtpdtmfdepay.h
 create mode 100644 gst/dtmf/gstrtpdtmfsrc.c
 create mode 100644 gst/dtmf/gstrtpdtmfsrc.h
 create mode 100644 gst/rtp/dboolhuff.LICENSE
 create mode 100644 gst/rtp/dboolhuff.c
 create mode 100644 gst/rtp/dboolhuff.h
 create mode 100644 gst/rtp/gstrtpsbcdepay.c
 create mode 100644 gst/rtp/gstrtpsbcdepay.h
 create mode 100644 gst/rtp/gstrtpsbcpay.c
 create mode 100644 gst/rtp/gstrtpsbcpay.h
 create mode 100644 gst/rtp/gstrtpvp8depay.c
 create mode 100644 gst/rtp/gstrtpvp8depay.h
 create mode 100644 gst/rtp/gstrtpvp8pay.c
 create mode 100644 gst/rtp/gstrtpvp8pay.h
 create mode 100644 gst/rtpmanager/gstrtpdtmfmux.c
 create mode 100644 gst/rtpmanager/gstrtpdtmfmux.h
 create mode 100644 gst/rtpmanager/gstrtpmux.c
 create mode 100644 gst/rtpmanager/gstrtpmux.h
 delete mode 100644 gst/spectrum/README
 delete mode 100644 gst/udp/gstudp-marshal.list
 delete mode 100644 gst/udp/gstudp.h
 delete mode 100644 po/hr.gmo
 delete mode 100644 po/hr.po
 create mode 100755 test-driver
 create mode 100644 tests/check/elements/dtmf.c
 create mode 100644 tests/check/elements/mulawdec.c
 create mode 100644 tests/check/elements/mulawenc.c
 create mode 100644 tests/check/elements/rtpmux.c
 create mode 100644 tests/check/elements/videomixer.c
 create mode 100644 tests/check/elements/wavparse.c

diff --git a/ChangeLog b/ChangeLog
index 1afa5e7c2..2f1ba7da8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,9 @@
-=== release 1.0.8 ===
+=== release 1.1.2 ===
 
-2013-07-12  Tim-Philipp Müller <tim@centricular.net>
+2013-07-11  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* configure.ac:
-	  releasing 1.0.8
+	  releasing 1.1.2
 
 2013-07-09 15:34:04 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>
 
@@ -30,16 +30,16 @@
 	  should be started only once and shared across all the instances
 	  running
 
-2013-06-05 17:02:49 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>
+2013-07-09 19:10:17 +0200  Matej Knopp <matej.knopp@gmail.com>
 
-	* sys/osxvideo/cocoawindow.m:
-	* sys/osxvideo/osxvideosink.m:
-	  osxvideosink: fix support in VM's without hardware acceleration
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: correct argument order in gst_util_uint64_scale_int_round
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703350
 
-2013-04-15 14:32:46 +0000  Andoni Morales Alastruey <ylatuya@gmail.com>
+2013-07-09 17:42:59 -0400  Olivier Crête <olivier.crete@collabora.com>
 
-	* sys/osxvideo/osxvideosink.m:
-	  osxvideosink: fix segfault accessing osxwindow when not set yet
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Keep caps order from the peer or the filter
 
 2013-07-09 12:42:17 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
@@ -63,6 +63,27 @@
 	  matroskademux: Unlock stream lock after use
 	  Stream lock of sink pad was not unlocked after non-updating seek.
 
+2013-06-27 13:26:31 +0200  Ognyan Tonchev <ognyan@axis.com>
+
+	* gst/multipart/multipartmux.c:
+	  multipartmux: Re-set need_segment flag after FLUSH_STOP
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703182
+
+2013-07-05 11:51:04 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* sys/v4l2/gstv4l2bufferpool.c:
+	  v4l2: bufferpool: don't forget to release buffer on error
+	  If the pool is stopped while gst_v4l2_buffer_pool_dqbuf() waits for a
+	  buffer then the return value is GST_FLOW_FLUSHING. In this case the buffer
+	  to queue must also be released. Otherwise is will never be deleted or
+	  returned to its pool.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703764
+
+2013-07-08 14:15:10 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* tests/check/elements/rtp-payloading.c:
+	  rtp: Fail payloading unit test if an error message is received
+
 2013-07-08 14:09:37 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
 	* gst/rtp/gstrtph263ppay.c:
@@ -71,6 +92,82 @@
 	  so we would always get an empty intersection here.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=702632
 
+2013-07-05 22:00:37 +0200  Piotr DrÄ…g <piotrdrag@gmail.com>
+
+	* po/POTFILES.in:
+	  po: update POTFILES.in
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703685
+
+2013-07-02 11:13:25 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: avoid some strdup
+
+2013-07-02 10:37:50 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: add select-stream signal
+	  Add a signal to let the app select what streams will be selected.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=634419
+
+2013-07-02 10:37:35 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: avoid strdup
+
+2013-07-02 10:12:17 +0200  J. Rick Ramstetter <rick.ramstetter@gmail.com>
+
+	* gst/rtp/README:
+	* gst/rtpmanager/gstrtpbin.c:
+	  rtp: Fix documentation and comments to use rtpbin instead of old gstrtpbin
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703426
+
+2013-07-01 16:55:01 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2: don't extract data from caps twice
+	  gst_video_info_from_caps() always extract width, height, interlace mode and
+	  framerate now. It is no longer necessary to do it again for encoded
+	  formats.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703399
+
+2013-06-20 09:41:48 -0300  Andoni Morales Alastruey <ylatuya@gmail.com>
+
+	* ext/soup/gstsouphttpsrc.c:
+	* ext/soup/gstsouphttpsrc.h:
+	  souphttpsrc: also consider stop positions in seeks
+	  Use seek stop position as range end for requests
+	  https://bugzilla.gnome.org/show_bug.cgi?id=702206
+
+2013-06-19 14:06:40 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* ext/soup/gstsouphttpsrc.c:
+	* ext/soup/gstsouphttpsrc.h:
+	  souphttpsrc: allow seeks in ready
+	  On is_seekable, check if the server's headers have already been
+	  received. If not, do a HEAD request to get them before responding
+	  to basesrc.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=702206
+
+2013-07-01 17:28:55 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: add signal to notify of the SDP
+	  This way, the app can look and modify the SDP.
+
+2013-06-21 18:10:28 +0200  Kishore Arepalli <kishore.arepalli@gmail.com>
+
+	* ext/gdk_pixbuf/gstgdkpixbufoverlay.c:
+	  gdkpixbufoverlay: Allow negative offsets to specify offset from bottom/right
+	  https://bugzilla.gnome.org/show_bug.cgi?id=702826
+
+2013-06-30 21:01:20 +0200  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/isomp4/Makefile.am:
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: compute framerate from average sample duration
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703350
+
 2013-06-25 21:16:38 +0200  Alban Browaeys <prahal@yahoo.com>
 
 	* gst/flv/gstflvdemux.c:
@@ -80,12 +177,206 @@
 	  right now.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=703076
 
+2013-07-01 11:37:00 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/interleave/deinterleave.c:
+	  deinterleave: Don't hold object lock while sending events downstream
+	  Based on a patch by Kishore Arepalli <kishore.arepalli@gmail.com>
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703114
+
+2013-07-01 10:59:07 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/matroska/matroska-demux.c:
+	  matroskademux: Add MPEG4 video profile/level to the caps
+
+2013-07-01 10:56:28 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/matroska/matroska-demux.c:
+	  matroskademux: Add AAC profile/level to the caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703312
+
+2013-06-28 15:21:56 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtp/gstrtpvorbispay.c:
+	* gst/rtp/gstrtpvorbispay.h:
+	  vorbispay: add support for config-interval
+	  Align code with the theora payloader and add support for the config-interval to
+	  periodically send out the config headers.
+
+2013-06-28 15:21:12 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtp/gstrtptheorapay.c:
+	  theorapay: small cleanups
+
+2013-06-28 12:08:19 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtp/gstrtptheorapay.c:
+	  theorapay: handle streamheaders as well
+
+2013-06-28 12:06:21 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtp/gstrtpvorbispay.c:
+	  vorbispay: always collect headers on data
+	  When we see a data packet, always check if we need to collect any previous
+	  headers.
+
+2013-06-28 11:43:17 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtp/gstrtpvorbispay.c:
+	  vorbispay: handle streamheader as well
+	  Take config strings from the streamheader when we can
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=664312
+
 2013-06-27 07:40:29 +0200  David Svensson Fors <davidsf@axis.com>
 
 	* gst/rtp/gstrtph264pay.c:
 	  rtph264pay: avoid double buffer unmap on error
 	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703171
 
+2013-06-27 17:02:14 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: reset-sync before play
+	  Call reset-sync on the rtpbin before we go to playing. This makes us require SR
+	  packets for all streams again before we attempt to sync them. If we don't reset,
+	  it might be that we combine SR packets from before and after the PAUSE/PLAYING
+	  state change and end up with huge bogus offsets.
+
+2013-06-27 16:23:20 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  jitterbuffer: improve sync on first packets
+	  Don't throw away the first RTCP packet if it arrives before the first
+	  RTP packet but remember and use it to signal sync once we get the
+	  RTP packet.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=691400
+
+2013-06-27 16:15:45 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  jitterbuffer: only signal loop when active
+	  Only signal the loop function when it is active.
+
+2013-06-27 16:13:37 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  jitterbuffer: signal timestamp discont
+	  We can now use the RESYNC buffer flag to mark a timestamp discont when we update
+	  the ts-offset property.
+
+2013-06-26 20:49:41 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtp/gstrtpjpegpay.c:
+	  jpegpay: turn some errors into warnings
+	  Turn some errors into warnings, we can continue processing so this should
+	  not be fatal.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=657079
+
+2013-06-26 14:58:53 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	* gst/rtsp/gstrtspsrc.h:
+	  rtspsrc: avoid some flushes
+
+2013-06-26 14:41:00 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: handle data message when waiting for reply
+	  When we are waiting for a server reply, handle data messages instead of
+	  ignoring them.
+
+2013-06-26 14:27:34 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: handle data messages in separate method
+	  Refactor and make a method to handle a data message.
+
+2013-06-25 20:36:18 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: add some more docs to handle-request signal
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=702705
+
+2013-06-10 17:20:30 -0400  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  Send a clock_provide message on the bus when we get a netclock
+
+2013-06-10 17:20:14 -0400  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	* gst/rtsp/gstrtspsrc.h:
+	  rtspsrc: Expose use-pipeline-clock property
+
+2013-06-24 17:11:35 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/udp/gstmultiudpsink.c:
+	  udpsink: bind to the given interface
+	  Actually call BINDTODEVICE to bind to the interface as given by the
+	  property.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702819
+
+2013-06-22 10:59:17 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* ext/vpx/gstvp8dec.c:
+	  vp8dec: Error out gracefully if we get an unsupported color format
+	  In theory we can only get I420 though, just to be on the safe side.
+
+2013-06-22 10:57:41 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* ext/vpx/gstvp9dec.c:
+	* ext/vpx/gstvp9enc.c:
+	  vp9: Add support for YV12, Y42B and Y444 color formats
+	  The encoder does not work with Y42B and Y444 yet it seems.
+
+2013-06-22 10:26:18 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* ext/vpx/gstvp9dec.c:
+	  vp9dec: Update default postproc settings from vp9_dx_iface.c
+
+2013-06-21 13:11:32 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/matroska/matroska-demux.c:
+	* gst/matroska/matroska-ids.h:
+	* gst/matroska/matroska-mux.c:
+	* gst/matroska/webm-mux.c:
+	  matroska: Add initial VP9 support
+
+2013-06-21 13:07:30 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* configure.ac:
+	* ext/vpx/Makefile.am:
+	* ext/vpx/gstvp9dec.c:
+	* ext/vpx/gstvp9dec.h:
+	* ext/vpx/gstvp9enc.c:
+	* ext/vpx/gstvp9enc.h:
+	* ext/vpx/plugin.c:
+	  vpx: Add initial, experimental VP9 support
+
+2013-06-21 10:32:30 +0200  Youness Alaoui <youness.alaoui at collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtsp: go back into the loop after doing pause
+	  After we do a pause request, go back to loop mode so that we can listen
+	  for server messages again.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=702705
+
+2013-06-20 23:16:17 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtpmanager/gstrtpptdemux.c:
+	  rtpptdemux: Wait after the caps to forward the other events
+	  First forward the stream-start, then the caps, then the rest
+
+2013-06-21 00:42:02 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* sys/ximage/gstximagesrc.c:
+	  ximagesrc: clear dts on buffer acquired from pool
+	  When setting timestamps on outgoing buffers, clear the
+	  dts explicitly, otherwise it may end up being set to a
+	  bogus value from last time it was used. Avoids every
+	  second or so buffer's dts being set to 0. Not that it
+	  should matter for raw video.
+
 2013-06-20 15:35:11 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* sys/v4l2/gstv4l2.c:
@@ -103,6 +394,70 @@
 	  waiting before issuing the paused or playing request.
 	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702705
 
+2013-06-20 11:31:22 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: handle SEGMENT query
+
+2013-06-19 12:37:31 +0200  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+	* sys/v4l2/gstv4l2src.c:
+	  v4l2: Optimize negotiation by removing the query filter
+	  As cameras tend to have a quite specific set of capabilities (specific
+	  framerates for each resolution), getting the peer caps filtered by our
+	  probed caps can cause a big increase in the caps size which slows down
+	  things quire a bit.
+	  As for negotiation v4l2 iterates through the caps of the peer to find the
+	  first intersection with the probed caps, getting the fully expanded
+	  intersection of capabilities is not useful.
+	  Using the same testcase as for bug #702632, adding this patch on top of
+	  the patches suggested there speeds up getting the inital frame from
+	  around ~14-15 seconds to around ~3-4 seconds.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=702638
+
+2013-06-19 10:30:56 +0200  Kishore Arepalli <kishore.arepalli@gmail.com>
+
+	* gst/avi/gstavidemux.c:
+	  avidemux: duration query returns zero for DV video in avi
+	  https://bugzilla.gnome.org/show_bug.cgi?id=702625
+
+2013-06-19 11:06:37 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Disable usage of allocation queries
+	  This can only reliably work if demuxers have a
+	  separate streaming thread per srcpad. This should be
+	  done in a demuxer base class, which integrates parts
+	  of multiqueue
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701856
+
+2013-06-11 15:02:21 +0100  Alex Ashley <bugzilla@ashley-family.net>
+
+	* gst/isomp4/qtdemux.c:
+	  Avoid skipping moov atoms for fragmented MP4 files.
+	  bug #700505
+	  Following a representation change that causes a resolution change,
+	  the video decoder fails to decode correctly. Dashdemux detects the
+	  representation change and pushes a new caps event and an
+	  initialization segment (a new moov atom) to the downstream qtdemux,
+	  but it doesn't handle this new moov yet, it will only parse the
+	  first one it receives.
+	  This commit changes qtdemux to accept a new moov in a dash bitstream
+	  switching scenario.
+
+2013-06-19 00:42:54 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: send stream-start only once for each stream
+	  Do not send stream start again when reconfiguring a pad for new caps.
+	  That is common for adaptive streams
+
+2013-06-05 17:02:49 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>
+
+	* sys/osxvideo/cocoawindow.m:
+	* sys/osxvideo/osxvideosink.m:
+	  osxvideosink: fix support in VM's without hardware acceleration
+
 2013-06-15 12:29:31 +0200  Jens Georg <mail@jensge.org>
 
 	* gst/rtp/gstrtpmp2tdepay.c:
@@ -110,193 +465,307 @@
 	  The mp2t payloader in 0.10 mislabelled the streams as MP2T-ES
 	  instead of MP2T, so accept that as well for compatibility reasons.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=702457
-	  Conflicts:
-	  gst/rtp/gstrtpmp2tdepay.c
 
-2013-06-07 15:38:25 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-06-16 05:40:13 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* ext/libpng/Makefile.am:
-	  png: Link with libgstbase for GstByteReader and GstAdapter
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: manage element state ourselves
+	  Lock the state of the all our elements and manage their states
+	  outselves. Because we are working async, we can't rely on the state
+	  change function to set the state at the right time or to return the
+	  right return value from the state change function.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702046
 
-2013-06-14 14:07:42 +0200  Bruno Gonzalez <stenyak@gmail.com>
+2013-06-14 14:09:50 +0200  Bruno Gonzalez <stenyak@gmail.com>
 
 	* gst/matroska/matroska-demux.c:
 	  matroskademux: Don't unlock stream lock without locking it first
 	  https://bugzilla.gnome.org/show_bug.cgi?id=702167
 
-2013-06-11 12:25:46 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+2013-06-13 16:00:33 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst/flv/gstflvdemux.c:
-	  flvdemux: Don't forward CAPS events from upstream
-	  Just use the default pad event handler.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=701976
+	* gst/rtpmanager/rtpsession.c:
+	* gst/rtpmanager/rtpsession.h:
+	  rtpsession: Use the right hashtable to calculate bandwidth
+	  Don't use an unused hashtable to iterate source to calculate bandwidth.
+	  Remove unused code.
 
-2013-06-05 12:12:53 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-06-12 16:27:24 -0600  Brendan Long <b.long@cablelabs.com>
 
-	* gst/udp/gstudpsink.c:
-	  udpsink: avoid leaking the host
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701586
+	* configure.ac:
+	  pulsesink: Require PulseAudio >= 2.0
+	  This is needed for pa_format_info_get_prop_* functions.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=686459
 
-2013-04-24 16:24:25 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-06-13 14:23:08 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
 
-	* gst/rtp/gstrtpvrawdepay.c:
-	  vrawdepay: return output buffer from process
-	  Return the output buffer from the process function instead of pushing
-	  it ourselves. This way, the subclass can actually deal with the return
-	  value of the push.
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693727
+	* configure.ac:
+	* ext/pulse/pulsesink.c:
+	* ext/pulse/pulseutil.c:
+	  Revert "pulsesink: Make 2.0 dependency optional"
+	  This reverts commit 01457027e0d384aca3e551ae684e0aa074ee5498.
+	  We'll just depend on PulseAudio 2.0 or above instead of having the bug
+	  partially fixed based on the installed libpulse version.
 
-2013-05-27 22:43:25 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+2013-06-13 12:40:15 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+	* configure.ac:
+	* ext/pulse/pulsesink.c:
+	* ext/pulse/pulseutil.c:
+	  pulsesink: Make 2.0 dependency optional
+	  The getcaps function we added uses some pa_format_info_get_prop...
+	  accessor functions that were only added in 2.0, so we only have our
+	  getcaps implementation exist if we're compiling against libpulse 2.0 or
+	  above.
+	  Eventually, we could bump the minimum requirement to 2.0 or above.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=686459
+
+2013-06-12 18:23:46 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
 	* gst/videomixer/videomixer2.c:
-	  videomixer: Maintain z-order when new pad are added
-	  https://bugzilla.gnome.org/show_bug.cgi?id=701109
+	  Revert "videomixer: When all sinkpads are eos, update output segment stop and forward it"
+	  This reverts commit 2d3910fc7901b5f29e16c0fdd4e9067a6d7f66fe.
+	  It's not solving any problem and instead causes code to fall apart.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701519
 
-2013-05-28 14:31:31 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-01-09 09:39:33 +0000  Tim-Philipp Müller <tim@centricular.net>
 
-	* ext/jpeg/gstjpegenc.c:
-	  jpegenc: Fix for single-includes that are not in 1.0 yet
+	* gst/matroska/matroska-demux.c:
+	  matroskademux: mark subtitle streams as sparse in stream-start event
+	  And also mark the streams that should be selected by default if
+	  marked so in the headers.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=600648
 
-2013-02-14 14:13:27 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+2013-06-11 22:12:58 +0200  Stefan Sauer <ensonic@users.sf.net>
 
-	* ext/jpeg/gstjpegdec.c:
-	  jpegdec: remove sof-marker from template caps for now
-	  Now that the subset check actually works, this breaks
-	  things with demuxers that don't put a "sof-marker"
-	  in their jpeg caps, and we don't have a good parser
-	  to plug either yet.
+	* gst/audiofx/audiopanoramaorc-dist.c:
+	* gst/audiofx/audiopanoramaorc-dist.h:
+	  audiopanorama: add prebuilt files
 
-2013-02-13 12:32:10 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-06-11 20:27:51 +0200  Stefan Sauer <ensonic@users.sf.net>
 
-	* ext/jpeg/gstjpegenc.c:
-	* ext/jpeg/gstjpegenc.h:
-	  jpegenc: Put the SOF marker into the caps
+	* tests/check/elements/audiopanorama.c:
+	  audiopanorama: cleanup and expand the tests
+	  Split out two more tests. Extract more common code into helpers. Add coverage for float.
 
-2013-02-13 12:02:46 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-06-10 21:15:20 +0200  Stefan Sauer <ensonic@users.sf.net>
 
-	* gst/rtp/gstrtpamrdepay.c:
-	* tests/check/elements/rtp-payloading.c:
-	  rtp-payloading: Fix unit test caps and AMR depayloader sink template caps
-	  Fields were missing from the actual caps, or too many fields
-	  existed in the template caps.
+	* gst/audiofx/audiopanorama.c:
+	  audiopanorama: cleanup of transform()
+	  Only map input if we are reading it. Cleanup the logging and the comments a bit.
 
-2013-02-13 11:53:01 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-06-09 20:35:18 +0200  Stefan Sauer <ensonic@users.sf.net>
 
-	* tests/check/elements/aacparse.c:
-	  aacparse: Fix caps used in the unit test
-	  The AAC caps passed were incomplete.
+	* gst/audiofx/Makefile.am:
+	* gst/audiofx/audiopanorama.c:
+	* gst/audiofx/audiopanorama.h:
+	* gst/audiofx/audiopanoramaorc.orc:
+	  audiopanorama: use orc to speedup processing
+	  Use special variants for the case when we don't change the panorama (pan=0.0).
+	  Simplify the processing functions by passing the panorama value directy instead
+	  of the instance. Use orc for clearing buffers too.
 
-2013-02-13 11:49:40 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-06-11 19:24:49 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
 
-	* tests/check/elements/wavpackenc.c:
-	* tests/check/elements/wavpackparse.c:
-	  wavpack: Fix unit tests, width is now called depth in the caps in 1.0
+	* gst/videomixer/videomixer2.c:
+	  videomixer: check last end_time after conversion to running segment
+	  The last end_time was saved after conversion, so the comparison
+	  had to be made after conversion for it to make sense.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701385
 
-2013-05-23 18:10:10 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+2013-06-11 19:22:20 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
 
-	* gst/udp/gstdynudpsink.c:
-	* gst/udp/gstmultiudpsink.c:
-	  (dyn|multi)udpsink: Bind socket before using it
-	  https://bugzilla.gnome.org/show_bug.cgi?id=700878
+	* gst/videomixer/videomixer2.c:
+	  videomixer: add mix->segment.start to output_end_time
+	  When the segment start is not 0, this created a situation where
+	  the output_end_time is inferior to output_start_time, and the duration
+	  of the next buffer ended up underflowing.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701385
 
-2013-05-17 12:37:59 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+2013-06-11 13:54:53 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
-	* gst/rtp/gstrtpmp4apay.c:
-	  rtpmp4apay: clear config buffer before using it
-	  This is necessary because parts of the memory are only modified with "|="
-	  https://bugzilla.gnome.org/show_bug.cgi?id=700514
+	* gst/matroska/matroska-demux.c:
+	  matroskademux: Send stream headers after the segment event
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700799
 
-2013-05-14 15:23:08 +0200  Arnaud Vrac <avrac@freebox.fr>
+2013-06-11 12:26:24 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
 	* gst/isomp4/qtdemux.c:
-	  qtdemux: set alac caps using info from codec buffer
-	  The samplerate field in the STSD atom is not right for some ALAC files
-	  (usually when audio is 96kHz/24bits), so the audio caps must be
-	  extracted from the codec data.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=700382
+	  qtdemux: Do allocation query after exposing all pads and no-more-pads
+	  Also configure video streams as early as possible.
+	  Related https://bugzilla.gnome.org/show_bug.cgi?id=701856
+	  but not fixing that.
 
-2013-05-15 11:13:12 +0200  Arnaud Vrac <avrac@freebox.fr>
+2013-06-11 12:25:46 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
-	* gst/avi/gstavidemux.c:
-	  avidemux: do not push discont buffers if they aren't discont
-	  https://bugzilla.gnome.org/show_bug.cgi?id=682110
+	* gst/flv/gstflvdemux.c:
+	  flvdemux: Don't forward CAPS events from upstream
+	  Just use the default pad event handler.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701976
 
-2013-04-17 16:54:22 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+2013-05-26 08:18:04 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
 
-	* gst/isomp4/qtdemux.c:
-	  qtdemux: do not push discont buffers if they aren't discont
-	  qtdemux takes its buffers from a GstAdapter. Those buffers are created
-	  from the larger buffer that it obtained from upstream and they carry
-	  the same flags, including DISCONT if it is set. In these cases, all
-	  buffers that qtdemux is going to push would be marked as DISCONT.
-	  This scenario can make parsers/decoders flush on every buffer leading
-	  to no decoding at all hapenning. This patch prevents this by unsetting
-	  the flag if it shouldn't be set.
+	* ext/pulse/pulsesink.c:
+	  pulsesink: Cache the getcaps/acceptcaps probe stream
+	  getcaps is called frequently during stream setup, and creating a new
+	  stream each time is very inefficient. There's some more room for
+	  optimisation by caching the queried sink formats as well, but this needs
+	  some more changes to listen for format changes on the sink (for when
+	  supported formats change between probe stream creation and sink
+	  querying).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=686459
 
-2013-04-15 17:37:01 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>
+2013-05-23 21:39:08 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
 
-	* sys/osxvideo/osxvideosink.h:
-	* sys/osxvideo/osxvideosink.m:
-	  osxvideosink: fix setting window handle after transition
-	  The destroyed flag was not reset properly and it's also not needed
-	  as we can check osxwindow != NULL
+	* ext/pulse/pulsesink.c:
+	* ext/pulse/pulsesink.h:
+	* ext/pulse/pulseutil.c:
+	* ext/pulse/pulseutil.h:
+	  pulsesink: Add a getcaps function
+	  This allows us to have more fine-tuned caps in READY or above. However,
+	  this is _really_ inefficient since we create a new stream and query sink
+	  for every getcaps in READY, which on a simple gst-launch line happens
+	  about 35 times. The next step is to cache getcaps results.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=686459
 
-2013-05-07 16:32:03 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-05-10 11:32:44 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
 
-	* ext/jpeg/gstjpegdec.c:
-	  jpegdec: By default assume that we're working on non-packetized input
-	  Only detecting this in set_format() does not work because we might
-	  not get any caps at all, e.g. from filesrc.
+	* ext/pulse/pulsesink.c:
+	  pulsesink: Take a lock on the ringbuffer in acceptcaps
+	  This is needed as a concurrent state change could pull the context or
+	  stream out from under our feet.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=686459
 
-2013-05-07 16:30:59 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-06-09 20:29:09 +0200  Stefan Sauer <ensonic@users.sf.net>
 
-	* ext/libpng/gstpngdec.c:
-	  pngdec: Implement parsing functionality
-	  This allows to plug pngdec directly without a parser if that
-	  is desired.
-	  Parsing code is based on pngparse.
+	* gst/audiofx/audiopanorama.c:
+	* gst/audiofx/audiopanorama.h:
+	  audiopanorama: move the enum to the header and use instead of gint
+	  Move the enum for the processing method to the header so that we can use the
+	  type for the instance struct.
 
-2013-05-01 15:49:45 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-06-09 20:32:22 +0200  Stefan Sauer <ensonic@users.sf.net>
 
-	* gst/rtp/gstrtph264pay.c:
-	  rtph264pay: If the adapter is empty on EOS don't try to map its content
-	  https://bugzilla.gnome.org/show_bug.cgi?id=699314
+	* tests/check/elements/level.c:
+	  level: rework the tests to cover other formats too
 
-2013-04-30 14:36:38 +0200  Ognyan Tonchev <ognyan@axis.com>
+2013-06-05 16:32:30 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
 
-	* gst/matroska/matroska-demux.c:
-	  matroskademux: add stream-format=raw to aac caps
-	  https://bugzilla.gnome.org/show_bug.cgi?id=699303
+	* sys/v4l2/gstv4l2bufferpool.c:
+	  v4l2: make sure the element is not deleted before the pool
+	  The pool accesses data from the v4l2object so it must exist at least
+	  as long as the pool. Refcount the element which controls the object
+	  live-time.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701650
 
-2013-03-04 15:49:06 -0800  David Schleef <ds@schleef.org>
+2013-06-07 15:38:25 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-	* ext/libpng/gstpngenc.c:
-	  pngenc: unmap source frame when done to fix memory leak
-	  https://bugzilla.gnome.org/show_bug.cgi?id=699260
+	* ext/libpng/Makefile.am:
+	  png: Link with libgstbase for GstByteReader and GstAdapter
 
-2013-04-27 11:16:54 +0100  Tim-Philipp Müller <tim@centricular.net>
+2013-06-07 15:15:15 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-	* gst/udp/gstudpsrc.c:
-	  udpsrc: add includes to get socklen_t defined on Windows
-	  https://bugzilla.gnome.org/show_bug.cgi?id=692400
+	* gst/wavenc/Makefile.am:
+	  wavenc: Link with libgstbase for GstByteWriter
 
-2013-02-15 14:11:36 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+2013-06-07 13:26:35 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-	* gst/udp/gstudpsrc.c:
-	  udpsrc: use g_socket_set_option() to set buffer size with newer GLib versions
-	  So we have to worry less about portability.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=692400
-	  Conflicts:
-	  gst/udp/gstudpsrc.c
+	* gst/wavparse/gstwavparse.c:
+	  wavparse: Push stream-start event in pull mode before anything else
+
+2013-05-10 12:09:19 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+	* ext/pulse/pulsesink.c:
+	* ext/pulse/pulsesink.h:
+	  pulsesink: Get rid of acceptcaps side-effects
+	  The sink info callback should not have side-effects on the GstPulseSink
+	  object since we are sometimes using with a dummy stream in acceptcaps.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=686459
+
+2013-06-05 18:36:40 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* configure.ac:
+	  Back to development
 
-=== release 1.0.7 ===
+=== release 1.1.1 ===
 
-2013-04-26 12:52:17 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-06-05 17:58:51 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* ChangeLog:
 	* NEWS:
 	* RELEASE:
+	* common:
 	* configure.ac:
+	* docs/plugins/gst-plugins-good-plugins.args:
+	* docs/plugins/gst-plugins-good-plugins.hierarchy:
+	* docs/plugins/gst-plugins-good-plugins.interfaces:
+	* docs/plugins/gst-plugins-good-plugins.signals:
+	* docs/plugins/inspect/plugin-1394.xml:
+	* docs/plugins/inspect/plugin-aasink.xml:
+	* docs/plugins/inspect/plugin-alaw.xml:
+	* docs/plugins/inspect/plugin-alpha.xml:
+	* docs/plugins/inspect/plugin-alphacolor.xml:
+	* docs/plugins/inspect/plugin-apetag.xml:
+	* docs/plugins/inspect/plugin-audiofx.xml:
+	* docs/plugins/inspect/plugin-audioparsers.xml:
+	* docs/plugins/inspect/plugin-auparse.xml:
+	* docs/plugins/inspect/plugin-autodetect.xml:
+	* docs/plugins/inspect/plugin-avi.xml:
+	* docs/plugins/inspect/plugin-cacasink.xml:
+	* docs/plugins/inspect/plugin-cairo.xml:
+	* docs/plugins/inspect/plugin-cutter.xml:
+	* docs/plugins/inspect/plugin-debug.xml:
+	* docs/plugins/inspect/plugin-deinterlace.xml:
+	* docs/plugins/inspect/plugin-dtmf.xml:
+	* docs/plugins/inspect/plugin-dv.xml:
+	* docs/plugins/inspect/plugin-effectv.xml:
+	* docs/plugins/inspect/plugin-equalizer.xml:
+	* docs/plugins/inspect/plugin-flac.xml:
+	* docs/plugins/inspect/plugin-flv.xml:
+	* docs/plugins/inspect/plugin-flxdec.xml:
+	* docs/plugins/inspect/plugin-gdkpixbuf.xml:
+	* docs/plugins/inspect/plugin-goom.xml:
+	* docs/plugins/inspect/plugin-goom2k1.xml:
+	* docs/plugins/inspect/plugin-icydemux.xml:
+	* docs/plugins/inspect/plugin-id3demux.xml:
+	* docs/plugins/inspect/plugin-imagefreeze.xml:
+	* docs/plugins/inspect/plugin-interleave.xml:
+	* docs/plugins/inspect/plugin-isomp4.xml:
+	* docs/plugins/inspect/plugin-jack.xml:
+	* docs/plugins/inspect/plugin-jpeg.xml:
+	* docs/plugins/inspect/plugin-level.xml:
+	* docs/plugins/inspect/plugin-matroska.xml:
+	* docs/plugins/inspect/plugin-mulaw.xml:
+	* docs/plugins/inspect/plugin-multifile.xml:
+	* docs/plugins/inspect/plugin-multipart.xml:
+	* docs/plugins/inspect/plugin-navigationtest.xml:
+	* docs/plugins/inspect/plugin-oss4.xml:
+	* docs/plugins/inspect/plugin-ossaudio.xml:
+	* docs/plugins/inspect/plugin-png.xml:
+	* docs/plugins/inspect/plugin-pulseaudio.xml:
+	* docs/plugins/inspect/plugin-replaygain.xml:
+	* docs/plugins/inspect/plugin-rtp.xml:
+	* docs/plugins/inspect/plugin-rtpmanager.xml:
+	* docs/plugins/inspect/plugin-rtsp.xml:
+	* docs/plugins/inspect/plugin-shapewipe.xml:
+	* docs/plugins/inspect/plugin-shout2send.xml:
+	* docs/plugins/inspect/plugin-smpte.xml:
+	* docs/plugins/inspect/plugin-soup.xml:
+	* docs/plugins/inspect/plugin-spectrum.xml:
+	* docs/plugins/inspect/plugin-speex.xml:
+	* docs/plugins/inspect/plugin-taglib.xml:
+	* docs/plugins/inspect/plugin-udp.xml:
+	* docs/plugins/inspect/plugin-video4linux2.xml:
+	* docs/plugins/inspect/plugin-videobox.xml:
+	* docs/plugins/inspect/plugin-videocrop.xml:
+	* docs/plugins/inspect/plugin-videofilter.xml:
+	* docs/plugins/inspect/plugin-videomixer.xml:
+	* docs/plugins/inspect/plugin-vpx.xml:
+	* docs/plugins/inspect/plugin-wavenc.xml:
+	* docs/plugins/inspect/plugin-wavpack.xml:
+	* docs/plugins/inspect/plugin-wavparse.xml:
+	* docs/plugins/inspect/plugin-ximagesrc.xml:
+	* docs/plugins/inspect/plugin-y4menc.xml:
 	* gst-plugins-good.doap:
 	* gst/deinterlace/tvtime-dist.c:
 	* gst/deinterlace/tvtime-dist.h:
@@ -305,9 +774,9 @@
 	* gst/videomixer/blendorc-dist.c:
 	* gst/videomixer/blendorc-dist.h:
 	* win32/common/config.h:
-	  Release 1.0.7
+	  Release 1.1.1
 
-2013-04-26 12:52:08 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-06-05 16:35:19 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* po/af.po:
 	* po/az.po:
@@ -324,7 +793,6 @@
 	* po/fi.po:
 	* po/fr.po:
 	* po/gl.po:
-	* po/hr.po:
 	* po/hu.po:
 	* po/id.po:
 	* po/it.po:
@@ -352,1342 +820,5862 @@
 	* po/zh_TW.po:
 	  Update .po files
 
-2013-03-06 13:17:54 +0000  Tom Greenwood <tgreenwood@Toms-MacBook-Pro.local>
+2013-06-05 15:50:04 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-	* ext/vpx/gstvp8enc.c:
-	  vp8enc: Fix for divide by zero when using 0/1 framerate
-	  https://bugzilla.gnome.org/show_bug.cgi?id=695709
+	* gst/wavenc/gstwavenc.c:
+	  wavenc: Fix taglist ref handling that made the unit test fail
 
-2012-10-01 09:29:21 -0300  Diogo Carbonera Luvizon <diogo.luvizon@ensitec.com.br>
+2013-06-05 15:14:54 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
-	* sys/v4l2/gstv4l2object.c:
-	  v4l2: save the format correctly
-	  If TRY_FMT is not implemented,  gst_v4l2_object_get_nearest_size will
-	  use S_FMT and will change the device's operation mode. To save the
-	  old device mode we need to set the type field or else it will fail
-	  to save the previous format.
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=685209
+	* common:
+	  Automatic update of common submodule
+	  From 098c0d7 to 01a7a46
 
-2013-04-22 10:19:29 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-06-03 09:17:43 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
 
-	* gst/rtp/gstrtpjpegdepay.c:
-	  rtpjpegdepay: Drop frame if it's less than 2 bytes large
-	  https://bugzilla.gnome.org/show_bug.cgi?id=677560
+	* sys/v4l2/v4l2_calls.c:
+	  v4l2: iterate controls with V4L2_CTRL_FLAG_NEXT_CTRL if possible
+	  In v2.6.18 control classes where added to the v4l2 API.
+	  Iterating over CIDs starting with V4L2_CID_BASE will only find controls for
+	  the first control class.
+	  By iterating with V4L2_CTRL_FLAG_NEXT_CTRL all controls are found.
+	  This is necessary to make controls from other control classes available in
+	  the extra-controls property.
+	  If V4L2_CTRL_FLAG_NEXT_CTRL is not defined at compile time or not supported
+	  at runtime then the old mechanism for iterating is used.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701540
 
-2013-04-18 09:37:30 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-06-05 12:12:53 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* sys/osxaudio/gstosxaudioringbuffer.h:
-	  osxaudio: Include gstaudioringbuffer.h to fix compilation in 1.0
+	* gst/udp/gstudpsink.c:
+	  udpsink: avoid leaking the host
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701586
 
-2013-04-17 10:10:46 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-06-04 08:26:33 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
 
-	* configure.ac:
-	  osxaudio: Fix configure check for osxaudio plugin
+	* sys/v4l2/gstv4l2object.c:
+	* sys/v4l2/gstv4l2object.h:
+	  v4l2: improve pixel aspect ratio handling
+	  Instead of just assuming a aspect ratio of 1/1 use VIDIOC_CROPCAP to ask
+	  the device.
+	  This also add a pixel-aspect-ratio property to overwrite the value from the
+	  driver and a force-aspect-ratio property to ignore it.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700285
 
-2013-04-17 21:05:14 +0200  Philippe Normand <philn@igalia.com>
+2013-06-04 17:04:11 +0200  Stirling Westrup <swestrup@gmail.com>
 
-	* sys/osxaudio/gstosxaudiosink.c:
-	  osxaudiosink: channel-mask configuration fixes
-	  Set channel-mask according to sink's layout in case of stereo layout.
-	  Also initialize and reset the mask when an unrecognized channel is detected.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=698224
+	* sys/v4l2/v4l2_calls.c:
+	  v4l2: Fix compilation with older kernels
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701595
 
-2013-04-17 20:24:48 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-06-03 17:07:10 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
 
-	* sys/osxaudio/gstosxcoreaudiocommon.h:
-	  osxaudio: Fix merge conflicts
+	* sys/v4l2/gstv4l2bufferpool.c:
+	  v4l2: call VIDIOC_REQBUFS with count = 0 in pool_finalize
+	  Without this the following sequence fails:
+	  - set_caps()
+	  - object_stop() (does nothing)
+	  - set_format() -> VIDIOC_S_FMT
+	  - set_config() -> VIDIOC_REQBUFS with count = N
+	  - set_caps()
+	  - object_stop()
+	  - pool_finalize()
+	  - set_format() -> VIDIOC_S_FMT => EBUSY
+	  Usually the pool is started after set_config(), in which case object_stop()
+	  will result in a pool_stop and therefore VIDIOC_REQBUFS with count = 0 but
+	  that is not guaranteed.
+	  Also calling VIDIOC_REQBUFS with count = 0 in pool_finalize() if necessary
+	  fixes this problem.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701543
+
+2013-05-28 19:14:15 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
 
-2013-04-17 09:50:43 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+	* sys/v4l2/gstv4l2bufferpool.c:
+	  v4l2: rework sink buffer refcounting
+	  This is a followup patch for #700781, which is not quite correct.
+	  The buffer handling is quite complicated here.
+	  The original code intended to the the following:
+	  - gst_v4l2_buffer_pool_process() calls QBUF and adds the buffer to the
+	  local list.
+	  - The sink calls gst_buffer_unref() which returns the buffer to the pool
+	  but not the 'free list'.
+	  - Some time later DQBUF returns the buffer and
+	  gst_v4l2_buffer_pool_release_buffer() puts in on the 'free list'.
+	  If the buffer must be copied then (parent_class)->acquire_buffer() is
+	  called directly to keep the buffer in the pool.
+	  This has two problems:
+	  1. If gst_v4l2_buffer_pool_release_buffer() is called before the buffer is
+	  returned to the pool, then the buffer is put on the 'free list' twice.
+	  This can happen if a reference to the buffer is kept outside the sink,
+	  of if DQBUF returns the buffer, that was just queued with QBUF.
+	  2. If buffers are copied, then all buffers are in the pool at all times. As
+	  a result gst_v4l2_buffer_pool_stop() and gst_v4l2_buffer_pool_dqbuf()
+	  can access pool->buffers at the same time, which can lead to memory
+	  corruption.
+	  The patch for #700781 fixes those problems, but with the side effect that
+	  there are always buffers outside the pool (because they are queued) and
+	  the pool is never stopped.
+	  This patch fixes this by releasing the reference to the buffer after
+	  handling it (to avoid problem 2.) so it can be returned to the pool.
+	  gst_v4l2_buffer_pool_release_buffer() is only called if the buffer is
+	  already in the pool (to avoid problem 1.).
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701375
+
+2013-06-02 15:24:38 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
-	* sys/osxaudio/gstosxaudioringbuffer.c:
-	  osxaudioringbuffer: First check the type, then cast
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: make sure taglist is writable before adding tags
+	  Avoids assertions
 
-2013-04-16 22:46:00 +0900  Takashi Nakajima <ted.nakajima@gmail.com>
+2013-05-30 19:24:13 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
-	* sys/osxaudio/gstosxaudioringbuffer.c:
-	* sys/osxaudio/gstosxaudiosink.h:
-	  osxaudio: use GST_IS_OSX_AUDIO_SINK in ring buffer.
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: effectively skip tracks that weren't listed on the 1st moov
+	  Without this, stream is NULL and the code will try to access it, leading
+	  to segfaults.
 
-2013-04-10 21:06:16 +0900  Takashi Nakajima <ted.nakajima@gmail.com>
+2013-05-30 19:23:50 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
-	* sys/osxaudio/gstosxaudioringbuffer.c:
-	* sys/osxaudio/gstosxaudiosink.c:
-	* sys/osxaudio/gstosxaudiosink.h:
-	  osxaudio: call set_channel_positions() in osxaudioringbuffer acquire()
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: skip redundant check
+	  !got_moov is already checked the line above
 
-2013-04-12 12:18:04 -0700  Todd Agulnick <todd@agulnick.com>
+2013-06-02 13:03:40 +0200  Stefan Sauer <ensonic@users.sf.net>
 
-	* sys/osxaudio/gstosxaudioringbuffer.c:
-	  osxaudio: use GST_AUDIO_INFO_* accessors
-	  Changes include the following:
-	  * Update classname references
-	  * Replace GST_BOILERPLATE_FULL with G_DEFINE_TYPE
-	  * Use new GstAudioInfo struct and methods
-	  * Use new buffer memory allocation scheme
-	  Conflicts:
-	  sys/osxaudio/gstosxaudioringbuffer.c
+	* tests/check/elements/level.c:
+	  tests: cleanup level tests
+	  Split out a few more tests to avoid checking the same stuff over and over again.
 
-2013-04-12 11:51:46 -0700  Todd Agulnick <todd@agulnick.com>
+2013-06-01 21:33:46 +0200  Stefan Sauer <ensonic@users.sf.net>
 
-	* sys/osxaudio/gstosxcoreaudiocommon.h:
-	* sys/osxaudio/gstosxcoreaudiohal.c:
-	  osxaudio: adjust for changes to glib mutex api.
+	* gst/level/gstlevel.h:
+	  level: remove unused variables in instance struct
 
-2013-04-10 01:21:49 +0900  Takashi Nakajima <ted.nakajima@gmail.com>
+2013-05-31 18:13:02 +0200  Stefan Sauer <ensonic@users.sf.net>
 
-	* sys/osxaudio/gstosxaudiosink.c:
-	* sys/osxaudio/gstosxaudiosrc.c:
-	  osxaudio: try to fix up according to Sebastian's comments
+	* tests/check/elements/level.c:
+	  level: add a test for continous timestamps
+	  A test that checks that msg[n].ts + msg[n].dur == msg[n+1].ts.
 
-2013-04-05 10:02:38 +0200  Philippe Normand <philn@igalia.com>
+2013-04-12 16:02:44 +0300  Anton Belka <antonbelka@gmail.com>
 
-	* configure.ac:
-	* sys/osxaudio/gstosxaudioringbuffer.h:
-	* sys/osxaudio/gstosxaudiosink.c:
-	* sys/osxaudio/gstosxaudiosink.h:
-	* sys/osxaudio/gstosxaudiosrc.h:
-	  osxaudio: build fixes
-	  Enable the osxaudio plugin build in configure.ac and fix some
-	  include directive order issues.
+	* gst/wavenc/gstwavenc.c:
+	* gst/wavenc/gstwavenc.h:
+	  wavenc: add tags & toc support
+	  Write tags as LIST INFO chunk. Format the toc as cue + LIST adtl chunk. Remove
+	  old #ifdef'ed code.
 
-2013-04-02 22:28:09 +0900  ted-n <ted.nakajima@gmail.com>
+2013-05-31 15:12:08 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* sys/osxaudio/gstosxaudiosrc.c:
-	  osxaudio: fix layout for osxaudiosrc
+	* gst/rtp/gstrtph264pay.c:
+	  Revert "rtph264pay: Restructuring to allow for adding optional caps"
+	  This reverts commit 61666898cfe89a1b21d3e6850ab44f5b1633ed79.
+	  This commit changes what the set_sps_pps() function does, not it doesn't
+	  set caps anymore (and should have been renamed). The main problem is that
+	  not all call sites are updated and thus leak the string.
 
-2013-03-30 22:49:34 +0900  ted-n <ted.nakajima@gmail.com>
+2013-05-31 15:11:12 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* sys/osxaudio/Makefile.am:
-	* sys/osxaudio/gstosxaudioelement.c:
-	* sys/osxaudio/gstosxaudioringbuffer.c:
-	* sys/osxaudio/gstosxaudioringbuffer.h:
-	* sys/osxaudio/gstosxaudiosink.c:
-	* sys/osxaudio/gstosxaudiosink.h:
-	* sys/osxaudio/gstosxaudiosrc.c:
-	* sys/osxaudio/gstosxaudiosrc.h:
-	* sys/osxaudio/gstosxcoreaudiocommon.c:
-	* sys/osxaudio/gstosxcoreaudiocommon.h:
-	* sys/osxaudio/gstosxringbuffer.c:
-	* sys/osxaudio/gstosxringbuffer.h:
-	  osxaudio: port to v.1.0
+	* gst/rtp/gstrtph264depay.c:
+	* gst/rtp/gstrtph264depay.h:
+	* gst/rtp/gstrtph264pay.c:
+	* tests/check/elements/rtp-payloading.c:
+	  Revert "rtph264pay/depay: Add frame dimensions a payloaded caps"
+	  This reverts commit 3dca756a5dba55266256f239e3e12a3d058e185a.
+	  The H264 RTP spec has no attributes for width and height.
 
-2013-03-10 17:17:17 +0000  Josep Torra <n770galaxy@gmail.com>
+2013-05-31 15:09:51 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* sys/osxaudio/gstosxaudioelement.c:
-	* sys/osxaudio/gstosxcoreaudiocommon.h:
-	  osxaudio: Fixes error: "GST_LEVEL_DEFAULT" redefined
+	* gst/rtp/gstrtph264depay.c:
+	* gst/rtp/gstrtph264depay.h:
+	* gst/rtp/gstrtph264pay.c:
+	  Revert "rtph264pay/depay: Add optional framerate caps for use in SDP"
+	  This reverts commit d8825e2a5c0bfb883ff88e2c9da499c800ebca0a.
+	  There is no framerate attribute in the h264 RTP spec.
 
-2013-03-10 17:27:30 +0000  Josep Torra <n770galaxy@gmail.com>
+2013-05-31 15:08:16 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* sys/osxaudio/gstosxcoreaudiohal.c:
-	  osxaudio: fixes implicit declaration of function 'getpid'
+	* gst/rtp/gstrtpjpegdepay.c:
+	* gst/rtp/gstrtpjpegpay.c:
+	  Revert "rtpjpegpay/depay: Replace framesize caps with width/height"
+	  This reverts commit 0075d111b475ca27895ee9476154260b6902940b.
+	  Extra application/x-rtp are SDP fields, which are strings.
 
-2013-03-05 21:22:18 +0100  Andoni Morales Alastruey <ylatuya@gmail.com>
+2013-05-31 15:05:51 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* configure.ac:
-	* sys/osxaudio/Makefile.am:
-	* sys/osxaudio/gstosxaudioelement.h:
-	* sys/osxaudio/gstosxaudiosink.c:
-	* sys/osxaudio/gstosxcoreaudio.c:
-	* sys/osxaudio/gstosxcoreaudioremoteio.c:
-	  osxaudio: add support for iOS using the RemoteIO AudioUnit
-	  Conflicts:
-	  sys/osxaudio/Makefile.am
+	* gst/rtp/gstrtpjpegdepay.c:
+	* gst/rtp/gstrtpjpegpay.c:
+	* tests/check/elements/rtp-payloading.c:
+	  Revert "rtpjpegpay/depay: Replace framerate caps field with fraction"
+	  This reverts commit 9fd25a810b859e0ec205176578735100d83de4af.
+	  We deal with sdp attributes in application/sdp, which are always strings.
 
-2013-03-05 21:17:52 +0100  Andoni Morales Alastruey <ylatuya@gmail.com>
+2013-05-31 12:33:21 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* sys/osxaudio/Makefile.am:
-	* sys/osxaudio/gstosxaudiosink.c:
-	* sys/osxaudio/gstosxaudiosrc.c:
-	* sys/osxaudio/gstosxcoreaudio.c:
-	* sys/osxaudio/gstosxcoreaudio.h:
-	* sys/osxaudio/gstosxcoreaudiocommon.c:
-	* sys/osxaudio/gstosxcoreaudiocommon.h:
-	* sys/osxaudio/gstosxcoreaudiohal.c:
-	* sys/osxaudio/gstosxringbuffer.c:
-	* sys/osxaudio/gstosxringbuffer.h:
-	  osxaudio: add a façade for the CoreAudio API
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: add extra TLS url protocols
+	  We also support TLS protocols now.
 
-2013-04-16 19:29:48 -0400  Olivier Crête <olivier.crete@collabora.com>
+2013-05-30 14:48:42 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
 	* gst/videomixer/videomixer2.c:
-	  videomixer: Don't unref query, we don't own it
-	  Fixes double-unref bug. Bug found by Youness Alaoui
+	  videomixer: Add FIXME comment about the DURATION query from adder
+	  Currently the code just takes with maximum upstream duration, which
+	  is wrong. It should be the maximum upstream duration in running time.
 
-2012-10-24 12:14:50 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-05-30 21:20:59 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
 
-	* configure.ac:
-	* ext/aalib/Makefile.am:
-	* ext/cairo/Makefile.am:
-	* ext/dv/Makefile.am:
-	* ext/flac/Makefile.am:
-	* ext/gdk_pixbuf/Makefile.am:
-	* ext/jack/Makefile.am:
-	* ext/jpeg/Makefile.am:
-	* ext/libcaca/Makefile.am:
-	* ext/libpng/Makefile.am:
-	* ext/mikmod/Makefile.am:
-	* ext/pulse/Makefile.am:
-	* ext/raw1394/Makefile.am:
-	* ext/shout2/Makefile.am:
-	* ext/soup/Makefile.am:
-	* ext/speex/Makefile.am:
-	* ext/taglib/Makefile.am:
-	* ext/vpx/Makefile.am:
-	* ext/wavpack/Makefile.am:
-	* gst/alpha/Makefile.am:
-	* gst/apetag/Makefile.am:
-	* gst/audiofx/Makefile.am:
-	* gst/audioparsers/Makefile.am:
-	* gst/auparse/Makefile.am:
-	* gst/autodetect/Makefile.am:
-	* gst/avi/Makefile.am:
-	* gst/cutter/Makefile.am:
-	* gst/debugutils/Makefile.am:
-	* gst/deinterlace/Makefile.am:
-	* gst/effectv/Makefile.am:
-	* gst/equalizer/Makefile.am:
-	* gst/flv/Makefile.am:
-	* gst/flx/Makefile.am:
-	* gst/goom/Makefile.am:
-	* gst/goom2k1/Makefile.am:
-	* gst/icydemux/Makefile.am:
-	* gst/id3demux/Makefile.am:
-	* gst/imagefreeze/Makefile.am:
-	* gst/interleave/Makefile.am:
-	* gst/isomp4/Makefile.am:
-	* gst/law/Makefile.am:
-	* gst/level/Makefile.am:
-	* gst/matroska/Makefile.am:
-	* gst/monoscope/Makefile.am:
-	* gst/multifile/Makefile.am:
-	* gst/multipart/Makefile.am:
-	* gst/replaygain/Makefile.am:
-	* gst/rtp/Makefile.am:
-	* gst/rtpmanager/Makefile.am:
-	* gst/rtsp/Makefile.am:
-	* gst/shapewipe/Makefile.am:
-	* gst/smpte/Makefile.am:
-	* gst/spectrum/Makefile.am:
-	* gst/udp/Makefile.am:
-	* gst/videobox/Makefile.am:
-	* gst/videocrop/Makefile.am:
-	* gst/videofilter/Makefile.am:
-	* gst/videomixer/Makefile.am:
-	* gst/wavenc/Makefile.am:
-	* gst/wavparse/Makefile.am:
-	* gst/y4m/Makefile.am:
-	* sys/directsound/Makefile.am:
-	* sys/oss/Makefile.am:
-	* sys/oss4/Makefile.am:
-	* sys/osxaudio/Makefile.am:
-	* sys/osxvideo/Makefile.am:
-	* sys/sunaudio/Makefile.am:
-	* sys/v4l2/Makefile.am:
-	* sys/waveform/Makefile.am:
-	* sys/ximage/Makefile.am:
-	  gst: Add better support for static plugins
-	  Conflicts:
-	  gst/dtmf/Makefile.am
-	  sys/osxaudio/Makefile.am
-	  sys/v4l2/Makefile.am
+	* gst/videomixer/videomixer2.c:
+	  videomixer: Set a reference to mix->current_caps as the QUERY_CAPS result.
 
-2013-03-25 10:12:03 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-05-30 17:37:13 +0200  Stefan Sauer <ensonic@users.sf.net>
 
-	* gst/debugutils/gstcapssetter.c:
-	  capssetter: Prevent unneeded caps copying and allocation
+	* gst/level/gstlevel.c:
+	  level: misc cleanups
+	  Fix some oudated comments. Sort out some confusion of interval_frames and num_frames.
 
-2013-02-01 14:33:41 +0100  Dirk Van Haerenborgh <vhdirk@gmail.com>
+2013-05-29 20:35:41 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-	* gst/debugutils/gstcapssetter.c:
-	  capssetter: Pass any or filter caps upstream
-	  capsetter accepts anything and just forwards different caps,
-	  as such it should return ANY caps on the sinkpad.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=693005
+	* sys/v4l2/v4l2_calls.c:
+	  v4l2: Only conditionally use V4L2_CTRL_TYPE_INTEGER_MENU, it's not available in older versions
 
-2013-04-14 12:32:06 +0100  Tim-Philipp Müller <tim@centricular.net>
+2013-05-20 16:45:37 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
 
-	* ext/soup/gstsouphttpsrc.c:
-	* ext/soup/gstsouphttpsrc.h:
-	  souphttpsrc: add back "iradio-mode" property to disable sending of icecast request headers
-	  In 1.0 we now always send the icecast request headers by default, which
-	  makes the server send icecasts metadata inserted into the stream if it
-	  supports that. However, there are some use cases where this is not
-	  desirable, like when just saving a radio stream to disk, so add back
-	  the "iradio-mode" property to allow people to disable this.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=697984
+	* sys/v4l2/gstv4l2object.c:
+	* sys/v4l2/gstv4l2object.h:
+	* sys/v4l2/v4l2_calls.c:
+	* sys/v4l2/v4l2_calls.h:
+	  v4l2: add a property for arbitrary v4l2 controls
+	  This makes it possible to set any controls that can be set with
+	  VIDIOC_S_CTRL.
+	  The controls are set when the property is set (if the device is open)
+	  and when the device is opened.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698837
 
-2013-04-08 17:53:09 -0700  David Schleef <ds@schleef.org>
+2013-05-28 18:31:07 +0200  Stefan Sauer <ensonic@users.sf.net>
 
-	* gst/isomp4/qtdemux.c:
-	  qtdemux: check value inside enda to set endianness
+	* gst/level/gstlevel.c:
+	  level: fix discontinuities in timestamps
 
-2013-04-08 11:38:33 +0200  Alexander Schrab <alexas@axis.com>
+2013-05-28 15:46:43 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-	* gst/wavparse/gstwavparse.c:
-	  wavparse: error out if we receive eos before any valid data
-	  https://bugzilla.gnome.org/show_bug.cgi?id=696684
+	* ext/gdk_pixbuf/gstgdkanimation.c:
+	* ext/gdk_pixbuf/gstgdkpixbufdec.c:
+	* ext/gdk_pixbuf/gstgdkpixbufdec.h:
+	  gdkpixbufdec: Keep serialized events in order, and don't send SEGMENT before CAPS
 
-2013-04-07 01:47:56 +0200  Matej Knopp <matej.knopp@gmail.com>
+2013-05-28 15:45:49 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst/deinterlace/gstdeinterlace.c:
-	  deinterlace: force deinterlacing in "interlaced" mode
-	  https://bugzilla.gnome.org/show_bug.cgi?id=697467
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: create and push stream-start in TCP mode
 
-2013-04-05 09:34:23 +0100  Todd Agulnick <todd@agulnick.com>
+2013-05-28 15:10:07 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* sys/osxvideo/osxvideosink.m:
-	  osxvideo: include pthread.h to fix compiler warning
-	  https://bugzilla.gnome.org/show_bug.cgi?id=697303
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: remove some obsolete code
+	  It is not needed to do a state change from the _play() function on
+	  ourselves. The state change function already did that and we don't want to
+	  interfere with that (or use hacks to avoid interference).
 
-2013-04-03 11:09:50 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-05-28 12:24:37 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* sys/v4l2/gstv4l2bufferpool.c:
-	  v4l2: free all queued buffers
-	  Don't just loop over the first num_queued buffers but loop over
-	  all the buffers and check if they need to be freed. It is possible that
-	  not all buffers are queued and then the entry in our array will be NULL.
-	  Those buffers that are not queued were freed in stop().
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696651
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: set RTCP caps on the RTCP pads
 
-2012-08-29 17:24:00 +0200  Arnaud Vrac <avrac@freebox.fr>
+2013-05-28 12:23:37 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst/matroska/matroska-demux.c:
-	* gst/matroska/matroska-ids.h:
-	  matroskademux: handle TrueHD audio codec id
-	  https://bugzilla.gnome.org/show_bug.cgi?id=697113
+	* gst/rtpmanager/gstrtpsession.c:
+	  rtpsession: send stream-start and segment events
+	  Also send stream-start and segment event on the RTCP pad.
+	  We don't need to send anything on the sync_src pad because we
+	  already forwarded all incomming events.
 
-2013-03-18 12:30:50 +0100  Nicola Murino <nicola.murino@gmail.com>
+2013-04-25 15:25:06 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst/isomp4/gstqtmuxmap.c:
-	  qtmux: expose mulaw caps
-	  https://bugzilla.gnome.org/show_bug.cgi?id=696052
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: add signal to handle server requests
+	  Add a signal to be notified of a server request. The signal handler can then
+	  construct the response message for the server.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=632207
 
-=== release 1.0.6 ===
+2013-05-27 22:43:25 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
 
-2013-03-22 13:41:58 +0000  Tim-Philipp Müller <tim@centricular.net>
+	* gst/videomixer/videomixer2.c:
+	  videomixer: Maintain z-order when new pad are added
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701109
 
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/inspect/plugin-1394.xml:
-	* docs/plugins/inspect/plugin-aasink.xml:
-	* docs/plugins/inspect/plugin-alaw.xml:
-	* docs/plugins/inspect/plugin-alpha.xml:
-	* docs/plugins/inspect/plugin-alphacolor.xml:
-	* docs/plugins/inspect/plugin-apetag.xml:
-	* docs/plugins/inspect/plugin-audiofx.xml:
-	* docs/plugins/inspect/plugin-audioparsers.xml:
-	* docs/plugins/inspect/plugin-auparse.xml:
-	* docs/plugins/inspect/plugin-autodetect.xml:
-	* docs/plugins/inspect/plugin-avi.xml:
-	* docs/plugins/inspect/plugin-cacasink.xml:
-	* docs/plugins/inspect/plugin-cairo.xml:
-	* docs/plugins/inspect/plugin-cutter.xml:
-	* docs/plugins/inspect/plugin-debug.xml:
-	* docs/plugins/inspect/plugin-deinterlace.xml:
-	* docs/plugins/inspect/plugin-dv.xml:
-	* docs/plugins/inspect/plugin-effectv.xml:
-	* docs/plugins/inspect/plugin-equalizer.xml:
-	* docs/plugins/inspect/plugin-flac.xml:
-	* docs/plugins/inspect/plugin-flv.xml:
-	* docs/plugins/inspect/plugin-flxdec.xml:
-	* docs/plugins/inspect/plugin-gdkpixbuf.xml:
-	* docs/plugins/inspect/plugin-goom.xml:
-	* docs/plugins/inspect/plugin-goom2k1.xml:
-	* docs/plugins/inspect/plugin-icydemux.xml:
-	* docs/plugins/inspect/plugin-id3demux.xml:
-	* docs/plugins/inspect/plugin-imagefreeze.xml:
-	* docs/plugins/inspect/plugin-interleave.xml:
-	* docs/plugins/inspect/plugin-isomp4.xml:
-	* docs/plugins/inspect/plugin-jack.xml:
-	* docs/plugins/inspect/plugin-jpeg.xml:
-	* docs/plugins/inspect/plugin-level.xml:
-	* docs/plugins/inspect/plugin-matroska.xml:
-	* docs/plugins/inspect/plugin-mulaw.xml:
-	* docs/plugins/inspect/plugin-multifile.xml:
-	* docs/plugins/inspect/plugin-multipart.xml:
-	* docs/plugins/inspect/plugin-navigationtest.xml:
-	* docs/plugins/inspect/plugin-oss4.xml:
-	* docs/plugins/inspect/plugin-ossaudio.xml:
-	* docs/plugins/inspect/plugin-png.xml:
-	* docs/plugins/inspect/plugin-pulseaudio.xml:
-	* docs/plugins/inspect/plugin-replaygain.xml:
-	* docs/plugins/inspect/plugin-rtp.xml:
-	* docs/plugins/inspect/plugin-rtpmanager.xml:
-	* docs/plugins/inspect/plugin-rtsp.xml:
-	* docs/plugins/inspect/plugin-shapewipe.xml:
-	* docs/plugins/inspect/plugin-shout2send.xml:
-	* docs/plugins/inspect/plugin-smpte.xml:
-	* docs/plugins/inspect/plugin-soup.xml:
-	* docs/plugins/inspect/plugin-spectrum.xml:
-	* docs/plugins/inspect/plugin-speex.xml:
-	* docs/plugins/inspect/plugin-taglib.xml:
-	* docs/plugins/inspect/plugin-udp.xml:
-	* docs/plugins/inspect/plugin-video4linux2.xml:
-	* docs/plugins/inspect/plugin-videobox.xml:
-	* docs/plugins/inspect/plugin-videocrop.xml:
-	* docs/plugins/inspect/plugin-videofilter.xml:
-	* docs/plugins/inspect/plugin-videomixer.xml:
-	* docs/plugins/inspect/plugin-vpx.xml:
-	* docs/plugins/inspect/plugin-wavenc.xml:
-	* docs/plugins/inspect/plugin-wavpack.xml:
-	* docs/plugins/inspect/plugin-wavparse.xml:
-	* docs/plugins/inspect/plugin-ximagesrc.xml:
-	* docs/plugins/inspect/plugin-y4menc.xml:
-	* gst-plugins-good.doap:
-	* win32/common/config.h:
-	  Release 1.0.6
+2013-03-06 13:17:54 +0000  Tom Greenwood <tcdgreenwood@hotmail.com>
 
-2012-06-22 21:56:52 +0000  Norbert Waschbuesch <nwaschbu@opentv.com>
+	* ext/vpx/gstvp8enc.c:
+	* ext/vpx/gstvp8enc.h:
+	  vp8enc: Add property to manually specify the timebase of the encoder
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695709
 
-	* ext/soup/gstsouphttpsrc.c:
-	  souphttpsrc: error out properly when receiving data along with an error status
-	  When receiving an error code from the http server, such as 404,
-	  data might be sent along with it, like a web page. We don't want
-	  to output that data in this case, and we also want to pass the
-	  FLOW_ERROR return back to the base class, so it can stop properly.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=678429
+2013-05-25 12:17:40 -0400  Thibault Saunier <thibault.saunier@collabora.com>
 
-2013-03-22 08:47:17 +0000  Rodolfo Schulz de Lima <rodolfo@rodsoft.org>
+	* gst/videomixer/videomixer2.c:
+	  videomixer: Always handle flush_stop_pending atomically
+	  It is not protected with the COLLECT_PADS_STREAM_LOCK anymore
 
-	* gst/isomp4/qtdemux.c:
-	  qtdemux: fix sample leak when processing private qt tags
-	  https://bugzilla.gnome.org/show_bug.cgi?id=696355
+2013-05-23 18:14:17 -0400  Thibault Saunier <thibault.saunier@collabora.com>
 
-2013-03-22 02:24:01 +0100  Matej Knopp <matej.knopp@gmail.com>
+	* tests/check/Makefile.am:
+	* tests/check/elements/videomixer.c:
+	  tests: videomixer: Add a testsuite for videomixer
+	  This is mostly copy pasted from -base/tests/check/elements/adder.c
 
-	* gst/isomp4/gstqtmux.c:
-	  qtmux: set stream language code from tag
-	  https://bugzilla.gnome.org/show_bug.cgi?id=696358
+2013-05-25 10:57:02 -0400  Thibault Saunier <thibault.saunier@collabora.com>
 
-2013-03-19 18:09:31 -0700  Michael Smith <msmith@rdio.com>
+	* gst/videomixer/videomixer2.c:
+	  videomixer: Do not take COLLECT_PADS_STREAM_LOCK when unnecessary
+	  Collectpad takes the lock itself when receiving serialized events
+	  and we should not take it for not serialized ones
 
-	* gst/isomp4/gstqtmux.c:
-	  mp4mux: in faststart mode, don't output up to 4 kB of garbage at the end.
+2013-05-24 19:34:05 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
-2013-03-18 14:59:35 +0000  Bastien Nocera <hadess@hadess.net>
+	* gst/flx/gstflxdec.c:
+	  flxdec: Properly skip non-frame chunks
 
-	* sys/v4l2/v4l2_calls.c:
-	  v4l2: fix compilation against newer kernel headers as on FC19
+2013-05-24 19:31:14 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
-2013-03-14 14:12:05 +0100  Kishore Arepalli <kishore.arepalli@gmail.com>
+	* gst/flx/gstflxdec.c:
+	  flxdec: Flush data from adapter after reading it
+	  Otherwise we're going in an infinite loop, reading the same data
+	  over and over again.
 
-	* gst/deinterlace/gstdeinterlace.c:
-	  deinterlace: fix infinite loop on EOS with non-default methods or fields
-	  Fixes problem of infinite loop in gst_deinterlace_reset_history.
-	  Last field in the history was never deinterlaced because idx becomes negative.
-	  Happens e.g. with method=scalerbob fields=bottom or
-	  method=greedyl fields=top
-	  https://bugzilla.gnome.org/show_bug.cgi?id=695644
-	  https://bugzilla.gnome.org/show_bug.cgi?id=693173
+2013-04-24 15:39:54 +0000  Andoni Morales Alastruey <ylatuya@gmail.com>
 
-2013-03-12 09:48:31 +0000  Kishore Arepalli <kishore.arepalli@gmail.com>
+	* gst/goom2k1/Makefile.am:
+	  goom2k1: fix more duplicated symbols
 
-	* ext/dv/gstdvdemux.c:
-	  dvdemux: don't return FALSE when dropping sink events
-	  Fixes problem in conjunction with avidemux.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=695643
+2013-05-22 02:40:52 +0200  Sebastian Rasmussen <sebrn@axis.com>
 
-2013-03-11 14:50:41 +0100  Ognyan Tonchev <ognyan@axis.com>
+	* gst/rtp/gstrtpjpegdepay.c:
+	* gst/rtp/gstrtpjpegpay.c:
+	* tests/check/elements/rtp-payloading.c:
+	  rtpjpegpay/depay: Replace framerate caps field with fraction
+	  The previous implementation had the formatting of SDP attributes happen
+	  in each RTP payloader, now instead the constituent values are propagated
+	  as caps fields. This allows for applications to do SDP offer/answer
+	  based on caps negotiation.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700748
+
+2013-05-22 01:58:57 +0200  Sebastian Rasmussen <sebrn@axis.com>
+
+	* gst/rtp/gstrtpjpegdepay.c:
+	* gst/rtp/gstrtpjpegpay.c:
+	  rtpjpegpay/depay: Replace framesize caps with width/height
+	  The previous implementation had the formatting of SDP attributes happen
+	  in each RTP payloader, now instead the constituent values are propagated
+	  as caps fields. This allows for applications to do SDP offer/answer
+	  based on caps negotiation.
+	  Keep parsing a-framerate, x-framerate and x-dimensions in rtpjpegdepay
+	  to be backwards compatible with previous payloaders.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700748
 
+2013-05-22 03:18:07 +0200  Sebastian Rasmussen <sebrn@axis.com>
+
+	* gst/rtp/gstrtph264depay.c:
+	* gst/rtp/gstrtph264depay.h:
 	* gst/rtp/gstrtph264pay.c:
-	  rtph264pay: Don't use upstream caps with peer_query_caps ()
-	  Calling gst_pad_peer_query_caps () on the src pad with the caps
-	  upstream can produce as a filter from gst_rtp_h264_pay_getcaps ()
-	  is wrong and makes caps negotiation fail if upstream caps are not
-	  NULL.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=695629
+	  rtph264pay/depay: Add optional framerate caps for use in SDP
+	  This allows for applications to format SDP attributes and still do SDP
+	  offer/answer based on caps negotiation.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700749
 
-2013-02-22 19:06:52 +0100  Arnaud Vrac <avrac@freebox.fr>
+2013-05-22 03:09:44 +0200  Sebastian Rasmussen <sebrn@axis.com>
 
-	* gst/isomp4/qtdemux.c:
-	  qtdemux: skip disabled tracks
-	  ISO/IEC 14496-12 specifies disabled tracks should be completely
-	  ignored, so just do it.
-	  Avoids deadlock during prerolling for some files.
-	  Also prevents 'chapter' subtitle tracks from showing up.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=693993
-	  https://bugzilla.gnome.org/show_bug.cgi?id=628790
+	* gst/rtp/gstrtph264depay.c:
+	* gst/rtp/gstrtph264depay.h:
+	* gst/rtp/gstrtph264pay.c:
+	* tests/check/elements/rtp-payloading.c:
+	  rtph264pay/depay: Add frame dimensions a payloaded caps
+	  This allows for applications to format SDP attributes and still do SDP
+	  offer/answer based on caps negotiation.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700749
 
-2013-02-26 14:18:20 -0500  Olivier Crête <olivier.crete@collabora.com>
+2013-05-20 22:14:44 +0200  Sebastian Rasmussen <sebrn@axis.com>
 
-	* gst/rtp/gstrtpmp4gdepay.c:
-	  rtpmp4gdepay: streamtype is not put by all RTSP server, not make it optional
-	  Specific case here is Wowza 3.5.0
+	* gst/rtp/gstrtph264pay.c:
+	  rtph264pay: Restructuring to allow for adding optional caps
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700749
 
-2013-02-25 09:58:13 +0000  Tim-Philipp Müller <tim@centricular.net>
+2013-05-23 18:42:09 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
-	* tests/check/elements/level.c:
-	  tests: re-add suppression for GValueArray warnings to unit test as well
+	* gst/udp/gstdynudpsink.c:
+	* gst/udp/gstdynudpsink.h:
+	* gst/udp/gstmultiudpsink.c:
+	* gst/udp/gstmultiudpsink.h:
+	  (dyn|multi)udpsink: Add properties to specify the bind address and port
+	  By default we use the any addresses and a random port for binding the socket.
 
-2013-02-25 00:35:18 +0100  Thomas Vander Stichele <thomas (at) apestaart (dot) org>
+2013-05-23 18:05:07 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
-	* gst/level/gstlevel.c:
-	  level: put back deprecation warnings
+	* gst/udp/gstdynudpsink.c:
+	* gst/udp/gstmultiudpsink.c:
+	  (dyn|multi)udpsink: Bind socket before using it
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700878
 
-2013-02-24 19:05:07 +0100  Thomas Vander Stichele <thomas (at) apestaart (dot) org>
+2013-05-23 17:25:29 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
-	* gst/level/gstlevel.c:
-	* tests/check/elements/level.c:
-	  level: send last message on EOS
+	* gst/udp/gstmultiudpsink.c:
+	  (multi)udpsink: Add missing getters for socket-v6 and used-socket-v6 properties
 
-2013-02-23 14:34:35 +0100  Mark Nauwelaerts <mnauw@users.sourceforge.net>
+2013-05-22 21:01:48 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
 
-	* gst/avi/gstavidemux.c:
-	  avidemux: push mode: handle some more 0-size buffer cases
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684944
+	* gst/videomixer/videomixer2.c:
+	  videomixer: Don't hold stream-lock while pushing non-serialized events
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700868
 
-2013-02-13 10:46:54 +0100  Paul HENRYS <visechelle@gmail.com>
+2013-05-22 21:00:45 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
 
-	* gst/rtpmanager/rtpsession.c:
-	  rtpsession: Fix wrong code organisation in case of collision
-	  change_ssrc field of RTPSession should be set before calling
-	  rtp_session_schedule_bye_locked () as this function will call reconsider function
-	  that will wake up rtcp_thread which will call rtp_session_on_timeout () that will
-	  check change_ssrc to change the ssrc.
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=694184
+	* gst/videomixer/videomixer2.c:
+	  videomixer: Don't hold object lock while sending events
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700868
 
-2013-02-20 15:46:43 +0100  Ognyan Tonchev <ognyan@axis.com>
+2013-05-22 17:32:33 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
-	* gst/auparse/gstauparse.c:
-	  auparse: do not leak src_caps
-	  https://bugzilla.gnome.org/show_bug.cgi?id=694275
+	* gst/deinterlace/gstdeinterlace.c:
+	  deinterlace: The return value of gst_pad_set_caps() is not relevant anymore
+	  Caps can fail to be set because the pad is not linked yet for example.
 
-2013-02-18 16:32:13 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+2013-05-15 16:39:36 -0700  David Schleef <ds@schleef.org>
 
 	* gst/isomp4/qtdemux.c:
-	  qtdemux: fix potential crash on short MOOV atom
-	  Don't unmap short MOOV atom buffer twice, which happened
-	  in the case where we don't fix up the MOOV atom.
-	  Fixes crashes when thumbnailing partial mp4 file where
-	  the MOOV atom is still incomplete.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=694010
+	  qtdemux: Add error if file has playready drm
 
-2013-02-15 16:21:21 +0100  Benjamin Gaignard <benjamin.gaignard@stericsson.com>
+2013-05-18 15:06:49 -0400  Thibault Saunier <thibault.saunier@collabora.com>
+
+	* gst/videomixer/videomixer2.c:
+	  videomixer: Send a reconfigure event upstream if sinkpad caps are not usable
+	  https://bugzilla.gnome.org/show_bug.cgi?id=684237
+
+2013-05-21 12:02:51 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
 
 	* sys/v4l2/gstv4l2bufferpool.c:
-	  v4l2: don't check stride for encoded formats
-	  Don't try to check the stride for encoded formats. Some drivers output
-	  something != 0 and then we don't want to fail on that.
+	  v4l2: keep a reference to all queued buffers
+	  Without this, a queued buffer may be required, filled and queued before it
+	  is dequeued.
+	  Calling gst_buffer_pool_acquire_buffer() ensures that the buffer is set up
+	  correctly and gst_buffer_unref() calls buffer_release().
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700781
 
-2013-02-07 22:51:45 +0000  Tim-Philipp Müller <tim@centricular.net>
+2013-05-21 13:33:59 +0200  Alexander Schrab <alexas@axis.com>
 
-	* configure.ac:
-	  build: fix build with automake 1.13
-	  AM_CONFIG_HEADER -> AC_CONFIG_HEADERS
-	  https://bugzilla.gnome.org/show_bug.cgi?id=693373
+	* gst/law/mulaw-decode.c:
+	  mulawdec: Handle NULL buffers in handle_frame
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698894
 
-2013-01-29 10:48:17 +0100  Paul HENRYS <visechelle@gmail.com>
+2013-05-20 21:44:13 +0200  Sebastian Rasmussen <sebrn@axis.com>
 
-	* gst/rtpmanager/gstrtpptdemux.c:
-	  rtpptdemux: forward sticky events and then set caps
-	  When a new src pad is added, first forward the sticky events and then
-	  set the caps on the src pad
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692786
+	* gst/rtp/gstrtpjpegdepay.c:
+	* gst/rtp/gstrtpjpegpay.c:
+	  rtpjpegpay/depay: Add framesize caps for use in SDP
+	  The format of the value adheres to RFC6064 and it is meant to be parsed
+	  and included in the SDP sent by gst-rtsp-server to its clients.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700748
 
-2013-02-07 14:32:26 +0100  Markovtsev Vadim <v.markovtsev at samsung.com>
+2013-05-20 21:34:13 +0200  Sebastian Rasmussen <sebrn@axis.com>
 
-	* gst/rtpmanager/rtpjitterbuffer.c:
-	  rtpjitterbuffer: improve debug output
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688935
+	* gst/rtp/gstrtpjpegpay.c:
+	  rtpjpegpay: Add optional framerate caps for use in SDP
+	  The format of the value adheres to RFC4566 and it is meant to be parsed
+	  and included in the SDP sent by gst-rtsp-server to its clients.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700748
 
-2013-02-07 11:40:35 +0100  Tim 'mithro' Ansell <gnome at mithis.com>
+2013-05-20 19:59:13 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
 
 	* gst/videomixer/videomixer2.c:
-	  videomixer2: avoid caps leak
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693307
+	  videomixer: When all sinkpads are eos, update output segment stop and forward it
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699793
 
-2013-02-06 13:52:26 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-05-20 19:51:07 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
 
-	* gst/rtsp/gstrtspsrc.c:
-	  rtspsrc: only EOS when our source sends BYE
-	  Only EOS when we receive a BYE event from the SSRC of our stream.
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=675453
+	* gst/videomixer/videomixer2.c:
+	  videomixer: Don't reset the output segment on flush stop
+	  Only init it when getting from READY to PAUSED, and change it on seek events.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699793
 
-2013-02-06 13:47:51 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-05-17 10:16:48 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
 
-	* gst/rtsp/gstrtspsrc.c:
-	  rtspsrc: save the stream SSRC
-	  Conflicts:
-	  gst/rtsp/gstrtspsrc.c
+	* sys/v4l2/gstv4l2object.c:
+	* sys/v4l2/gstv4l2object.h:
+	* sys/v4l2/gstv4l2sink.c:
+	* sys/v4l2/gstv4l2src.c:
+	  v4l2: Don't stop streaming when set_caps is called with unchanged caps
+	  This can happen if other parts of the pipeline are reconfigured.
+	  Stop streaming even for a short amount of time can be quite visible, so it
+	  should be avoided if possible.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700503
 
-2013-02-06 13:18:18 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-05-18 15:39:36 -0400  Thibault Saunier <thibault.saunier@collabora.com>
 
-	* gst/rtsp/gstrtspsrc.c:
-	  rtspsrc: flush connection when stopping
-	  When we stop, we can flush all pending commands so that we can stop and
-	  join the task.
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684924
+	* tests/check/pipelines/simple-launch-lines.c:
+	  tests: Re-enable videomixer test
+	  https://bugzilla.gnome.org/show_bug.cgi?id=684237
 
-2013-02-03 13:14:50 +0100  Olivier Crête <olivier.crete@collabora.com>
+2013-05-18 14:36:39 -0400  Thibault Saunier <thibault.saunier@collabora.com>
 
-	* gst/level/gstlevel.c:
-	  level: Add missing coma between formats
+	* gst/videomixer/videomixer2.c:
+	* gst/videomixer/videomixer2.h:
+	  videomixer: Send caps event from the streaming thread
+	  This way we avoid races in caps negotiation and we make sure
+	  that the caps are sent after stream-start.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=684237
 
-2013-01-31 22:55:18 +1100  Matthew Waters <ystreet00@gmail.com>
+2013-05-05 20:25:20 +0100  Thibault Saunier <thibault.saunier@collabora.com>
 
 	* gst/videomixer/videomixer2.c:
-	  videomixer: fix eos timestamp check
-	  fixes hang in videotestsrc num-buffers=20 ! videomixer ! fakesink
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692935
+	  videomixer: Do not send flush_stop when receiving a seek
+	  There is no reason to send a flush-stop when receiving a seek event.
+	  In the case of a flushing seek, we could eventually want to, but in
+	  the code path were we check if the seek is "flushing", we have the
+	  following comment that makes sense:
+	  "we can't send FLUSH_STOP here since upstream could start pushing data
+	  after we unlock mix->collect.
+	  We set flush_stop_pending to TRUE instead and send FLUSH_STOP after
+	  forwarding the seek upstream or from gst_videomixer_collected,
+	  whichever happens first."
+	  https://bugzilla.gnome.org/show_bug.cgi?id=684237
+
+2013-05-05 20:24:49 +0100  Thibault Saunier <thibault.saunier@collabora.com>
 
-2013-01-18 21:08:12 +0400  Alexey Chernov <achernov@neosphere.com>
+	* gst/videomixer/videomixer2.c:
+	  videomixer2: Protect flush_stop_pending with the collectpad stream lock
+	  And make sure to expect a flush-stop after a flush-start
+	  https://bugzilla.gnome.org/show_bug.cgi?id=684237
 
-	* sys/osxvideo/cocoawindow.h:
-	* sys/osxvideo/cocoawindow.m:
-	  osxvideosink: Make GstNavigation key input events in osxvideosink compatible with x(v)imagesink ones
+2013-05-17 12:37:59 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
 
-2013-01-27 12:54:15 +0100  Mark Nauwelaerts <mnauw@users.sourceforge.net>
+	* gst/rtp/gstrtpmp4apay.c:
+	  rtpmp4apay: clear config buffer before using it
+	  This is necessary because parts of the memory are only modified with "|="
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700514
+
+2013-05-14 17:30:07 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
 	* gst/isomp4/qtdemux.c:
-	  qtdemux: push mode: only parse moov 1 once
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691570
+	  qtdemux: Do not expect EOS after a segment event if upstream is mss
+	  In case qtdemux is handling a mss stream, do not mark the stream to wait
+	  for EOS after a segment. Even if it seems to be the last one according to
+	  the current streams information.
+	  MSS handling is different here because there is another demuxer driving
+	  the pipeline
 
-2013-01-23 21:35:25 -0500  Olivier Crête <olivier.crete@collabora.com>
+2013-05-14 16:32:51 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
-	* sys/ximage/gstximagesrc.c:
-	* sys/ximage/ximageutil.c:
-	* sys/ximage/ximageutil.h:
-	  ximagesrc: Set the pixel aspect ratio correctly in the caps
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: only set channels and rate if qtdemux knows it
+	  Setting both of those to 0 is pointless and means that qtdemux
+	  doesn't know the real value. Avoid setting it in this case.
 
-2013-01-22 18:12:10 +0100  Benjamin Gaignard <benjamin.gaignard@st.com>
+2013-05-14 15:23:08 +0200  Arnaud Vrac <avrac@freebox.fr>
 
-	* autogen.sh:
-	  autogen.sh: allow calling from out-of-tree
-	  Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com>
-	  https://bugzilla.gnome.org/show_bug.cgi?id=692309
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: set alac caps using info from codec buffer
+	  The samplerate field in the STSD atom is not right for some ALAC files
+	  (usually when audio is 96kHz/24bits), so the audio caps must be
+	  extracted from the codec data.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700382
 
-2013-01-19 13:27:48 +0000  Tim-Philipp Müller <tim@centricular.net>
+2013-05-15 11:13:12 +0200  Arnaud Vrac <avrac@freebox.fr>
 
-	* ext/pulse/pulsesink.c:
-	  pulsesink: don't error out if pa_stream_proplist_update() with new tags fails
-	  Shouldn't really happen these days, but if it does, it's not really
-	  a problem either.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=656068
+	* gst/avi/gstavidemux.c:
+	  avidemux: do not push discont buffers if they aren't discont
+	  https://bugzilla.gnome.org/show_bug.cgi?id=682110
 
-2013-01-11 19:24:43 +0400  Alexey Chernov <achernov@neosphere.com>
+2013-05-15 10:51:38 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-	* sys/osxvideo/cocoawindow.m:
-	* sys/osxvideo/osxvideosink.m:
-	  osxvideosink: Fix crash in osxvideosink with external window output
+	* common:
+	  Automatic update of common submodule
+	  From 5edcd85 to 098c0d7
 
-2013-01-16 12:04:59 +0400  Alexey Chernov <achernov@neosphere.com>
+2013-05-14 10:28:10 -0400  Joshua M. Doe <oss@nvl.army.mil>
 
-	* sys/osxvideo/cocoawindow.m:
-	  osxvideosink: Make GstGLView propagate input events to its parent view
-	  Fixes bug #691832
+	* gst/videocrop/gstaspectratiocrop.c:
+	* gst/videocrop/gstvideocrop.c:
+	  videocrop: Add support for GRAY16_LE/GRAY16_BE
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700331
 
-=== release 1.0.5 ===
+2013-05-14 17:29:58 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-2013-01-08 01:19:07 +0000  Tim-Philipp Müller <tim@centricular.net>
+	* gst/replaygain/gstrgvolume.c:
+	  rgvolume: Send all events through the proxypads instead of just sending to the target
+	  Otherwise the sticky events are missing on the proxypads.
 
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/inspect/plugin-1394.xml:
-	* docs/plugins/inspect/plugin-aasink.xml:
-	* docs/plugins/inspect/plugin-alaw.xml:
-	* docs/plugins/inspect/plugin-alpha.xml:
-	* docs/plugins/inspect/plugin-alphacolor.xml:
-	* docs/plugins/inspect/plugin-apetag.xml:
-	* docs/plugins/inspect/plugin-audiofx.xml:
-	* docs/plugins/inspect/plugin-audioparsers.xml:
-	* docs/plugins/inspect/plugin-auparse.xml:
-	* docs/plugins/inspect/plugin-autodetect.xml:
-	* docs/plugins/inspect/plugin-avi.xml:
-	* docs/plugins/inspect/plugin-cacasink.xml:
-	* docs/plugins/inspect/plugin-cairo.xml:
-	* docs/plugins/inspect/plugin-cutter.xml:
-	* docs/plugins/inspect/plugin-debug.xml:
-	* docs/plugins/inspect/plugin-deinterlace.xml:
-	* docs/plugins/inspect/plugin-dv.xml:
-	* docs/plugins/inspect/plugin-effectv.xml:
-	* docs/plugins/inspect/plugin-equalizer.xml:
-	* docs/plugins/inspect/plugin-flac.xml:
-	* docs/plugins/inspect/plugin-flv.xml:
-	* docs/plugins/inspect/plugin-flxdec.xml:
-	* docs/plugins/inspect/plugin-gdkpixbuf.xml:
-	* docs/plugins/inspect/plugin-goom.xml:
-	* docs/plugins/inspect/plugin-goom2k1.xml:
-	* docs/plugins/inspect/plugin-icydemux.xml:
-	* docs/plugins/inspect/plugin-id3demux.xml:
-	* docs/plugins/inspect/plugin-imagefreeze.xml:
-	* docs/plugins/inspect/plugin-interleave.xml:
-	* docs/plugins/inspect/plugin-isomp4.xml:
-	* docs/plugins/inspect/plugin-jack.xml:
-	* docs/plugins/inspect/plugin-jpeg.xml:
-	* docs/plugins/inspect/plugin-level.xml:
-	* docs/plugins/inspect/plugin-matroska.xml:
-	* docs/plugins/inspect/plugin-mulaw.xml:
-	* docs/plugins/inspect/plugin-multifile.xml:
-	* docs/plugins/inspect/plugin-multipart.xml:
-	* docs/plugins/inspect/plugin-navigationtest.xml:
-	* docs/plugins/inspect/plugin-oss4.xml:
-	* docs/plugins/inspect/plugin-ossaudio.xml:
-	* docs/plugins/inspect/plugin-png.xml:
-	* docs/plugins/inspect/plugin-pulseaudio.xml:
-	* docs/plugins/inspect/plugin-replaygain.xml:
-	* docs/plugins/inspect/plugin-rtp.xml:
-	* docs/plugins/inspect/plugin-rtpmanager.xml:
-	* docs/plugins/inspect/plugin-rtsp.xml:
-	* docs/plugins/inspect/plugin-shapewipe.xml:
-	* docs/plugins/inspect/plugin-shout2send.xml:
-	* docs/plugins/inspect/plugin-smpte.xml:
-	* docs/plugins/inspect/plugin-soup.xml:
-	* docs/plugins/inspect/plugin-spectrum.xml:
-	* docs/plugins/inspect/plugin-speex.xml:
-	* docs/plugins/inspect/plugin-taglib.xml:
-	* docs/plugins/inspect/plugin-udp.xml:
-	* docs/plugins/inspect/plugin-video4linux2.xml:
-	* docs/plugins/inspect/plugin-videobox.xml:
-	* docs/plugins/inspect/plugin-videocrop.xml:
-	* docs/plugins/inspect/plugin-videofilter.xml:
-	* docs/plugins/inspect/plugin-videomixer.xml:
-	* docs/plugins/inspect/plugin-vpx.xml:
-	* docs/plugins/inspect/plugin-wavenc.xml:
-	* docs/plugins/inspect/plugin-wavpack.xml:
-	* docs/plugins/inspect/plugin-wavparse.xml:
-	* docs/plugins/inspect/plugin-ximagesrc.xml:
-	* docs/plugins/inspect/plugin-y4menc.xml:
-	* gst-plugins-good.doap:
-	* po/ja.po:
-	* po/nb.po:
-	* po/sl.po:
-	* win32/common/config.h:
-	  Release 1.0.5
+2013-05-14 17:29:18 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-2013-01-04 13:53:45 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+	* tests/check/elements/rgvolume.c:
+	  rgvolume: Fix event handling in the unit test
 
-	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
-	* docs/plugins/gst-plugins-good-plugins-sections.txt:
-	  docs: add gdkpixbufoverlay element to docs
+2013-05-14 16:34:54 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-2013-01-01 12:19:23 +0000  Tim-Philipp Müller <tim@centricular.net>
+	* tests/check/elements/rglimiter.c:
+	  rglimiter: Fix event handling in unit tests
 
-	* docs/plugins/Makefile.am:
-	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
-	* docs/plugins/gst-plugins-good-plugins-sections.txt:
-	* docs/plugins/gst-plugins-good-plugins.hierarchy:
-	* docs/plugins/inspect/plugin-cairo.xml:
-	  docs: fix docs build and update after removal of old cairo elements
+2013-05-14 16:31:57 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-2013-01-01 11:52:09 +0000  Tim-Philipp Müller <tim@centricular.net>
+	* tests/check/elements/rganalysis.c:
+	  rganalysis: Fix event handling in unit test
 
-	* configure.ac:
-	* ext/cairo/.gitignore:
-	* ext/cairo/Makefile.am:
-	* ext/cairo/gstcairo-marshal.list:
-	* ext/cairo/gstcairo.c:
-	* ext/cairo/gstcairooverlay.c:
-	* ext/cairo/gstcairooverlay.h:
-	* tests/examples/Makefile.am:
-	* tests/examples/cairo/Makefile.am:
-	* tests/examples/cairo/cairo_overlay.c:
-	  cairo: port cairooverlay to 0.11
-	  The other elements are not that interesting now that we're
-	  using pangocairo in the pango plugin, and should probably
-	  just be removed.
+2013-05-14 16:08:54 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-2012-12-31 18:59:18 +0000  Tim-Philipp Müller <tim@centricular.net>
+	* tests/check/elements/qtmux.c:
+	  qtmux: Fix event handling in unit test
 
-	* tests/examples/rtp/server-decodebin-H263p-AMR.sh:
-	  examples: check for uri argument in decodebin-h264p-amr server example
-	  Otherwise people get a rather confusing error message.
+2013-05-14 16:00:58 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-2013-01-04 10:03:32 +0100  Robert Krakora <rob.krakora@messagenetsystems.com>
+	* tests/check/elements/multifile.c:
+	  multifile: Fix event handling in unit test
 
-	* sys/v4l2/v4l2_calls.c:
-	  v4l2: Also handle the new ENOENT return value of VIDIOC_QUERYCTRL
-	  https://bugzilla.gnome.org/show_bug.cgi?id=691098
+2013-05-14 13:58:01 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-2012-10-25 12:18:03 -0700  Michael Smith <msmith@rdio.com>
+	* tests/check/elements/mulawdec.c:
+	* tests/check/elements/mulawenc.c:
+	  mulaw: Fix event handling in unit test
 
-	* gst/isomp4/qtdemux.c:
-	* gst/isomp4/qtdemux_fourcc.h:
-	  qtdemux: read video format header fully (so we can find 'pasp' atoms) for more fourccs. Fixes aspect ratio of prores files.
+2013-05-14 13:52:18 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-2012-12-17 15:17:12 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+	* gst/matroska/matroska-parse.c:
+	  matroskaparse: Make sure to send a segment event before dataflow
 
-	* gst/audioparsers/gstaacparse.c:
-	* gst/audioparsers/gstac3parse.c:
-	* gst/audioparsers/gstamrparse.c:
-	* gst/audioparsers/gstdcaparse.c:
-	* gst/audioparsers/gstflacparse.c:
-	* gst/audioparsers/gstmpegaudioparse.c:
-	* gst/audioparsers/gstwavpackparse.c:
-	  audioparsers: Make sure the caps are actually writable before changing them
+2013-05-14 10:52:19 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
 
-2012-12-17 15:01:02 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2: only add interlace-mode to the caps for raw formats
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700280
 
-	* gst/audioparsers/gstaacparse.c:
-	* gst/audioparsers/gstac3parse.c:
-	* gst/audioparsers/gstamrparse.c:
-	* gst/audioparsers/gstdcaparse.c:
-	* gst/audioparsers/gstflacparse.c:
-	* gst/audioparsers/gstmpegaudioparse.c:
-	* gst/audioparsers/gstwavpackparse.c:
-	  audioparsers: Use the peer caps for restrictions instead of the srcpad allowed caps
-	  Otherwise we will intersect with the srcpad template caps and add all the caps fields
-	  that the parser will ever set, no matter if downstream restricts this field or not.
-	  This requires upstream to set this field on the caps to successfully negotiate.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=690184
+2013-05-14 12:03:03 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
 
-2012-12-20 17:12:30 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2: copy and set the actual size of the content
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700282
+
+2013-05-14 10:25:56 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/interleave.c:
+	  interleave: Fix event handling in unit test
+
+2013-05-14 09:45:12 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/deinterlace/gstdeinterlace.c:
+	  deinterlace: Improve handling of min/max buffer numbers of the buffer pool
+
+2013-05-14 03:42:59 +0200  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/deinterlace/gstdeinterlace.c:
+	  deinterlace: set caps for buffer pool config
+
+2013-05-13 13:30:38 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/multifile/gstmultifilesink.c:
+	  multifilesink: Let the base class do get_times
+	  This will make sync=TRUE work, the default is still sync=FALSE
+
+2013-05-11 23:08:23 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* gst/interleave/interleave.c:
+	  interleave: Send stream-start before caps event
+
+2013-05-11 23:24:36 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	* tests/check/elements/rtpmux.c:
+	  rtpmux: Send stream-start before caps
+
+2013-05-11 23:28:12 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* tests/check/elements/rtpjitterbuffer.c:
+	  rtpjitterbuffer-test: Send stream-start before caps followed by segment
+
+2013-05-11 23:34:36 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* tests/check/elements/rtpbin.c:
+	  rtpbin-test: Send missing stream-start and segment events
+
+2013-05-13 15:36:19 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/level.c:
+	* tests/check/elements/matroskamux.c:
+	  tests: Fix some more event handling in tests
+
+2013-05-13 15:19:36 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/icydemux.c:
+	  icydemux: Fix event handling in unit test
+
+2013-05-13 15:19:25 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/icydemux/gsticydemux.c:
+	  icydemux: Fix sticky event handling
+
+2013-05-13 15:06:03 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/flv/gstflvmux.c:
+	  flvmux: Push sticky events in the right order
+
+2013-05-13 14:55:14 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/deinterleave.c:
+	  deinterleave: Fix event handling in test
+
+2013-05-13 14:07:11 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/interleave/deinterleave.c:
+	  deinterleave: Fix sticky event handling
+
+2013-05-13 13:55:44 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/interleave/deinterleave.c:
+	  deinterleave: Code style fixes
+
+2013-05-13 10:43:32 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/rtp/gstrtpgstpay.c:
+	  rtpgstpay: First let baseclass handle events, then put them into the stream
+	  Fixes handling of sticky events.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700213
+
+2013-05-09 22:05:24 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* tests/check/elements/shapewipe.c:
+	  shapewipe-test: Send inital events
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700033
+
+2013-05-09 18:32:23 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* tests/check/elements/spectrum.c:
+	  spectrum-test: Send inital events
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700033
+
+2013-05-09 18:25:17 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* tests/check/elements/videofilter.c:
+	  videofilter-test: Send inital events
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700033
+
+2013-05-09 18:23:30 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* tests/check/elements/wavpackparse.c:
+	  wavpackparse-test: Send inital events
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700033
+
+2013-05-09 18:21:54 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* tests/check/elements/y4menc.c:
+	  y4menc-test: Send inital events
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700033
+
+2013-05-10 14:00:33 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/multipart/multipartdemux.c:
+	  multipartdemux: fix example pipeline
+	  Need jpegparse.
+
+2013-05-10 13:34:16 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/alphacolor.c:
+	* tests/check/elements/aspectratiocrop.c:
+	* tests/check/elements/audioamplify.c:
+	* tests/check/elements/audiochebband.c:
+	* tests/check/elements/audiocheblimit.c:
+	* tests/check/elements/audiodynamic.c:
+	* tests/check/elements/audioecho.c:
+	* tests/check/elements/audioinvert.c:
+	* tests/check/elements/audiopanorama.c:
+	* tests/check/elements/audiowsincband.c:
+	* tests/check/elements/audiowsinclimit.c:
+	* tests/check/elements/avimux.c:
+	* tests/check/elements/avisubtitle.c:
+	* tests/check/elements/capssetter.c:
+	* tests/check/elements/deinterlace.c:
+	* tests/check/elements/dtmf.c:
+	* tests/check/elements/equalizer.c:
+	  tests: Fix some more unit tests
+
+2013-05-10 13:10:29 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/parser.c:
+	  tests: Fix parser tests
+
+2013-05-09 22:20:28 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* gst/shapewipe/gstshapewipe.c:
+	  shapewipe: Can't map twice the same buffer for writing
+	  I took the opportunity to simplify that code a bit. We now use
+	  gst_buffer_make_writable() to make the buffer writable and map twice the
+	  same buffer, with first map being read/write, and second read only. This
+	  get rid of the critical:
+	  GStreamer-CRITICAL **: gst_structure_set_name: assertion `IS_MUTABLE
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700044
+
+2013-05-09 22:15:54 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* gst/shapewipe/gstshapewipe.c:
+	  shapewipe: Ensure caps are writable
+	  The exist one case where that we endup with original caps in ret, in which
+	  case we are not guaratied to have writable caps. Simply ensure this is the
+	  caps are writable before entering the loop.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700044
+
+2013-05-09 22:13:51 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* gst/shapewipe/gstshapewipe.c:
+	  shapewipe: Fix sample pipeline in documentation
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700044
+
+2013-05-09 18:05:02 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* tests/check/elements/jpegenc.c:
+	  jpegenc-test: Send inital events
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700033
+
+2013-05-09 17:49:03 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* tests/check/elements/vp8enc.c:
+	  vp8enc-test: Send inital events
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700033
+
+2013-05-09 17:20:18 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* tests/check/elements/vp8dec.c:
+	  vp8dec-test: Send inital events
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700033
+
+2013-05-09 17:19:53 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* tests/check/elements/wavpackdec.c:
+	  wavpackdec-test: Send initial events
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700033
+
+2013-05-09 16:26:19 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/videomixer/videomixer2.c:
+	  Revert "videomixer2: Take into account new segments"
+	  This reverts commit 84ae670ab40b258a10e1e21471e6dc9d786bf086.
+	  Actually this is not how it is supposed to work. videomixer
+	  creates a [0,-1] segment and then puts frames of the different
+	  streams there based on their running times in their own segments.
+
+2013-05-06 23:43:03 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
+
+	* gst/videomixer/videomixer2.c:
+	  videomixer2: Take into account new segments
+	  Also forward the event downstream on the next opportunity.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699793
+
+2013-05-09 09:07:38 +0100  Tim-Philipp Müller <tim@centricular.net>
 
 	* gst/rtsp/gstrtspsrc.c:
-	  rtspsrc: fix cmd comparison
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=690476
+	  Revert "gstrtspsrc: set buffer-size for multicast buffers"
+	  This reverts commit 2481e95d038b42297a016f1d2dc1af26d2175b42.
+	  This is already done five lines above, it was added a year
+	  ago in commit 561b131e.
 
-2012-12-20 17:12:20 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-05-08 19:54:19 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* tests/check/elements/videofilter.c:
+	  videofilter: Unit test send SEGMENT before CAPS
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699966
+
+2013-05-08 19:22:31 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* tests/check/elements/avimux.c:
+	  avimux: Unit test sends SEGMENT before caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699966
+
+2013-05-08 19:08:24 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* tests/check/elements/audiowsincband.c:
+	  audiowsincband: Test should send segment after CAPS
+	  This makes the unit test pass again.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699966
+
+2013-05-08 19:00:28 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* tests/check/elements/audiowsinclimit.c:
+	  audiowsinclimit: Test should send segment after CAPS
+	  This makes the unit test pass again.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699966
+
+2013-05-08 18:44:32 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* gst/audiofx/audiowsinclimit.c:
+	  audiowsinclimit: Frequence property renamed cutoff
+	  Updating the documentation to reflect this change.
+	  See: https://bugzilla.gnome.org/show_bug.cgi?id=699964
+
+2013-05-08 15:25:58 -0300  Aha Unsworth <aha.unsworth@gmail.com>
 
 	* gst/rtsp/gstrtspsrc.c:
-	  rtspsrc: add some more debug
+	  gstrtspsrc: set buffer-size for multicast buffers
+	  For receiving video data via RTSP when the video is sent via
+	  multicast there is no way to specify the udpsrc buffer-size.
+	  On windows the native network buffer is not large and with video
+	  i-frames being huge the buffer is to small and you get i-frame corruption,
+	  it looks terrible, and there is no (easy) way to set the udpsrc buffer-size.
+	  https://bugs.freedesktop.org/show_bug.cgi?id=52264
 
-2012-12-20 15:55:02 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-05-08 16:02:05 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-	* ext/jpeg/gstjpegenc.c:
-	* ext/jpeg/gstjpegenc.h:
-	  jpegenc: pass flowreturn upstream
+	* gst/videomixer/videomixer2.c:
+	  videomixer2: Send stream-start before caps event
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699895
 
-=== release 1.0.4 ===
+2013-05-07 19:15:49 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
-2012-12-18 19:11:37 +0000  Tim-Philipp Müller <tim@centricular.net>
+	* ext/jpeg/gstjpegdec.c:
+	  jpegdec: fix compiler warning on type check
 
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/inspect/plugin-1394.xml:
-	* docs/plugins/inspect/plugin-aasink.xml:
-	* docs/plugins/inspect/plugin-alaw.xml:
-	* docs/plugins/inspect/plugin-alpha.xml:
-	* docs/plugins/inspect/plugin-alphacolor.xml:
-	* docs/plugins/inspect/plugin-apetag.xml:
-	* docs/plugins/inspect/plugin-audiofx.xml:
-	* docs/plugins/inspect/plugin-audioparsers.xml:
-	* docs/plugins/inspect/plugin-auparse.xml:
-	* docs/plugins/inspect/plugin-autodetect.xml:
-	* docs/plugins/inspect/plugin-avi.xml:
-	* docs/plugins/inspect/plugin-cacasink.xml:
-	* docs/plugins/inspect/plugin-cutter.xml:
-	* docs/plugins/inspect/plugin-debug.xml:
-	* docs/plugins/inspect/plugin-deinterlace.xml:
-	* docs/plugins/inspect/plugin-dv.xml:
-	* docs/plugins/inspect/plugin-effectv.xml:
-	* docs/plugins/inspect/plugin-equalizer.xml:
-	* docs/plugins/inspect/plugin-flac.xml:
-	* docs/plugins/inspect/plugin-flv.xml:
-	* docs/plugins/inspect/plugin-flxdec.xml:
-	* docs/plugins/inspect/plugin-gdkpixbuf.xml:
-	* docs/plugins/inspect/plugin-goom.xml:
-	* docs/plugins/inspect/plugin-goom2k1.xml:
-	* docs/plugins/inspect/plugin-icydemux.xml:
-	* docs/plugins/inspect/plugin-id3demux.xml:
-	* docs/plugins/inspect/plugin-imagefreeze.xml:
-	* docs/plugins/inspect/plugin-interleave.xml:
-	* docs/plugins/inspect/plugin-isomp4.xml:
-	* docs/plugins/inspect/plugin-jack.xml:
-	* docs/plugins/inspect/plugin-jpeg.xml:
-	* docs/plugins/inspect/plugin-level.xml:
-	* docs/plugins/inspect/plugin-matroska.xml:
-	* docs/plugins/inspect/plugin-mulaw.xml:
-	* docs/plugins/inspect/plugin-multifile.xml:
-	* docs/plugins/inspect/plugin-multipart.xml:
-	* docs/plugins/inspect/plugin-navigationtest.xml:
-	* docs/plugins/inspect/plugin-oss4.xml:
-	* docs/plugins/inspect/plugin-ossaudio.xml:
-	* docs/plugins/inspect/plugin-png.xml:
-	* docs/plugins/inspect/plugin-pulseaudio.xml:
-	* docs/plugins/inspect/plugin-replaygain.xml:
-	* docs/plugins/inspect/plugin-rtp.xml:
-	* docs/plugins/inspect/plugin-rtpmanager.xml:
-	* docs/plugins/inspect/plugin-rtsp.xml:
-	* docs/plugins/inspect/plugin-shapewipe.xml:
-	* docs/plugins/inspect/plugin-shout2send.xml:
-	* docs/plugins/inspect/plugin-smpte.xml:
-	* docs/plugins/inspect/plugin-soup.xml:
-	* docs/plugins/inspect/plugin-spectrum.xml:
-	* docs/plugins/inspect/plugin-speex.xml:
-	* docs/plugins/inspect/plugin-taglib.xml:
-	* docs/plugins/inspect/plugin-udp.xml:
-	* docs/plugins/inspect/plugin-video4linux2.xml:
-	* docs/plugins/inspect/plugin-videobox.xml:
-	* docs/plugins/inspect/plugin-videocrop.xml:
-	* docs/plugins/inspect/plugin-videofilter.xml:
-	* docs/plugins/inspect/plugin-videomixer.xml:
-	* docs/plugins/inspect/plugin-vpx.xml:
-	* docs/plugins/inspect/plugin-wavenc.xml:
-	* docs/plugins/inspect/plugin-wavpack.xml:
-	* docs/plugins/inspect/plugin-wavparse.xml:
-	* docs/plugins/inspect/plugin-ximagesrc.xml:
-	* docs/plugins/inspect/plugin-y4menc.xml:
-	* gst-plugins-good.doap:
-	* win32/common/config.h:
-	  Release 1.0.4
+2013-04-18 07:49:54 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
-2012-12-18 18:53:14 +0000  Tim-Philipp Müller <tim@centricular.net>
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: push new caps events when caps change
+	  Whenever the demuxer has a new caps on a stream, it should set the
+	  new_caps variable to true and a new caps event will be pushed before
+	  the next buffer
 
-	* po/LINGUAS:
-	* po/da.po:
-	* po/de.po:
-	* po/el.po:
-	* po/gl.po:
-	* po/hr.po:
-	* po/hu.po:
-	* po/nb.po:
-	* po/nl.po:
-	* po/pl.po:
-	* po/ru.po:
-	* po/tr.po:
-	* po/uk.po:
-	* po/vi.po:
-	* po/zh_CN.po:
-	  po: update translations
+2013-04-17 16:54:22 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
-2012-12-18 15:56:59 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: do not push discont buffers if they aren't discont
+	  qtdemux takes its buffers from a GstAdapter. Those buffers are created
+	  from the larger buffer that it obtained from upstream and they carry
+	  the same flags, including DISCONT if it is set. In these cases, all
+	  buffers that qtdemux is going to push would be marked as DISCONT.
+	  This scenario can make parsers/decoders flush on every buffer leading
+	  to no decoding at all hapenning. This patch prevents this by unsetting
+	  the flag if it shouldn't be set.
 
-	* ext/wavpack/gstwavpackenc.c:
-	  wavpack: use appropriate printf format for gsize
+2013-04-12 09:08:16 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
-2012-12-18 15:55:43 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+	* gst/isomp4/qtdemux.c:
+	* gst/isomp4/qtdemux.h:
+	  qtdemux: some code cleanup for mss handling code
+	  * Explicitly init variables for fragmented formats at init
+	  * Do not use GstClockTime type if the variable isn't a timestamp
+	  * Fix a style/readability issue at an if block
+	  * Group 2 mss mode conditional blocks together to improve readability
+	  Conflicts:
+	  gst/isomp4/qtdemux.c
 
-	* ext/taglib/gstid3v2mux.cc:
-	  taglib: use appropriate printf format for gsize
+2013-04-12 10:21:11 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
-2012-12-18 15:54:08 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: avoid storing non-time newsegments to push later
+	  This can confuse downstream when they get a byte segment after receiving
+	  the natural time segment from qtdemux that it sends when starting to
+	  push buffers. This is specially the case with parsers that try to
+	  convert the position from byte to time format and might miss the
+	  correct position for playback to start.
 
-	* ext/gdk_pixbuf/gstgdkpixbufdec.c:
-	  gdkpixbuf: use appropriate printf format for gsize
+2013-04-10 18:02:28 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
-2012-12-18 15:46:56 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: avoid setting fields to non-writable caps
 
-	* gst/deinterlace/gstdeinterlace.c:
-	  deinterlace: use appropriate printf format for gsize
+2013-03-10 04:15:06 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2012-12-17 16:35:56 +0100  Philippe Normand <philn@igalia.com>
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: don't send so many segment events
+	  Only send one segment event in the beginning of the stream, not
+	  after each moov and moof atom.
+	  Conflicts:
+	  gst/isomp4/qtdemux.c
 
-	* gst/interleave/interleave.c:
-	* gst/interleave/interleave.h:
-	  interleave: set src pad caps upon last sink pad CAPS event
-	  Gather caps on all sink pads before setting the src pad caps. This is
-	  specially needed when the audio channel mapping is set on the sink
-	  pads and the element needs to preserve it on its src pad.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=690267
+2013-03-08 16:02:26 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2012-12-14 22:25:08 +0000  Koop Mast <kwm@rainbow-runner.nl>
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: place incomming timestamps on output
+	  Place the incomming timestamp (if any) directly onto the outgoing buffers
+	  and interpollate other timestamps.
+	  Conflicts:
+	  gst/isomp4/qtdemux.c
 
-	* configure.ac:
-	* sys/v4l2/gstv4l2object.h:
-	  v4l2: Teach where the videodev2.h header lives on freebsd.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=690233
+2013-05-07 10:16:18 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
-2012-12-13 09:27:14 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: improve reset of internal status
+	  Reset different variables on state changes to ready and when
+	  handling a flush-stop. For handling flush stops we should check
+	  if there is an upstream adaptive demuxer driving the pipeline as this
+	  means that qtdemux will get a new moov atom. For 'standard' isomedia
+	  streams this isn't true and qtdemux should keep the previous moov
+	  information around.
+	  Conflicts:
+	  gst/isomp4/qtdemux.c
 
-	* gst/rtsp/gstrtspsrc.c:
-	  rtspsrc: fix TCP reconnect
-	  Ignore other commands when reconnecting, otherwise the loop function would pause
-	  and the reconnection would not happen. Continue looping after doing a reconnect
-	  so that we have a chance to actually read the new data.
+2013-02-08 00:29:20 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
-2012-12-12 12:07:34 +0100  Philippe Normand <philn@igalia.com>
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: prepare qtdemux to accept multiple dash moovs in a row
+	  Whenever dashdemux switches bitrates it sends a new moov with the
+	  new stream configuration. qtdemux should now handle this by splitting
+	  the exposing and configuration of streams into separate functions. When
+	  the stream is new it is configured and exposed, when it is a new bitrate
+	  of an existing stream it is only reconfigured.
+	  Conflicts:
+	  gst/isomp4/qtdemux.c
 
-	* gst/interleave/deinterleave.c:
-	  deinterleave: properly set srcpad channel position
-	  The src pad caps always describe a single audio channel so only the
-	  first position matters if deinterleave is configured to keep channel
-	  positions in its src pads.
+2013-02-07 14:12:53 -0200  Andre Moreira Magalhaes (andrunko) <andre.magalhaes@collabora.co.uk>
 
-2012-12-10 11:44:26 +0000  Alexey Chernov <4ernov@gmail.com>
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Move FLUSH_STOP/PAUSED_TO_READY handling to a reset method.
+	  Conflicts:
+	  gst/isomp4/qtdemux.c
+
+2013-01-23 10:55:33 -0500  Louis-Francis Ratté-Boulianne <louis-francis.ratte-boulianne@collabora.co.uk>
+
+	* gst/isomp4/qtdemux.c:
+	* gst/isomp4/qtdemux.h:
+	  qtdemux: Remove old pads when exposing streams and other general fixes.
+	  Conflicts:
+	  gst/isomp4/qtdemux.c
+
+2013-04-16 10:41:43 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* gst/isomp4/qtdemux.c:
+	* gst/isomp4/qtdemux.h:
+	  qtdemux: handle mss streams
+	  smoothstreaming streams should be handled as a special kind of
+	  fragmented isomedia. In MSS the fragments will not contain a
+	  'moov' atom with the media descriptions, this has to be extracted
+	  from the caps.
+	  Additionally, there should be another demuxer upstream that is likely
+	  going to be the one to answer/act on queries and events, so qtdemux has
+	  to forward those upstream.
+
+2013-05-06 16:54:02 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* sys/v4l2/gstv4l2bufferpool.c:
+	  v4l2: request 0 buffers when stopping
+	  Without this stopping the pool in *_set_caps() is useless.
+	  S_FMT will still fail with EBUSY.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699835
+
+2013-05-07 16:32:03 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/jpeg/gstjpegdec.c:
+	  jpegdec: By default assume that we're working on non-packetized input
+	  Only detecting this in set_format() does not work because we might
+	  not get any caps at all, e.g. from filesrc.
+
+2013-05-07 16:30:59 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/libpng/gstpngdec.c:
+	  pngdec: Implement parsing functionality
+	  This allows to plug pngdec directly without a parser if that
+	  is desired.
+	  Parsing code is based on pngparse.
+
+2013-05-07 15:54:24 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
+	* ext/libcaca/gstcacasink.c:
+	  cacasink: Fix support for RGB formats and add support for more of them
+
+2013-05-04 13:19:53 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/soup/gstsouphttpsrc.c:
+	  souphttpsrc: Don't consider the content size from the HTTP headers as absolutely correct
+	  The HTTP server could give wrong information, e.g. if the HTTP stream is
+	  chunk-encoded or compressed, or if the server does not know the complete size
+	  at the time when the file is requested by the client.
+	  Also see
+	  https://bugs.webkit.org/show_bug.cgi?id=115354
+
+2012-08-20 09:52:32 +0200  Philipp Zabel <p.zabel@pengutronix.de>
+
+	* sys/v4l2/gstv4l2bufferpool.c:
+	  v4l2: fill out v4l2_buffer.bytesused field for v4l2sink
+	  When queuing a buffer for a sink, bytesused must contain the actual
+	  amount of data.
+	  For a source, the driver must overwrite this, so it doesn't matter
+	  what is set here.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699598
+
+2013-05-03 23:43:26 +0200  Sebastian Rasmussen <sebras@gmail.com>
+
+	* gst/rtp/gstrtpgstpay.c:
+	  rtpgstpay: fix invalid memory access in event handler
+	  First process event in payloader, then hand it to the
+	  base class which takes ownership of the event.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699637
+
+2013-05-04 09:48:02 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/audioparsers/gstac3parse.c:
+	* gst/audioparsers/gstdcaparse.c:
+	  ac3parse, dcaparse: check buffer size before trimming
+	  and unref old buffer as soon as possible.
+
+2013-05-02 15:00:22 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>
+
+	* gst/audioparsers/gstdcaparse.c:
+	* gst/audioparsers/gstdcaparse.h:
+	  dcaparse: add support for "audio/x-private1-dts"
+
+2013-05-02 14:56:02 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>
+
+	* gst/audioparsers/gstac3parse.c:
+	* gst/audioparsers/gstac3parse.h:
+	  ac3parse: add support for "audio/x-private1-ac3"
+
+2013-05-03 12:46:37 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2: always generate video info from caps
+	  In the past gst_video_info_from_caps() only video/x-raw. Now it also
+	  supports other video/* and image/* formats.
+	  With this patch the format won't be GST_VIDEO_FORMAT_UNKOWN and
+	  gst_v4l2_buffer_pool_set_config() handles strides correctly.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699570
+
+2013-05-02 09:41:01 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* sys/v4l2/gstv4l2bufferpool.c:
+	* sys/v4l2/gstv4l2bufferpool.h:
+	  v4l2: try to allocate new buffers with VIDIOC_CREATE_BUFS if needed
+	  If max_buffers is 0 then an arbitrary number of buffers (currently 4) is
+	  allocated. If this is not enough v4l2src starts copying buffers.
+	  With this patch VIDIOC_CREATE_BUFS is used to allocate a new buffer. If
+	  this fails v4l2src falls back to copying buffers.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699447
+
+2013-04-15 17:37:01 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>
+
+	* sys/osxvideo/osxvideosink.h:
 	* sys/osxvideo/osxvideosink.m:
-	  osxvideosink: Fix resizing the Cocoa window on receiving new caps
-	  Fixes bug #689732.
+	  osxvideosink: fix setting window handle after transition
+	  The destroyed flag was not reset properly and it's also not needed
+	  as we can check osxwindow != NULL
 
-2012-09-27 12:17:58 -0700  Aleix Conchillo Flaque <aleix@oblong.com>
+2013-05-02 13:45:55 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>
 
-	  rtspsrc: do not change state to PLAYING if currently chaning state
-	  * gst/rtsp/gstrtspsrc.c (gst_rtspsrc_play): state change might be
-	  happening in the application thread, so we don't change the state to
-	  PLAYING in the gstrtspsrc thread unless it is safe.
-	  A specific case is when chaning the state to NULL from the application
-	  thread. This will synchronously try to stop the task (with the element
-	  state lock acquired), but we will try a gst_element_set_state from
-	  gstrtspsrc thread which will block on the element state lock causing a
-	  deadlock.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=684312
+	* gst/rtp/Makefile.am:
+	  rtp: fix duplicated symbols with libvpx
 
-2012-11-30 17:22:59 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+2013-04-29 10:58:08 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>
 
-	* ext/shout2/gstshout2.c:
-	  shout2send: accept audio/webm as well as video/webm
-	  https://bugzilla.gnome.org/show_bug.cgi?id=689336
+	* gst/goom2k1/Makefile.am:
+	  goom2k1: fix duplicated symbols with goom
 
-2012-11-30 17:20:18 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+2013-05-01 15:49:45 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-	* gst/matroska/matroska-mux.c:
+	* gst/rtp/gstrtph264pay.c:
+	  rtph264pay: If the adapter is empty on EOS don't try to map its content
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699314
+
+2013-04-30 14:36:38 +0200  Ognyan Tonchev <ognyan@axis.com>
+
+	* gst/matroska/matroska-demux.c:
+	  matroskademux: add stream-format=raw to aac caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699303
+
+2013-04-30 13:07:37 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* sys/v4l2/gstv4l2bufferpool.c:
+	  v4l2: fix and cleanup VIDIOC_EXPBUF handling
+	  clear the struct, and provide a correct error message
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699337
+
+2012-07-05 18:02:27 +0200  Philipp Zabel <p.zabel@pengutronix.de>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2: handle return value -ENOTTY for unimplemented VIDIOC_G_PARM
+	  Newer kernels return -ENOTTY, older kernels return -EINVAL if the ioctl
+	  is not implemented. With this patch, GStreamer handles both cases.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698825
+
+2013-04-30 09:16:07 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2: fix broken boolean expression to detect non-frame buffers
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699294
+
+2013-04-29 11:07:56 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+	* ext/pulse/pulsesink.c:
+	  pulsesink: Better error message when server version is too old
+	  We check for the library version at configure time, but the server
+	  version can only really be checked at run-time.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698768
+
+2013-04-27 11:24:38 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/udp/gstudp.c:
+	  udp: log WARNING debug message if UDP multicast is likely to be broken
+
+2013-04-27 11:16:54 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/udp/gstudpsrc.c:
+	  udpsrc: add includes to get socklen_t defined on Windows
+	  https://bugzilla.gnome.org/show_bug.cgi?id=692400
+
+2013-04-27 09:39:45 +0100  Yury Delendik <async.processingjs@yahoo.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: add support for VP6F VP6 flash codec
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699010
+
+2012-09-05 16:39:31 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* sys/v4l2/gstv4l2bufferpool.c:
+	* sys/v4l2/v4l2_calls.c:
+	  v4l2: also poll for output devices
+	  Note that the V4L2 API defines that for output devices POLLOUT
+	  indicates that a buffer is ready to be dequeued.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698992
+
+2012-08-20 09:52:34 +0200  Philipp Zabel <p.zabel@pengutronix.de>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2: fix copying of encoded buffers
+	  The existence of a GstVideoFormatInfo does not guarantee, that
+	  the buffer contains video frames, so the format must be checked.
+	  Also, for encoded buffers the length is variable and must be set.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698949
+
+2012-07-10 15:29:40 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2: add support for mpeg4 and H.263
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698826
+
+2013-04-26 12:16:49 +0200  Edward Hervey <edward@collabora.com>
+
+	* gst/monoscope/gstmonoscope.c:
+	  monoscope: Fix debug statement
+
+2013-04-25 21:50:33 +0200  Alexander Schrab <meros@meros-desktop.(none)>
+
+	* gst/law/mulaw-decode.c:
+	* gst/law/mulaw-decode.h:
+	* tests/check/Makefile.am:
+	* tests/check/elements/mulawdec.c:
+	  mulawdec: change base class to GstAudioDecoder
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698894
+
+2013-04-25 20:59:52 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
+
+	* gst/videomixer/videomixer2.c:
+	* gst/videomixer/videomixer2.h:
+	  videomixer: send stream-start event.
+
+2012-10-18 10:37:35 +0200  Philipp Zabel <p.zabel@pengutronix.de>
+
+	* sys/v4l2/v4l2_calls.c:
+	  v4l2: handle ENODATA return value for VIDIOC_ENUMSTD
+	  In kernel v3.7-rc1, VIDIOC_ENUMSTD returns ENODATA if the current input
+	  does not support the STD API.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698827
+
+2013-04-25 13:19:35 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
+	* docs/plugins/gst-plugins-good-plugins-sections.txt:
+	* gst/rtp/gstrtpL16depay.c:
+	* gst/rtp/gstrtpL16pay.c:
+	* gst/rtp/gstrtpac3depay.c:
+	* gst/rtp/gstrtpac3pay.c:
+	* gst/rtp/gstrtpamrdepay.c:
+	* gst/rtp/gstrtpamrpay.c:
+	* gst/rtp/gstrtpbvdepay.c:
+	* gst/rtp/gstrtpbvpay.c:
+	  docs: add some pay/depayloaders
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=551631
+
+2013-04-25 12:44:15 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/law/mulaw-encode.c:
+	* tests/check/elements/mulawenc.c:
+	  mulaw: Some minor memleak fixes and cleanup
+
+2013-04-24 13:56:56 +0200  Alexander Schrab <alexas@axis.com>
+
+	* gst/law/mulaw-encode.c:
+	* gst/law/mulaw-encode.h:
+	* tests/check/Makefile.am:
+	* tests/check/elements/mulawenc.c:
+	  mulawenc: change to gstaudioencoder base, added bitrate tags
+
+2012-05-03 16:07:27 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* sys/v4l2/gstv4l2bufferpool.c:
+	  v4l2: bufferpool: reset buffer size in release_buffer
+	  The buffer might still be in use elsewhere when dequeuing buffers for
+	  outputs.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698822
+
+2012-04-20 09:53:35 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* sys/v4l2/gstv4l2bufferpool.c:
+	  v4l2: bufferpool: remove unused includes
+	  The hacks that needed these are long gone.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698821
+
+2013-04-25 12:12:23 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/udp/gstmultiudpsink.c:
+	* gst/udp/gstmultiudpsink.h:
+	  (multi)udpsink: Use separate sockets for IPv4 and IPv6
+	  https://bugzilla.gnome.org/show_bug.cgi?id=534243
+
+2013-04-25 10:44:44 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/udp/gstdynudpsink.c:
+	* gst/udp/gstdynudpsink.h:
+	  dynudpsink: Use separate sockets for IPv4 and IPv6
+	  https://bugzilla.gnome.org/show_bug.cgi?id=534243
+
+2013-04-25 10:43:56 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/udp/Makefile.am:
+	  udp: Don't include removed gstudp.h in noinst_HEADERS
+
+2013-04-17 16:47:31 -0700  Todd Agulnick <todd@agulnick.com>
+
+	* sys/osxaudio/gstosxaudiosink.c:
+	  osxaudio: Use gst_audio_channel_positions_to_mask() to create mask
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698807
+
+2013-04-17 16:12:26 -0700  Todd Agulnick <todd@agulnick.com>
+
+	* sys/osxaudio/gstosxaudiosink.c:
+	  osxaudio: Remove unused code
+
+2013-04-25 09:16:14 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/udp/Makefile.am:
+	* gst/udp/gstdynudpsink.h:
+	* gst/udp/gstmultiudpsink.h:
+	* gst/udp/gstudp.h:
+	* gst/udp/gstudpsink.h:
+	* gst/udp/gstudpsrc.h:
+	  udp: Remove unused enum type
+
+2013-04-25 09:13:51 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/udp/Makefile.am:
+	* gst/udp/gstdynudpsink.c:
+	* gst/udp/gstmultiudpsink.c:
+	* gst/udp/gstudp-marshal.list:
+	  udp: Use the generic marshaller instead of generating marshallers
+
+2013-04-25 09:07:41 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/udp/gstudpsrc.c:
+	* gst/udp/gstudpsrc.h:
+	  udpsrc: Rename instance variable from host to multi_group
+	  This is more consistent as it's used for the multicast-group property.
+
+2013-04-25 09:03:56 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/udp/gstudpsrc.c:
+	  udpsrc: Add bind-address property
+	  This is equivalent to multicast-group currently for backwards compatibility.
+	  In 2.0 this should be handled separately, the former only being the multicast
+	  group and the latter always being the address the socket is bound to, even if
+	  a multicast group is given.
+
+2013-04-24 16:24:25 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtp/gstrtpvrawdepay.c:
+	  vrawdepay: return output buffer from process
+	  Return the output buffer from the process function instead of pushing
+	  it ourselves. This way, the subclass can actually deal with the return
+	  value of the push.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693727
+
+2012-10-01 09:29:21 -0300  Diogo Carbonera Luvizon <diogo.luvizon@ensitec.com.br>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2: save the format correctly
+	  If TRY_FMT is not implemented,  gst_v4l2_object_get_nearest_size will
+	  use S_FMT and will change the device's operation mode. To save the
+	  old device mode we need to set the type field or else it will fail
+	  to save the previous format.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=685209
+
+2013-04-24 15:38:50 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtp/gstrtpL16depay.c:
+	* gst/rtp/gstrtpamrdepay.c:
+	* gst/rtp/gstrtpbvdepay.c:
+	* gst/rtp/gstrtpg722depay.c:
+	* gst/rtp/gstrtpg723depay.c:
+	* gst/rtp/gstrtpg726depay.c:
+	* gst/rtp/gstrtpg729depay.c:
+	* gst/rtp/gstrtpgsmdepay.c:
+	* gst/rtp/gstrtpilbcdepay.c:
+	* gst/rtp/gstrtpmpadepay.c:
+	* gst/rtp/gstrtppcmadepay.c:
+	* gst/rtp/gstrtppcmudepay.c:
+	  rtp: a marker bit should translate to RESYNC
+	  A marker bit on an audio packet does not mean a DISCONT (in the GStreamer sense
+	  of missing data) but it means that the packet is the end of a talkspurt and thus
+	  a good opportunity to resync to the clock. Use the RESYNC buffer flag to note
+	  this.
+	  Real discontinuities are marked with DISCONT still when the seqnum has a GAP or
+	  when the input buffer has the DISCONT flag set.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=627204
+
+2013-04-22 23:51:38 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* MAINTAINERS:
+	* README:
+	* README.static-linking:
+	* common:
+	  Automatic update of common submodule
+	  From 3cb3d3c to 5edcd85
+
+2013-04-22 10:19:29 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/rtp/gstrtpjpegdepay.c:
+	  rtpjpegdepay: Drop frame if it's less than 2 bytes large
+	  https://bugzilla.gnome.org/show_bug.cgi?id=677560
+
+2013-04-18 12:20:08 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst/autodetect/gstautoaudiosink.c:
+	* gst/autodetect/gstautoaudiosrc.c:
+	* gst/autodetect/gstautovideosink.c:
+	* gst/autodetect/gstautovideosrc.c:
+	  autodetect: use _plugin_feature_rank_compare API instead of duplicating the code.
+
+2013-04-18 09:37:30 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* sys/osxaudio/gstosxaudioringbuffer.h:
+	  osxaudio: Include gstaudioringbuffer.h to fix compilation in 1.0
+
+2013-04-17 21:05:14 +0200  Philippe Normand <philn@igalia.com>
+
+	* sys/osxaudio/gstosxaudiosink.c:
+	  osxaudiosink: channel-mask configuration fixes
+	  Set channel-mask according to sink's layout in case of stereo layout.
+	  Also initialize and reset the mask when an unrecognized channel is detected.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698224
+
+2013-04-15 19:53:28 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* sys/v4l2/gstv4l2src.c:
+	  v4l2src: Disable renegotiation in the negotiate method
+	  This way, we don't block the initial negotiation.
+	  Thanks to Jeremy Whiting for doing all the testing.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695981
+
+2013-04-15 19:46:12 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* sys/v4l2/gstv4l2src.c:
+	  Revert "v4l2: disable renegotiation"
+	  This reverts commit d1b26e1d594ab2b63324e43a36330475e98cdf18.
+	  This causes the initial negotiation to never happen if a reconfigure
+	  event is received after gst_base_src_start_complete() but before the loop
+	  starts.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695981
+
+2013-04-17 21:12:55 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* ext/flac/gstflactag.c:
+	  flactag: forward caps event
+	  This ensures that the downstream element will get the event and negotiates. Add
+	  a FIXME for updating the streamheader field on th caps.
+
+2013-04-17 07:50:27 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* ext/flac/gstflacenc.c:
+	* ext/flac/gstflactag.c:
+	  flac: add more logging
+
+2013-04-17 20:24:48 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* sys/osxaudio/gstosxcoreaudiocommon.h:
+	  osxaudio: Fix merge conflicts
+
+2013-04-17 10:10:46 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* configure.ac:
+	  osxaudio: Fix configure check for osxaudio plugin
+
+2013-04-17 09:50:43 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* sys/osxaudio/gstosxaudioringbuffer.c:
+	  osxaudioringbuffer: First check the type, then cast
+
+2013-04-16 22:46:00 +0900  Takashi Nakajima <ted.nakajima@gmail.com>
+
+	* sys/osxaudio/gstosxaudioringbuffer.c:
+	* sys/osxaudio/gstosxaudiosink.h:
+	  osxaudio: use GST_IS_OSX_AUDIO_SINK in ring buffer.
+
+2013-04-10 21:06:16 +0900  Takashi Nakajima <ted.nakajima@gmail.com>
+
+	* sys/osxaudio/gstosxaudioringbuffer.c:
+	* sys/osxaudio/gstosxaudiosink.c:
+	* sys/osxaudio/gstosxaudiosink.h:
+	  osxaudio: call set_channel_positions() in osxaudioringbuffer acquire()
+
+2013-04-12 12:18:04 -0700  Todd Agulnick <todd@agulnick.com>
+
+	* sys/osxaudio/gstosxaudioringbuffer.c:
+	  osxaudio: use GST_AUDIO_INFO_* accessors
+	  Changes include the following:
+	  * Update classname references
+	  * Replace GST_BOILERPLATE_FULL with G_DEFINE_TYPE
+	  * Use new GstAudioInfo struct and methods
+	  * Use new buffer memory allocation scheme
+	  Conflicts:
+	  sys/osxaudio/gstosxaudioringbuffer.c
+
+2013-04-12 11:51:46 -0700  Todd Agulnick <todd@agulnick.com>
+
+	* sys/osxaudio/gstosxcoreaudiocommon.h:
+	* sys/osxaudio/gstosxcoreaudiohal.c:
+	  osxaudio: adjust for changes to glib mutex api.
+
+2013-04-10 01:21:49 +0900  Takashi Nakajima <ted.nakajima@gmail.com>
+
+	* sys/osxaudio/gstosxaudiosink.c:
+	* sys/osxaudio/gstosxaudiosrc.c:
+	  osxaudio: try to fix up according to Sebastian's comments
+
+2013-04-05 10:02:38 +0200  Philippe Normand <philn@igalia.com>
+
+	* configure.ac:
+	* sys/osxaudio/gstosxaudioringbuffer.h:
+	* sys/osxaudio/gstosxaudiosink.c:
+	* sys/osxaudio/gstosxaudiosink.h:
+	* sys/osxaudio/gstosxaudiosrc.h:
+	  osxaudio: build fixes
+	  Enable the osxaudio plugin build in configure.ac and fix some
+	  include directive order issues.
+
+2013-04-02 22:28:09 +0900  ted-n <ted.nakajima@gmail.com>
+
+	* sys/osxaudio/gstosxaudiosrc.c:
+	  osxaudio: fix layout for osxaudiosrc
+
+2013-03-30 22:49:34 +0900  ted-n <ted.nakajima@gmail.com>
+
+	* sys/osxaudio/Makefile.am:
+	* sys/osxaudio/gstosxaudioelement.c:
+	* sys/osxaudio/gstosxaudioringbuffer.c:
+	* sys/osxaudio/gstosxaudioringbuffer.h:
+	* sys/osxaudio/gstosxaudiosink.c:
+	* sys/osxaudio/gstosxaudiosink.h:
+	* sys/osxaudio/gstosxaudiosrc.c:
+	* sys/osxaudio/gstosxaudiosrc.h:
+	* sys/osxaudio/gstosxcoreaudiocommon.c:
+	* sys/osxaudio/gstosxcoreaudiocommon.h:
+	* sys/osxaudio/gstosxringbuffer.c:
+	* sys/osxaudio/gstosxringbuffer.h:
+	  osxaudio: port to v.1.0
+
+2013-04-16 19:29:48 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/videomixer/videomixer2.c:
+	  videomixer: Don't unref query, we don't own it
+	  Fixes double-unref bug. Bug found by Youness Alaoui
+
+2013-04-16 20:41:10 +0200  Philippe Normand <philn@igalia.com>
+
+	* ext/soup/gstsouphttpsrc.c:
+	  souphttpsrc: fix SCHEDULING query support
+	  Chain the query up to parent before adding _BANDWIDTH_LIMITED flag,
+	  so that all the other flags get set, and push mode gets added as
+	  supported activation mode.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693484
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698156
+
+2013-03-31 12:05:49 +0200  Philippe Normand <philn@igalia.com>
+
+	* ext/soup/gstsouphttpsrc.c:
+	  souphttpsrc: basic scheduling query support
+	  Answer to scheduling queries with default parameters and the new
+	  _BANDWIDTH_LIMITED_FLAG so that downstream is advised to minimize seek
+	  operations and perform on-disk buffering if possible.
+	  Bug 693484
+
+2013-04-15 14:32:46 +0000  Andoni Morales Alastruey <ylatuya@gmail.com>
+
+	* sys/osxvideo/osxvideosink.m:
+	  osxvideosink: fix segfault accessing osxwindow when not set yet
+
+2012-10-24 12:14:50 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* configure.ac:
+	* ext/aalib/Makefile.am:
+	* ext/cairo/Makefile.am:
+	* ext/dv/Makefile.am:
+	* ext/flac/Makefile.am:
+	* ext/gdk_pixbuf/Makefile.am:
+	* ext/jack/Makefile.am:
+	* ext/jpeg/Makefile.am:
+	* ext/libcaca/Makefile.am:
+	* ext/libpng/Makefile.am:
+	* ext/mikmod/Makefile.am:
+	* ext/pulse/Makefile.am:
+	* ext/raw1394/Makefile.am:
+	* ext/shout2/Makefile.am:
+	* ext/soup/Makefile.am:
+	* ext/speex/Makefile.am:
+	* ext/taglib/Makefile.am:
+	* ext/vpx/Makefile.am:
+	* ext/wavpack/Makefile.am:
+	* gst/alpha/Makefile.am:
+	* gst/apetag/Makefile.am:
+	* gst/audiofx/Makefile.am:
+	* gst/audioparsers/Makefile.am:
+	* gst/auparse/Makefile.am:
+	* gst/autodetect/Makefile.am:
+	* gst/avi/Makefile.am:
+	* gst/cutter/Makefile.am:
+	* gst/debugutils/Makefile.am:
+	* gst/deinterlace/Makefile.am:
+	* gst/dtmf/Makefile.am:
+	* gst/effectv/Makefile.am:
+	* gst/equalizer/Makefile.am:
+	* gst/flv/Makefile.am:
+	* gst/flx/Makefile.am:
+	* gst/goom/Makefile.am:
+	* gst/goom2k1/Makefile.am:
+	* gst/icydemux/Makefile.am:
+	* gst/id3demux/Makefile.am:
+	* gst/imagefreeze/Makefile.am:
+	* gst/interleave/Makefile.am:
+	* gst/isomp4/Makefile.am:
+	* gst/law/Makefile.am:
+	* gst/level/Makefile.am:
+	* gst/matroska/Makefile.am:
+	* gst/monoscope/Makefile.am:
+	* gst/multifile/Makefile.am:
+	* gst/multipart/Makefile.am:
+	* gst/replaygain/Makefile.am:
+	* gst/rtp/Makefile.am:
+	* gst/rtpmanager/Makefile.am:
+	* gst/rtsp/Makefile.am:
+	* gst/shapewipe/Makefile.am:
+	* gst/smpte/Makefile.am:
+	* gst/spectrum/Makefile.am:
+	* gst/udp/Makefile.am:
+	* gst/videobox/Makefile.am:
+	* gst/videocrop/Makefile.am:
+	* gst/videofilter/Makefile.am:
+	* gst/videomixer/Makefile.am:
+	* gst/wavenc/Makefile.am:
+	* gst/wavparse/Makefile.am:
+	* gst/y4m/Makefile.am:
+	* sys/directsound/Makefile.am:
+	* sys/oss/Makefile.am:
+	* sys/oss4/Makefile.am:
+	* sys/osxaudio/Makefile.am:
+	* sys/osxvideo/Makefile.am:
+	* sys/sunaudio/Makefile.am:
+	* sys/v4l2/Makefile.am:
+	* sys/waveform/Makefile.am:
+	* sys/ximage/Makefile.am:
+	  gst: Add better support for static plugins
+
+2013-04-12 19:26:11 +0000  Andoni Morales Alastruey <ylatuya@gmail.com>
+
+	* gst/goom2k1/Makefile.am:
+	  goom2k1: fix duplicated symbol with goom
+
+2013-03-10 17:17:17 +0000  Josep Torra <n770galaxy@gmail.com>
+
+	* sys/osxaudio/gstosxaudioelement.c:
+	* sys/osxaudio/gstosxcoreaudiocommon.h:
+	  osxaudio: Fixes error: "GST_LEVEL_DEFAULT" redefined
+
+2013-03-10 17:27:30 +0000  Josep Torra <n770galaxy@gmail.com>
+
+	* sys/osxaudio/gstosxcoreaudiohal.c:
+	  osxaudio: fixes implicit declaration of function 'getpid'
+
+2013-04-14 17:55:02 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* autogen.sh:
+	* common:
+	  Automatic update of common submodule
+	  From aed87ae to 3cb3d3c
+
+2013-04-14 12:32:06 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* ext/soup/gstsouphttpsrc.c:
+	* ext/soup/gstsouphttpsrc.h:
+	  souphttpsrc: add back "iradio-mode" property to disable sending of icecast request headers
+	  In 1.0 we now always send the icecast request headers by default, which
+	  makes the server send icecasts metadata inserted into the stream if it
+	  supports that. However, there are some use cases where this is not
+	  desirable, like when just saving a radio stream to disk, so add back
+	  the "iradio-mode" property to allow people to disable this.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697984
+
+2013-04-12 16:16:41 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtp/gstrtp.c:
+	  rtp: register tag image types
+	  The rtpgstdepay needs the type to be available in order to deserialize the
+	  event.
+
+2013-04-12 16:08:58 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtp/gstrtpgstdepay.c:
+	  rtpgstdepay: handle event parse failures better
+
+2013-04-11 22:25:05 +0300  Anton Belka <antonbelka@gmail.com>
+
+	* gst/wavenc/gstwavenc.c:
+	  wavenc: add TOC setter support
+
+2013-04-12 12:31:30 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/wavenc/gstwavenc.c:
+	  wavenc: small cleanups for toc handling
+	  Don't add empty labl/note chunks. Always pass instance as the first param. Add more logging.
+
+2013-04-12 12:58:50 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	* gst/rtsp/gstrtspsrc.h:
+	  rtspsrc: Proxy the ntp-sync property of rtpbin
+
+2013-04-12 12:51:05 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: Give the manager always the name "manager"
+	  This allows to use the GstChildProxy interface to adjust
+	  properties on it.
+
+2013-04-11 22:53:28 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/elements/alphacolor.c:
+	* tests/check/elements/apev2mux.c:
+	* tests/check/elements/id3v2mux.c:
+	* tests/check/pipelines/flacdec.c:
+	  tests: fix some printf format issues in debug messages
+
+2013-04-11 19:27:15 +0300  Anton Belka <antonbelka@gmail.com>
+
+	* gst/wavenc/gstwavenc.c:
+	* gst/wavenc/gstwavenc.h:
+	  wavenc: add 'note' chunk support
+
+2013-04-11 20:46:26 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* ext/pulse/pulsesink.c:
+	  pulsesink: add a little more docs to the audioclock
+
+2013-04-11 15:00:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/Makefile.am:
+	* gst/rtsp/gstrtspsrc.c:
+	* gst/rtsp/gstrtspsrc.h:
+	  rtspsrc: add support for NetClientClock
+	  When the server suggests a GstNetTimeProvider in the SDP, set up a
+	  GstNetClientClock that slaves to the remote clock and suggest this clock in
+	  provide_clock.
+
+2013-04-11 14:57:11 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/udp/gstmultiudpsink.c:
+	* gst/udp/gstmultiudpsink.h:
+	  udpsink: avoid alloc and free in render function
+	  Avoid doing alloc and free in the render function for each buffer. Instead,
+	  allocate the needed arrays in _init and use those.
+
+2013-04-10 08:36:00 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/wavparse/gstwavparse.c:
+	  waveparse: remove superfluous g_list_first() calls
+	  The variables already point to the start of the list.
+
+2013-04-09 23:13:18 +0100  Andreas Fenkart <andreas.fenkart@streamunlimited.com>
+
+	* gst/rtp/gstrtpsbcdepay.c:
+	  rtpsbcdepay: fix sbc frame length calculation for mono and stereo modes
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697463
+
+2013-03-25 14:35:02 +0300  Anton Belka <antonbelka@gmail.com>
+
+	* gst/wavparse/gstwavparse.c:
+	* gst/wavparse/gstwavparse.h:
+	  wavparse: add 'note' chunk support
+	  Add 'note' chunk support in TOC as GST_TAG_COMMENT
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696549
+
+2013-04-08 17:53:09 -0700  David Schleef <ds@schleef.org>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: check value inside enda to set endianness
+
+2013-04-09 21:00:12 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From 04c7a1e to aed87ae
+
+2013-04-09 17:34:12 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/icydemux/gsticydemux.c:
+	  icydemux: avoid copy when we can
+
+2013-04-09 16:52:21 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtp/gstrtpgstpay.c:
+	  gstpay: use bufferlist to avoid memcpy
+
+2013-04-09 16:50:56 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/udp/gstmultiudpsink.c:
+	  udpsink: improve debug
+
+2013-04-09 00:28:54 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/elements/wavparse.c:
+	  tests: refactor new wavparse test a little
+	  Use fakesrc instead of filesrc with /dev/null.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696684
+
+2013-04-08 11:38:33 +0200  Alexander Schrab <alexas@axis.com>
+
+	* gst/wavparse/gstwavparse.c:
+	* tests/check/Makefile.am:
+	* tests/check/elements/wavparse.c:
+	  wavparse: error out if we receive eos before any valid data
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696684
+
+2013-04-07 01:47:56 +0200  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/deinterlace/gstdeinterlace.c:
+	  deinterlace: force deinterlacing in "interlaced" mode
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697467
+
+2013-04-06 12:45:28 -0300  Thibault Saunier <thibault.saunier@collabora.com>
+
+	* ext/gdk_pixbuf/gstgdkpixbufsink.c:
+	  gdkpixbufsink: Add timestamp/running-time/stream-time to the emited message
+
+2013-04-05 14:38:43 +0200  Nicola Murino <nicola.murino@gmail.com>
+
+	* gst/rtp/gstrtpsbcdepay.c:
+	  rtpsbcdepay: fix printf format compiler warnings
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697343
+
+2013-04-05 09:34:23 +0100  Todd Agulnick <todd@agulnick.com>
+
+	* sys/osxvideo/osxvideosink.m:
+	  osxvideo: include pthread.h to fix compiler warning
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697303
+
+2013-04-04 22:48:45 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/level/gstlevel.c:
+	* gst/level/gstlevel.h:
+	  level: resync on discont
+	  Drop pending data on discont and start a new cycle with a new base timestamp.
+	  Cleanup some variables.
+
+2013-04-03 23:52:47 +0100  Tom Greenwood <tgreenwood@Toms-MacBook-Pro.local>
+
+	* ext/vpx/gstvp8dec.c:
+	  vp8dec: Improve logging when vpx_codec_peek_stream_info fails
+	  Decode failures and missing keyframes should get different debug
+	  output.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697232
+
+2013-04-03 18:24:29 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtp/gstrtpsbcdepay.c:
+	  rtpsbcdepay: Rank as secondary
+	  This way, it will be selected by decodebin
+	  Bug reported by andreas.fenkart@streamunlimited.com
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697227
+
+2013-04-03 19:05:38 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/level/gstlevel.c:
+	* tests/check/elements/level.c:
+	  level: subdivide buffers for sample accurate interval handling
+	  Previously we would skip level message when processing buffers > the requested
+	  interval. Also the message frequency would contain quite some jitter due to only
+	  considering them at the end of buffers.
+	  Cleanup the tests while we're at it.
+
+2013-03-19 08:23:25 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* ext/flac/gstflacenc.c:
+	  flacenc: remove old since comments and update logging
+	  Don't pretend that we have a timestamp on a buffer when we never set one.
+
+2013-03-18 20:59:23 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/spectrum/gstspectrum.c:
+	  spectrum: remove old since comment
+
+2013-04-03 17:53:13 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	* gst/rtsp/gstrtspsrc.h:
+	  rtspsrc: Proxy the multicast-iface property of udpsrc
+
+2013-04-03 11:09:50 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* sys/v4l2/gstv4l2bufferpool.c:
+	  v4l2: free all queued buffers
+	  Don't just loop over the first num_queued buffers but loop over
+	  all the buffers and check if they need to be freed. It is possible that
+	  not all buffers are queued and then the entry in our array will be NULL.
+	  Those buffers that are not queued were freed in stop().
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696651
+
+2013-04-03 11:09:37 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* sys/v4l2/gstv4l2bufferpool.c:
+	  v4l2: improve debug
+
+2013-04-02 23:42:23 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtpmanager/gstrtpssrcdemux.c:
+	  rtpssrcdemux: Only forward stick events while holding the sinkpad stream lock
+	  Otherwise we get a race where if the RTCP packet comes in first and while
+	  it is added the pads, the segment event arrives on the RTP stream, the event
+	  may be lost completely and never forwarded.
+
+2013-04-02 23:35:06 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtpmanager/gstrtpssrcdemux.c:
+	  rtpssrcdemux: No need to explicitely forward the caps
+	  They are forwarded with the other events
+
+2013-04-02 22:29:38 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtpmanager/gstrtpssrcdemux.c:
+	* gst/rtpmanager/gstrtpssrcdemux.h:
+	  rtpssrcdemux: Remove unused GstSegment
+
+2013-04-02 22:26:02 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtpmanager/gstrtpssrcdemux.c:
+	  rtpssrcdemux: Simplify event forwarding
+	  Use the gst_pad_forward() mechanic, this way we won't miss pads that are
+	  added while we are pushing
+
+2013-04-02 21:53:10 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtpmanager/gstrtpssrcdemux.c:
+	  rtpssrcdemux: Don't cross the internal links
+	  We had the wrong condition to check for the internal links, so RTP and RTCP
+	  pads got crossed!
+
+2013-03-31 17:54:16 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/matroska/matroska-demux.c:
+	  matroskademux: fix some debug messages
+
+2013-04-02 23:36:22 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* sys/v4l2/v4l2_calls.c:
+	  v4l2: fix printf format compiler warning in debug message
+
+2012-08-29 17:24:00 +0200  Arnaud Vrac <avrac@freebox.fr>
+
+	* gst/matroska/matroska-demux.c:
+	* gst/matroska/matroska-ids.h:
+	  matroskademux: handle TrueHD audio codec id
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697113
+
+2013-03-31 19:14:04 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtp/gstrtptheoradepay.c:
+	  theorapay: add delta-unit to output frames
+
+2013-03-23 05:22:23 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/isomp4/gstqtmux.c:
+	  qtmux: use timestamp delta as duration if possible
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696437
+
+2013-03-30 09:44:41 +0100  Josep Torra <n770galaxy@gmail.com>
+
+	* gst/rtp/gstrtpsbcdepay.c:
+	  rtp: fixes debug message printf related compiler warnings in SBC depayloader
+
+2013-03-28 16:46:36 +0000  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+	* gst/rtp/Makefile.am:
+	* gst/rtp/gstrtp.c:
+	* gst/rtp/gstrtpsbcdepay.c:
+	* gst/rtp/gstrtpsbcdepay.h:
+	  rtp: Add an rtpsbcdepay element
+	  Pretty straightforward - takes SBC encapsulated in RTP, depayloads, and
+	  pushes out SBC buffers.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690582
+
+2013-03-27 22:18:34 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/rtp/gstrtpsbcpay.c:
+	  rtp: fix SBC payloader
+	  Init RTP buffer on stack correctly, so mapping it works
+	  without criticals and the payloader actually works.
+
+2013-03-26 14:44:36 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* sys/directsound/gstdirectsoundsink.c:
+	  directsoundsink: Check for a subset instead of non-empty intersection in accept-caps
+
+2013-03-26 14:39:53 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* sys/directsound/gstdirectsoundsink.c:
+	  directsoundsink: Properly handle the filter caps in get_caps()
+
+2013-03-26 14:35:38 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* sys/directsound/gstdirectsoundsink.c:
+	  directsoundsink: Don't unnecessarily get the parent class in class_init
+	  The trampoline generated by G_DEFINE_TYPE does that already.
+
+2013-03-25 18:02:10 -0700  David Schleef <ds@schleef.org>
+
+	* gst/avi/gstavidemux.c:
+	* gst/isomp4/qtdemux.c:
+	* gst/matroska/matroska-demux.c:
+	  Use %03u for format in gst_pad_create_stream_id_printf()
+
+2013-03-25 10:12:03 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/debugutils/gstcapssetter.c:
+	  capssetter: Prevent unneeded caps copying and allocation
+
+2013-02-01 14:33:41 +0100  Dirk Van Haerenborgh <vhdirk@gmail.com>
+
+	* gst/debugutils/gstcapssetter.c:
+	  capssetter: Pass any or filter caps upstream
+	  capsetter accepts anything and just forwards different caps,
+	  as such it should return ANY caps on the sinkpad.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693005
+
+2013-03-06 13:17:54 +0000  Tom Greenwood <tgreenwood@Toms-MacBook-Pro.local>
+
+	* ext/vpx/gstvp8enc.c:
+	  vp8enc: Fix for divide by zero when using 0/1 framerate
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695709
+
+2013-03-24 17:55:55 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/wavparse/gstwavparse.c:
+	  wavparse: expose CUE sheet items as tracks not chapter entries in TOC
+	  https://bugzilla.gnome.org/show_bug.cgi?id=677306
+
+2013-03-23 13:11:02 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* ext/flac/gstflacenc.c:
+	  flacenc: add more example pipelines
+
+2013-03-23 12:59:26 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/wavenc/gstwavenc.c:
+	  wavenc: add some example pipelines
+
+2013-03-20 21:38:40 +0300  Anton Belka <antonbelka@gmail.com>
+
+	* gst/wavenc/gstwavenc.c:
+	* gst/wavenc/gstwavenc.h:
+	  wavenc: add TOC support
+	  https://bugzilla.gnome.org/show_bug.cgi?id=680998
+
+2013-03-23 04:56:36 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: make empty subtitle buffer recognition more robust
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696244
+
+2013-03-04 15:49:06 -0800  David Schleef <ds@schleef.org>
+
+	* ext/libpng/gstpngenc.c:
+	  pngenc: unmap source frame when done
+
+2013-03-22 15:14:15 -0700  David Schleef <ds@schleef.org>
+
+	* gst/isomp4/gstqtmux.c:
+	  qtmux: Fix test regression with one buffer streams
+
+2013-03-05 17:00:17 -0800  David Schleef <ds@schleef.org>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: split large raw audio samples
+	  In order to deal with a file that has samples that are 24 seconds
+	  long.  Seeking still doesn't work with such files.
+
+2013-03-22 11:54:08 -0700  David Schleef <ds@schleef.org>
+
+	* gst/isomp4/gstqtmux.c:
+	  qtmux: Remove documentation for dts-method
+
+2013-03-22 13:24:33 -0700  David Schleef <ds@schleef.org>
+
+	* gst/isomp4/gstqtmux.c:
+	* gst/isomp4/gstqtmux.h:
+	  qtmux: deprecate dts-method property
+
+2013-03-13 17:08:03 -0700  David Schleef <ds@schleef.org>
+
+	* gst/isomp4/gstqtmux.c:
+	  qtmux: Fix problems causing bad durations in file
+	  - Fix up out-of-order incoming DTS values.
+	  - Fix duration of initial sample.
+
+2013-03-12 19:08:26 -0700  David Schleef <ds@schleef.org>
+
+	* gst/isomp4/gstqtmux.c:
+	  qtmux: fix all timestamps once first_ts is determined
+
+2013-02-14 16:34:34 -0800  David Schleef <ds@schleef.org>
+
+	* gst/isomp4/gstqtmux.c:
+	* gst/isomp4/gstqtmux.h:
+	  qtmux: Use PTS/DTS from incoming buffers
+	  Remove old DTS guessing code.
+
+2013-03-18 12:30:50 +0100  Nicola Murino <nicola.murino@gmail.com>
+
+	* gst/isomp4/gstqtmuxmap.c:
+	  qtmux: expose mulaw caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696052
+
+2013-03-22 10:50:34 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	  Require Orc >= 0.4.17
+	  Orc 0.4.17 fixes a bunch crashes on i386 and RPi when orc
+	  functions can't be compiled and the fallback function is
+	  supposed to be used. Also fixes some issues on PowerPC.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=684399
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693862
+
+2013-03-22 08:47:17 +0000  Rodolfo Schulz de Lima <rodolfo@rodsoft.org>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: fix sample leak when processing private qt tags
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696355
+
+2013-03-22 02:24:01 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/isomp4/gstqtmux.c:
+	  qtmux: set stream language code from tag
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696358
+
+2013-03-21 02:55:06 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: send GAP events for subtitle streams
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696244
+
+2013-03-21 02:53:24 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: ignore empty subtitle buffers
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696244
+
+2013-03-21 02:52:07 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/isomp4/qtdemux.c:
+	* gst/isomp4/qtdemux_fourcc.h:
+	  qtdemux: recognize SBTL subtype for subtitles
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696244
+
+2013-03-17 16:27:03 +0300  Anton Belka <antonbelka@gmail.com>
+
+	* gst/audioparsers/gstflacparse.c:
+	  flacparse: add support for the toc-select event
+	  Select tracks from the CUE sheet by sending a toc-select
+	  event based on the uid in the TOC.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=540891
+
+2013-03-19 18:09:31 -0700  Michael Smith <msmith@rdio.com>
+
+	* gst/isomp4/gstqtmux.c:
+	  mp4mux: in faststart mode, don't output up to 4 kB of garbage at the end.
+
+2013-03-20 00:35:17 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/audioparsers/gstsbcparse.c:
+	  sbcparse: pack multiple frames into one output buffer
+	  Don't output a single buffer for every tiny SBC frame
+
+2013-03-18 14:59:35 +0000  Bastien Nocera <hadess@hadess.net>
+
+	* sys/v4l2/v4l2_calls.c:
+	  v4l2: fix compilation against newer kernel headers as on FC19
+
+2013-03-14 14:12:05 +0100  Kishore Arepalli <kishore.arepalli@gmail.com>
+
+	* gst/deinterlace/gstdeinterlace.c:
+	  deinterlace: fix infinite loop on EOS with non-default methods or fields
+	  Fixes problem of infinite loop in gst_deinterlace_reset_history.
+	  Last field in the history was never deinterlaced because idx becomes negative.
+	  Happens e.g. with method=scalerbob fields=bottom or
+	  method=greedyl fields=top
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695644
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693173
+
+2013-03-12 09:48:31 +0000  Kishore Arepalli <kishore.arepalli@gmail.com>
+
+	* ext/dv/gstdvdemux.c:
+	  dvdemux: don't return FALSE when dropping sink events
+	  Fixes problem in conjunction with avidemux.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695643
+
+2013-03-12 00:16:18 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/avi/gstavimux.c:
+	  avimux: change raw video caps order so that GRAY8 is last
+	  People like colours.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695543
+
+2013-03-11 14:50:41 +0100  Ognyan Tonchev <ognyan@axis.com>
+
+	* gst/rtp/gstrtph264pay.c:
+	  rtph264pay: Don't use upstream caps with peer_query_caps ()
+	  Calling gst_pad_peer_query_caps () on the src pad with the caps
+	  upstream can produce as a filter from gst_rtp_h264_pay_getcaps ()
+	  is wrong and makes caps negotiation fail if upstream caps are not
+	  NULL.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695629
+
+2013-03-10 09:10:18 +0100  Dirk Van Haerenborgh <vhdirk@gmail.com>
+
+	* gst/avi/gstavimux.c:
+	  avimux: support raw BGR
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695543
+
+2013-03-10 09:25:34 +0100  Dirk Van Haerenborgh <vhdirk@gmail.com>
+
+	* gst/avi/gstavidemux.c:
+	  avidemux: support raw video with negative height
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695541
+
+2013-03-05 14:40:56 +0100  Jonas Holmberg <jonashg@axis.com>
+
+	* tests/check/elements/autodetect.c:
+	  autodetect checktest: Do not fail without videosink
+	  If there is no videosink available autovideosink will contain a
+	  fakesink instead which needs special treatment in the unit test.
+
+2013-03-09 01:18:30 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* Android.mk:
+	* configure.ac:
+	* docs/plugins/Makefile.am:
+	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
+	* docs/plugins/gst-plugins-good-plugins-sections.txt:
+	* docs/plugins/gst-plugins-good-plugins.args:
+	* docs/plugins/gst-plugins-good-plugins.hierarchy:
+	* docs/plugins/gst-plugins-good-plugins.signals:
+	* docs/plugins/inspect/plugin-audiofx.xml:
+	* docs/plugins/inspect/plugin-avi.xml:
+	* docs/plugins/inspect/plugin-dtmf.xml:
+	* docs/plugins/inspect/plugin-jpeg.xml:
+	* docs/plugins/inspect/plugin-level.xml:
+	* docs/plugins/inspect/plugin-rtp.xml:
+	* docs/plugins/inspect/plugin-shout2send.xml:
+	* gst-plugins-good.spec.in:
+	* gst/dtmf/gstdtmf.c:
+	* gst/dtmf/gstdtmfcommon.h:
+	* tests/check/Makefile.am:
+	* tests/check/elements/.gitignore:
+	  dtmf: move dtmf plugin from -bad to -good
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687416
+
+2013-03-09 00:30:38 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	  Merge branch 'dtmf-moved-from-bad'
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687416
+
+2013-03-05 21:22:18 +0100  Andoni Morales Alastruey <ylatuya@gmail.com>
+
+	* configure.ac:
+	* sys/osxaudio/Makefile.am:
+	* sys/osxaudio/gstosxaudioelement.h:
+	* sys/osxaudio/gstosxaudiosink.c:
+	* sys/osxaudio/gstosxcoreaudio.c:
+	* sys/osxaudio/gstosxcoreaudioremoteio.c:
+	  osxaudio: add support for iOS using the RemoteIO AudioUnit
+
+2013-03-05 21:17:52 +0100  Andoni Morales Alastruey <ylatuya@gmail.com>
+
+	* sys/osxaudio/Makefile.am:
+	* sys/osxaudio/gstosxaudiosink.c:
+	* sys/osxaudio/gstosxaudiosrc.c:
+	* sys/osxaudio/gstosxcoreaudio.c:
+	* sys/osxaudio/gstosxcoreaudio.h:
+	* sys/osxaudio/gstosxcoreaudiocommon.c:
+	* sys/osxaudio/gstosxcoreaudiocommon.h:
+	* sys/osxaudio/gstosxcoreaudiohal.c:
+	* sys/osxaudio/gstosxringbuffer.c:
+	* sys/osxaudio/gstosxringbuffer.h:
+	  osxaudio: add a façade for the CoreAudio API
+
+2013-03-07 00:00:41 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From 2de221c to 04c7a1e
+
+2013-03-03 11:59:31 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/matroska/lzo.c:
+	  matroska: Include config.h, it's needed for _stdint.h
+
+2013-03-03 11:53:04 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/audioparsers/gstflacparse.c:
+	  flacparse: Fix (wrong) use of uninitialized variable compiler warning
+
+2013-03-02 13:59:52 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: add variant field to H.263 caps
+	  avdec_h263 won't get plugged otherwise.
+
+2013-02-22 19:06:52 +0100  Arnaud Vrac <avrac@freebox.fr>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: skip disabled tracks
+	  ISO/IEC 14496-12 specifies disabled tracks should be completely
+	  ignored, so just do it.
+	  Avoids deadlock during prerolling for some files.
+	  Also prevents 'chapter' subtitle tracks from showing up.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693993
+	  https://bugzilla.gnome.org/show_bug.cgi?id=628790
+
+2013-02-25 09:58:13 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/elements/level.c:
+	  tests: re-add suppression for GValueArray warnings to unit test as well
+
+2013-02-28 13:25:06 +0100  Jonas Holmberg <jonashg@axis.com>
+
+	* tests/check/elements/dtmf.c:
+	  tests: use relative include for out-of-tree builds in dtmf test
+
+2013-02-28 08:46:59 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/spectrum/gstspectrum.c:
+	  spectrum: remove the since doc-comment from 0.10
+
+2013-02-28 08:44:18 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/level/gstlevel.c:
+	* gst/level/gstlevel.h:
+	* tests/examples/level/level-example.c:
+	  level: add a "post-messages" property and deprecate "message"
+	  In spectrum this was changed from 0.10 to 1.0, lets do this here too.
+
+2013-02-27 18:56:50 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* tests/check/elements/dtmf.c:
+	  tests: Add tests for dtmfsrc
+
+2013-02-27 16:15:27 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* tests/check/elements/dtmf.c:
+	  tests: Fix ref leak in dtmf test
+
+2013-02-26 14:18:20 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtp/gstrtpmp4gdepay.c:
+	  rtpmp4gdepay: streamtype is not put by all RTSP server, not make it optional
+	  Specific case here is Wowza 3.5.0
+
+2013-02-25 00:35:58 +0100  Thomas Vander Stichele <thomas (at) apestaart (dot) org>
+
+	* gst/level/gstlevel.c:
+	  level: put back deprecation warnings
+
+2013-02-24 17:00:14 +0100  Thomas Vander Stichele <thomas (at) apestaart (dot) org>
+
+	* gst/level/gstlevel.c:
+	* tests/check/elements/level.c:
+	  level: send last message on EOS
+
+2013-02-23 14:34:35 +0100  Mark Nauwelaerts <mnauw@users.sourceforge.net>
+
+	* gst/avi/gstavidemux.c:
+	  avidemux: push mode: handle some more 0-size buffer cases
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684944
+
+2013-02-23 18:50:52 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/matroska/matroska-mux.c:
+	  matroskamux: fix up example pipeline in docs
+
+2012-11-20 12:14:07 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+	* ext/pulse/pulsesink.c:
+	  pulsesink: Update segdone periodically
+	  This makes sure that we update segdone based on the read index received
+	  during latency updates. As the comment notes, we make some compromises
+	  to deal with the fact that segdone is a segment multiple, while the read
+	  index offers finer granularity. The updates are also not very often
+	  (100ms since that is how often automatic timing updates are provided).
+	  All this is required for the baseaudiosink sample alignment code to work
+	  at all.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=694257
+
+2013-02-13 10:46:54 +0100  Paul HENRYS <visechelle@gmail.com>
+
+	* gst/rtpmanager/rtpsession.c:
+	  rtpsession: Fix wrong code organisation in case of collision
+	  change_ssrc field of RTPSession should be set before calling
+	  rtp_session_schedule_bye_locked () as this function will call reconsider function
+	  that will wake up rtcp_thread which will call rtp_session_on_timeout () that will
+	  check change_ssrc to change the ssrc.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=694184
+
+2013-02-21 11:15:23 -0500  Jean-François Fortin Tam <nekohayo@gmail.com>
+
+	* gst/alpha/gstalpha.c:
+	  alpha: improve descriptions of chroma keying-related properties and enums
+	  https://bugzilla.gnome.org/show_bug.cgi?id=694374
+
+2013-02-21 15:01:15 -0500  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/alpha/gstalpha.c:
+	  alpha: Do not override the method with custom r/g/b values
+	  Depending on the order g_object_set() calls aare made, the
+	  target r/g/b settings will override the method if set to
+	  green/blue. Change that so we do not use the target-r/g/b values
+	  unless the method is set to custom.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=694374
+
+2013-02-20 15:46:43 +0100  Ognyan Tonchev <ognyan@axis.com>
+
+	* gst/auparse/gstauparse.c:
+	  auparse: do not leak src_caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=694275
+
+2013-02-20 21:03:27 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpsession.c:
+	  rtpsession: only delay RTCP when we are a sender
+	  Only delay the RTCP thread when we are a sender, which we can know because we
+	  have a send_rtp_src pad. Otherwise we might delay the RTCP thread if we
+	  are only a receiver and then there is no code path that wakes up the
+	  RTCP thread and we end up without RTCP packets.
+
+2013-02-19 11:47:20 +0100  Benjamin Gaignard <benjamin.gaignard@linaro.org>
+
+	* configure.ac:
+	* sys/v4l2/Makefile.am:
+	* sys/v4l2/gstv4l2bufferpool.c:
+	* sys/v4l2/gstv4l2object.c:
+	* sys/v4l2/gstv4l2object.h:
+	* sys/v4l2/gstv4l2src.c:
+	  v4l2: Add support of dmabuf
+	  v4l has add a new IOCTL to export a buffer by using dmabuf.
+	  This patch allow to use this new IOTCL if it has been defined in videodev2.h
+	  I introduce a new IO mode (GST_V4L2_IO_DMABUF) to enable this way of working.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693826
+
+2013-02-18 20:04:05 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: fix up dodgy code that tries to fix up a broken moov atom
+	  After gst_buffer_new_and_alloc() gst_buffer_copy_into() will likely
+	  append to the already-existing memory instead of filling it.
+
+2013-02-18 16:32:13 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: fix potential crash on short MOOV atom
+	  Don't unmap short MOOV atom buffer twice, which happened
+	  in the case where we don't fix up the MOOV atom.
+	  Fixes crashes when thumbnailing partial mp4 file where
+	  the MOOV atom is still incomplete.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=694010
+
+2013-02-16 16:49:22 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* ext/soup/Makefile.am:
+	  souphttpsrc: set SOUP_VERSION_{MIN_REQUIRED,MAX_ALLOWED} to suppress deprecations with newer versions
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693911
+
+2013-02-16 15:47:02 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* configure.ac:
+	* ext/soup/gstsouphttpsrc.c:
+	  soup: use default proxy resolver instead of deprecated GNOME proxy resolver
+	  Apparently there's no reason to use it any longer. Drop libsoup-gnome
+	  dependency while at it, now that we don't need anything from it any
+	  more (it only consists entirely of deprecated API now anyways).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693911
+
+2013-02-15 15:43:43 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/pipelines/tagschecking.c:
+	  tests: fix some h264 caps
+	  Doesn't fix anything in particular, but is
+	  still needed here for correctness.
+
+2013-02-15 08:19:24 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/audiofx/audiopanorama.c:
+	  audiopanorama: remove channel-mask from caps
+	  The channel-mask is only needed for channels>2 which we don't do.
+
+2013-02-15 16:21:21 +0100  Benjamin Gaignard <benjamin.gaignard@stericsson.com>
+
+	* sys/v4l2/gstv4l2bufferpool.c:
+	  v4l2: don't check stride for encoded formats
+	  Don't try to check the stride for encoded formats. Some drivers output
+	  something != 0 and then we don't want to fail on that.
+
+2013-02-15 14:11:36 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/udp/gstudpsrc.c:
+	  udpsrc: use g_socket_set_option() to set buffer size with newer GLib versions
+	  So we have to worry less about portability.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=692400
+
+2013-02-14 14:13:27 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* ext/jpeg/gstjpegdec.c:
+	  jpegdec: remove sof-marker from template caps for now
+	  Now that the subset check actually works, this breaks
+	  things with demuxers that don't put a "sof-marker"
+	  in their jpeg caps, and we don't have a good parser
+	  to plug either yet.
+
+2013-02-13 12:32:10 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/jpeg/gstjpegenc.c:
+	* ext/jpeg/gstjpegenc.h:
+	  jpegenc: Put the SOF marker into the caps
+
+2013-02-13 12:02:46 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/rtp/gstrtpamrdepay.c:
+	* tests/check/elements/rtp-payloading.c:
+	  rtp-payloading: Fix unit test caps and AMR depayloader sink template caps
+	  Fields were missing from the actual caps, or too many fields
+	  existed in the template caps.
+
+2013-02-13 11:53:01 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/aacparse.c:
+	  aacparse: Fix caps used in the unit test
+	  The AAC caps passed were incomplete.
+
+2013-02-13 11:49:40 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/wavpackenc.c:
+	* tests/check/elements/wavpackparse.c:
+	  wavpack: Fix unit tests, width is now called depth in the caps in 1.0
+
+2013-02-12 23:31:22 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/elements/souphttpsrc.c:
+	  tests: make souphttpsrc unit test work even if http_proxy is set
+	  We're testing with an http server on localhost, but don't support
+	  an exception list for the http_proxy, so just unset the environment
+	  variable to make sure we can run this test properly even if the
+	  environment has http_proxy set.
+	  Also, don't skip all tests if there is an issue with the SSL server,
+	  just run the non-SSL tests then.
+	  https://jenkins.qa.ubuntu.com/view/Raring/view/JHBuild%20Gnome/job/jhbuild-amd64-gst-plugins-good/
+
+2013-02-12 12:53:52 -0800  Michael Smith <msmith@rdio.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: extract codec_data for ProRes
+
+2013-02-08 01:02:10 +1100  Tim 'mithro' Ansell <mithro@mithis.com>
+
+	* gst/avi/gstavimux.c:
+	  avimux: Fixing buffer leak in gst_avi_mux_do_buffer
+	  gst_avi_mux_do_buffer was leaking data from gst_collect_pads_pop.
+
+2013-02-10 15:10:32 +0100  Mark Nauwelaerts <mnauw@users.sourceforge.net>
+
+	* gst/avi/gstavidemux.c:
+	  avidemux: correct duration for audio VBR buffers in pull mode
+
+2013-02-08 21:28:02 +0100  Mark Nauwelaerts <mnauw@users.sourceforge.net>
+
+	* gst/avi/gstavidemux.c:
+	  avidemux: proper position reporting and push mode timestamping
+	  ... and align current_total semantics in push and pull mode,
+	  which tracks bytes for CBR and blocks for VBR.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691481
+
+2013-02-08 17:05:27 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpsession.c:
+	  rtpsession: delay RTCP until first RTP packet
+	  Delay sending the first RTCP packet until we have sent the first RTP packet.
+	  Otherwise we will send out a Receiver Report instead of a sender report.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=691400
+
+2013-02-07 15:06:40 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/rtpsession.c:
+	  rtpsession: remove dead code
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=668355
+
+2013-01-29 10:48:17 +0100  Paul HENRYS <visechelle@gmail.com>
+
+	* gst/rtpmanager/gstrtpptdemux.c:
+	  rtpptdemux: forward sticky events and then set caps
+	  When a new src pad is added, first forward the sticky events and then
+	  set the caps on the src pad
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692786
+
+2013-02-07 14:32:26 +0100  Markovtsev Vadim <v.markovtsev at samsung.com>
+
+	* gst/rtpmanager/rtpjitterbuffer.c:
+	  rtpjitterbuffer: improve debug output
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688935
+
+2011-09-26 14:42:51 -0700  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpbin.c:
+	  rtpbin: rework cleanup of streams
+	  Move the work of cleaning up the client streams in the free_stream
+	  function. This allows us to properly clean up the client streams when we
+	  remove an RTP stream as well.
+	  Based on patch by Sujay <sdatar@cisco.com>
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=660156
+
+2013-02-07 11:40:35 +0100  Tim 'mithro' Ansell <gnome at mithis.com>
+
+	* gst/videomixer/videomixer2.c:
+	  videomixer2: avoid caps leak
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693307
+
+2013-02-06 17:15:11 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/rtpjitterbuffer.c:
+	  jitterbuffer: do skew estimation only for new timestamps
+	  Only run the skew estimation code when we have a new RTP timestamp. If we have
+	  the same RTP timestamp, we simply use the previous estimation. This works
+	  because the new observation with the same RTP timestamp has to have a bigger
+	  receiver time and is thus not going to influence the estimation except for
+	  causing more jitter.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=640023
+
+2013-02-06 13:52:26 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: only EOS when our source sends BYE
+	  Only EOS when we receive a BYE event from the SSRC of our stream.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=675453
+
+2013-02-06 13:47:51 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: save the stream SSRC
+	  Conflicts:
+	  gst/rtsp/gstrtspsrc.c
+
+2013-02-06 13:18:18 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: flush connection when stopping
+	  When we stop, we can flush all pending commands so that we can stop and
+	  join the task.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684924
+
+2013-02-05 22:02:13 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/spectrum/README:
+	  spectrum: remove outdates readme
+	  Lets remove the readme from pre-0.1.0 that is completely irrelevant now.
+
+2013-02-05 07:32:29 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/audiofx/audiopanorama.c:
+	  audiopanorama: add more debug logging
+
+2013-02-05 08:26:14 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/examples/level/level-example.c:
+	  level-example. avoid taking the arrays again for each channel for clarity
+	  Also introduce some blank lines for better readability and update the comments.
+
+2013-02-04 18:38:41 +0000  Rico Tzschichholz <ricotz@ubuntu.com>
+
+	* gst/audioparsers/Makefile.am:
+	  audioparsers: fix typo in noinst_headers
+
+2013-02-04 11:08:23 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/audiofx/audiopanorama.c:
+	  audiopanorama: further port to 1.0
+	  Transformcaps is not called with caps containing single structures anymore. Also add missing filter handling. Still does not negotiate though.
+
+2013-02-03 22:45:52 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/audiofx/audiopanorama.c:
+	  audiopanorama: fix caps
+	  We don't turn float into 32bit pcm. Looks like a typo from updating the caps.
+
+2013-02-03 13:14:50 +0100  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/level/gstlevel.c:
+	  level: Add missing coma between formats
+
+2013-01-31 22:55:18 +1100  Matthew Waters <ystreet00@gmail.com>
+
+	* gst/videomixer/videomixer2.c:
+	  videomixer: fix eos timestamp check
+	  fixes hang in videotestsrc num-buffers=20 ! videomixer ! fakesink
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692935
+
+2013-01-31 11:35:09 +0100  Dirk Van Haerenborgh <vhdirk@gmail.com>
+
+	* gst/avi/gstavimux.c:
+	  avimux: add support for raw monochrome 8-bit video
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692932
+
+2013-01-18 21:08:12 +0400  Alexey Chernov <achernov@neosphere.com>
+
+	* sys/osxvideo/cocoawindow.h:
+	* sys/osxvideo/cocoawindow.m:
+	  osxvideosink: Make GstNavigation key input events in osxvideosink compatible with x(v)imagesink ones
+
+2013-01-29 10:30:32 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpsession.c:
+	  rtpsession: avoid '...is used uninitialized'
+
+2013-01-09 13:24:49 -0500  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: set interleaved layout correctly for LPCM audio
+	  https://bugzilla.gnome.org/show_bug.cgi?id=663458
+
+2013-01-08 20:45:21 -0500  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: add support for LPCM fourcc (uncompressed audio in Quicktime7)
+	  https://bugzilla.gnome.org/show_bug.cgi?id=663458
+
+2013-01-08 20:42:35 -0500  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: print all debug for sound sample description v2
+	  https://bugzilla.gnome.org/show_bug.cgi?id=663458
+
+2013-01-08 20:14:17 -0500  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: sound sample description v2 doesn't override samples_per_packet
+	  https://bugzilla.gnome.org/show_bug.cgi?id=663458
+
+2013-01-08 19:57:50 -0500  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: pass stsd data to qtdemux_audio_caps()
+	  We will need that later for LPCM format support. Disable
+	  QDM2 parsing of stsd data which dead code before as well
+	  because data was always NULL.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=663458
+
+2013-01-08 19:56:46 -0500  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: add len check for sound sample descriptions v1 and v2
+	  https://bugzilla.gnome.org/show_bug.cgi?id=663458
+
+2013-01-28 22:42:25 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/rtpmanager/gstrtpssrcdemux.c:
+	  rtpmanager: use C89-style comments
+
+2013-01-28 18:06:15 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtpmanager/gstrtpsession.c:
+	  gstrtpsession: Fix double-declared variable
+
+2013-01-28 17:58:20 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtpmanager/gstrtpsession.c:
+	* gst/rtpmanager/gstrtpssrcdemux.c:
+	  rtp: Fix compilation errors in previous patches
+
+2011-04-28 22:59:28 +0200  Haakon Sporsheim <haakon.sporsheim@gmail.com>
+
+	* gst/rtpmanager/gstrtpsession.c:
+	  rtpsession: Ensure MT safe event handling and plug event leak.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=667826
+
+2011-10-17 23:45:37 +0200  Idar Tollefsen <itollefs@cisco.com>
+
+	* gst/rtpmanager/gstrtpsession.c:
+	  rtpsession: mt-safe event-push
+	  By taking a ref of the sink-pad under lock, it won't dissappear
+	  while the push is taking place
+	  https://bugzilla.gnome.org/show_bug.cgi?id=667816
+
+2012-01-04 10:29:45 +0100  Pascal Buhler <pabuhler@cisco.com>
+
+	* gst/rtpmanager/gstrtpssrcdemux.c:
+	  rtpssrcdemux: Safely push on pads that might be removed due to a RTCP BYE
+	  https://bugzilla.gnome.org/show_bug.cgi?id=667815
+
+2013-01-28 20:42:26 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From a942293 to 2de221c
+
+2013-01-28 11:54:54 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/audioparsers/gstsbcparse.c:
+	  sbcparse: init some variables to avoid bogus compiler warnings
+
+2013-01-28 12:41:04 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtp/gstrtpL16depay.c:
+	* gst/rtp/gstrtpac3depay.c:
+	* gst/rtp/gstrtpamrdepay.c:
+	* gst/rtp/gstrtpbvdepay.c:
+	* gst/rtp/gstrtpceltdepay.c:
+	* gst/rtp/gstrtpdvdepay.c:
+	* gst/rtp/gstrtpg722depay.c:
+	* gst/rtp/gstrtpg723depay.c:
+	* gst/rtp/gstrtpg726depay.c:
+	* gst/rtp/gstrtpg729depay.c:
+	* gst/rtp/gstrtpgsmdepay.c:
+	* gst/rtp/gstrtpgstdepay.c:
+	* gst/rtp/gstrtph263depay.c:
+	* gst/rtp/gstrtpilbcdepay.c:
+	* gst/rtp/gstrtpj2kdepay.c:
+	* gst/rtp/gstrtpjpegdepay.c:
+	* gst/rtp/gstrtpmp1sdepay.c:
+	* gst/rtp/gstrtpmp2tdepay.c:
+	* gst/rtp/gstrtpmp4adepay.c:
+	* gst/rtp/gstrtpmp4gdepay.c:
+	* gst/rtp/gstrtpmpadepay.c:
+	* gst/rtp/gstrtpmparobustdepay.c:
+	* gst/rtp/gstrtpmpvdepay.c:
+	* gst/rtp/gstrtppcmadepay.c:
+	* gst/rtp/gstrtppcmudepay.c:
+	* gst/rtp/gstrtpqcelpdepay.c:
+	* gst/rtp/gstrtpqdmdepay.c:
+	* gst/rtp/gstrtpsirendepay.c:
+	* gst/rtp/gstrtpspeexdepay.c:
+	* gst/rtp/gstrtpsv3vdepay.c:
+	* gst/rtp/gstrtptheoradepay.c:
+	* gst/rtp/gstrtpvorbisdepay.c:
+	* gst/rtp/gstrtpvp8depay.c:
+	* gst/rtp/gstrtpvrawdepay.c:
+	  rtpdepay: remove payload type restrictions
+	  Remove the pt restrictions for all the depayloaders that have an
+	  encoding-name. We can use this to autoplug decoders.
+	  Remove the encoding-name for all the payloaders with a fixed payload
+	  type.
+	  We now either have an encoding-name or a pt in the sinkpad caps of
+	  a depayloader.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=639292
+
+2013-01-28 12:23:41 +0100  Marc Leeman <marc.leeman@gmail.com>
+
+	* gst/rtp/gstrtph263depay.c:
+	* gst/rtp/gstrtph263pdepay.c:
+	* gst/rtp/gstrtph264depay.c:
+	* gst/rtp/gstrtpmp4vdepay.c:
+	  rtp: remove payload requirements from selected depayloaders
+	  encoding name is required in the caps and is a better fit for autoplugging than
+	  the pt value. Hardware manufacturers have a bad habit of skimming through RFCs
+	  and in this case; use unassigned numbers for encoders instead of dynamic
+	  numbers.
+	  In essence, this patch will add support for a lot of Bosch hardware encoders
+	  without breaking autoplugging.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=639292
+
+2013-01-27 10:17:59 +0530  B.Prathibha <bosslinux@cdac.in>
+
+	* tests/examples/jack/jack_client.c:
+	* tests/examples/rtp/server-alsasrc-PCMA.c:
+	* tests/icles/ximagesrc-test.c:
+	  tests: use g_timeout_add_seconds instead of g_timeout_add
+	  https://bugzilla.gnome.org/show_bug.cgi?id=692615
+
+2013-01-27 12:54:15 +0100  Mark Nauwelaerts <mnauw@users.sourceforge.net>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: push mode: only parse moov 1 once
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691570
+
+2013-01-26 22:58:29 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  rtpdtmfsrc: fix compiler warning
+	  gstrtpdtmfsrc.c: In function 'gst_dtmf_src_prepare_message.isra.1':
+	  gstrtpdtmfsrc.c:669:3: error: 's' may be used uninitialized in this function
+
+2013-01-25 21:06:05 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	  rtpdtmfdepay: Fix missing work in doc
+
+2013-01-24 21:00:08 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* tests/check/elements/dtmf.c:
+	  tests: Add test for rtpdtmfdepay and rtpdtmfsrc
+
+2013-01-25 20:39:33 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  rtpdtmfsrc: Post the messages after the clock wait
+	  This way, the messages will be closer in time to when the packets are sent out
+
+2013-01-25 20:37:53 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  rtpdtmfsrc: Only set the duration when starting to send
+	  The duration depends on the clock rate, which could change due to renegotiation
+
+2013-01-25 20:37:09 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  rtpdtmfsrc: remove "ssrc" from caps
+	  ssrc is uint and we don't have a uint range type
+
+2013-01-24 21:08:51 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/isomp4/atoms.h:
+	  qtmux: set language to 'undefined' instead of English by default
+
+2013-01-23 21:35:25 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* sys/ximage/gstximagesrc.c:
+	* sys/ximage/ximageutil.c:
+	* sys/ximage/ximageutil.h:
+	  ximagesrc: Set the pixel aspect ratio correctly in the caps
+
+2013-01-08 08:56:45 +0100  Sjoerd Simons <sjoerd@luon.net>
+
+	* sys/v4l2/gstv4l2src.c:
+	  v4l2: Re-enable prepare-format emission
+	  With the port to gstreamer 1.0 the prepare-format signal stopped being
+	  emitted. Start emitting this again for use in uvch264src.  While there
+	  change the emission to include the caps for extra flexibility instead of
+	  fource, width, height.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=692042
+
+2013-01-22 18:12:10 +0100  Benjamin Gaignard <benjamin.gaignard@st.com>
+
+	* autogen.sh:
+	  autogen.sh: allow calling from out-of-tree
+	  Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com>
+	  https://bugzilla.gnome.org/show_bug.cgi?id=692309
+
+2013-01-22 19:26:09 +0100  Mark Nauwelaerts <mnauw@users.sourceforge.net>
+
+	* gst/audioparsers/gstsbcparse.c:
+	  audioparsers: sbc: fix bogus compiler warning
+	  gst-plugins-good/gst/audioparsers/gstsbcparse.c: In function 'gst_sbc_parse_handle_frame':
+	  gst-plugins-good/gst/audioparsers/gstsbcparse.c:210:32: error: 'ch_mode' may be used uninitialized i
+
+2013-01-19 13:27:48 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* ext/pulse/pulsesink.c:
+	  pulsesink: don't error out if pa_stream_proplist_update() with new tags fails
+	  Shouldn't really happen these days, but if it does, it's not really
+	  a problem either.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=656068
+
+2013-01-16 18:01:23 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/elements/souphttpsrc.c:
+	  tests: skip souphttpsrc tests if there is no local http server to use
+	  Skip tests if the server couldn't be started or we can't connect
+	  to it for some reason (e.g. draconic build bot environments).
+
+2013-01-16 14:32:56 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+
+	* gst/audioparsers/gstsbcparse.c:
+	  autoparsers: use appropriate printf format for gsize
+
+2013-01-15 15:05:43 +0100  Martin Pitt <martinpitt@gnome.org>
+
+	* tests/check/Makefile.am:
+	  tests: use _1_0 variants for the various registry variables
+	  These override the variants without version suffix. Makes 'make check' work
+	  properly in environments that set the suffixed variant for 1.0, such as
+	  jhbuild.
+
+2013-01-11 19:24:43 +0400  Alexey Chernov <achernov@neosphere.com>
+
+	* sys/osxvideo/cocoawindow.m:
+	* sys/osxvideo/osxvideosink.m:
+	  osxvideosink: Fix crash in osxvideosink with external window output
+
+2013-01-16 12:04:59 +0400  Alexey Chernov <achernov@neosphere.com>
+
+	* sys/osxvideo/cocoawindow.m:
+	  osxvideosink: Make GstGLView propagate input events to its parent view
+	  Fixes bug #691832
+
+2013-01-16 10:19:36 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/rtp/gstrtpsbcpay.c:
+	  rtpsbcpay: update some fields in the caps to their new name
+	  and to match the parser. "mode" got renamed to "channel-mode"
+	  and "allocation" to "allocation-method".
+
+2013-01-15 17:44:33 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
+	* docs/plugins/gst-plugins-good-plugins-sections.txt:
+	* docs/plugins/gst-plugins-good-plugins.args:
+	* docs/plugins/gst-plugins-good-plugins.hierarchy:
+	* docs/plugins/inspect/plugin-audioparsers.xml:
+	* docs/plugins/inspect/plugin-rtp.xml:
+	  docs: add sbcparse and rtpsbcpay to plugin docs
+
+2013-01-15 17:38:24 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/audioparsers/Makefile.am:
+	* gst/audioparsers/gstsbcparse.c:
+	* gst/audioparsers/gstsbcparse.h:
+	* gst/audioparsers/plugin.c:
+	  audioparsers: add SBC audio parser
+	  From-scratch rewrite, the bluez one was useless and broken.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690582
+
+2013-01-15 15:05:04 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From a72faea to a942293
+
+2013-01-10 12:38:13 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/rtp/Makefile.am:
+	* gst/rtp/gstrtp.c:
+	* gst/rtp/gstrtpsbcpay.c:
+	* gst/rtp/gstrtpsbcpay.h:
+	  rtp: import rtpsbcpay from bluez and port to 1.0
+	  Compiles, but not tested yet (sbc elements still need to be ported).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690582
+
+2013-01-09 19:59:16 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/dtmf/Makefile.am:
+	* gst/dtmf/gstdtmf.c:
+	* gst/dtmf/gstdtmfdetect.c:
+	* gst/dtmf/gstdtmfdetect.h:
+	* gst/dtmf/tone_detect.c:
+	* gst/dtmf/tone_detect.h:
+	  dtmf/spandsp: Move dtmfdetect to use libspandsp
+	  Remove our copy of the tone_detect.c file and use the original
+	  from libspandsp. Also move the element to the spandsp plugin.
+
+2011-02-13 17:51:45 -0800  Marcel Holtmann <marcel@holtmann.org>
+
+	* gst/rtp/gstrtpsbcpay.h:
+	  rtpsbcpay: Remove workaround for compiler warnings
+
+2010-05-19 16:59:30 +0200  Marcel Holtmann <marcel@holtmann.org>
+
+	* gst/rtp/gstrtpsbcpay.c:
+	  rtpsbcpay: Add pragma based workaround for GStreamer warnings
+
+2010-01-01 17:08:17 -0800  Marcel Holtmann <marcel@holtmann.org>
+
+	* gst/rtp/gstrtpsbcpay.c:
+	* gst/rtp/gstrtpsbcpay.h:
+	  rtpsbcpay: Update copyright information
+
+2009-01-30 00:31:15 +0100  Marcel Holtmann <marcel@holtmann.org>
+
+	* gst/rtp/gstrtpsbcpay.c:
+	  rtpsbcpay: Fix signed/unsigned comparison issue within GStreamer plugin
+
+2009-01-01 19:33:20 +0100  Marcel Holtmann <marcel@holtmann.org>
+
+	* gst/rtp/gstrtpsbcpay.c:
+	* gst/rtp/gstrtpsbcpay.h:
+	  rtpsbcpay: Update copyright information
+
+2008-12-23 05:25:50 +0100  Marcel Holtmann <marcel@holtmann.org>
+
+	* gst/rtp/gstrtpsbcpay.h:
+	  rtpsbcpay: First attempt in fixing compiler warnings (still needs cleanup)
+
+2008-12-20 21:42:49 +0200  Johan Hedberg <johan.hedberg@nokia.com>
+
+	* gst/rtp/gstrtpsbcpay.c:
+	  rtpsbcpay: More coding style fixes
+
+2008-02-29 19:37:15 +0000  Luiz Augusto von Dentz <luiz.dentz@openbossa.org>
+
+	* gst/rtp/gstrtpsbcpay.c:
+	  rtpsbcpay: Remove possible extra memcpy for gstreamer plugin.
+
+2008-02-28 19:38:53 +0000  Luiz Augusto von Dentz <luiz.dentz@openbossa.org>
+
+	* gst/rtp/gstrtpsbcpay.c:
+	  rtpsbcpay: Fix bug sending empty packages and remove a buffer copy.
+
+2008-02-20 13:37:00 +0000  Luiz Augusto von Dentz <luiz.dentz@openbossa.org>
+
+	* gst/rtp/gstrtpsbcpay.c:
+	  rtpsbcpay: Fix runtime warnings of gstreamer plugin.
+
+2008-02-19 19:49:24 +0000  Luiz Augusto von Dentz <luiz.dentz@openbossa.org>
+
+	* gst/rtp/gstrtpsbcpay.c:
+	  rtpsbcpay: Update gstreamer plugin to use new sbc API.
+
+2008-02-02 03:37:05 +0000  Marcel Holtmann <marcel@holtmann.org>
+
+	* gst/rtp/gstrtpsbcpay.c:
+	* gst/rtp/gstrtpsbcpay.h:
+	  rtpsbcpay: Update copyright information
+
+2008-01-30 14:21:43 +0000  Luiz Augusto von Dentz <luiz.dentz@openbossa.org>
+
+	* gst/rtp/gstrtpsbcpay.c:
+	  rtpsbcpay: Fixes gstreamer caps and code cleanup.
+
+2008-01-24 14:25:29 +0000  Luiz Augusto von Dentz <luiz.dentz@openbossa.org>
+
+	* gst/rtp/gstrtpsbcpay.c:
+	  rtpsbcpay: Fix gtreamer payloader sending fragmented frames.
+
+2008-01-23 19:17:33 +0000  Luiz Augusto von Dentz <luiz.dentz@openbossa.org>
+
+	* gst/rtp/gstrtpsbcpay.c:
+	* gst/rtp/gstrtpsbcpay.h:
+	  rtpsbcpay: Fix use of gstreamer plugin with rhythmbox and banshee and rtp timestamps.
+
+2008-01-23 13:14:02 +0000  Luiz Augusto von Dentz <luiz.dentz@openbossa.org>
+
+	* gst/rtp/gstrtpsbcpay.c:
+	* gst/rtp/gstrtpsbcpay.h:
+	  rtpsbcpay: Make a2dpsink to act like a bin and split the payloader.
+
+2013-01-08 16:27:42 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpsession.c:
+	  rtp: small improvements
+
+2013-01-07 15:50:33 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  jitterbuffer: refactor handle sync code
+	  Move the code that combines the last SR packet and the current jitterbuffer sync
+	  values into a sync structure, into its own function. We want to reuse this bit
+	  later.
+
+2013-01-07 15:45:10 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpsession.c:
+	  rtp: include downstream latency in SR calculations
+	  When we make a mapping between an RTP timestamp and an NTP timestamp, include
+	  the downstream latency applied to the sinks. This makes it possible to have
+	  both sinks run with different latencies and still have correct sync on the
+	  client. It also is more correct because the RTP timestamp in the SR report will
+	  actually correspond more closely to the NTP time it was sent on the server.
+	  For pipelines with high latency on the sender side, this actually allows a
+	  GStreamer receiver to perform synchronisation instead of dropping the RTCP
+	  packets.
+
+2013-01-07 14:25:14 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpsession.c:
+	  rtpsession: don't cast event functions
+	  There is no need to cast the event functions and only causes problems later when
+	  we change the signature later and things silently compiles wrong code.
+
+2013-01-07 14:23:34 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpsession.c:
+	  rtp: more debug
+
+2013-01-07 14:22:48 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/rtpsession.c:
+	  rtpsession: improve debug
+
+2013-01-02 00:03:27 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/udp/gstudpsrc.c:
+	  udpsrc: sanity check size of available packet data for reading to avoid memory waste
+	  On Windows and OS/X, _get_available_bytes() may not return the size
+	  of the next pending packet, but the size of all pending packets in
+	  the kernel-side buffer, which might be rather large depending on
+	  configuration. Sanity-check the size returned by _get_available_bytes()
+	  to make sure we never allocate more memory than the max. size for
+	  a packet, if it's an IPv4 socket.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=610364
+
+2013-01-04 10:03:32 +0100  Robert Krakora <rob.krakora@messagenetsystems.com>
+
+	* sys/v4l2/v4l2_calls.c:
+	  v4l2: Also handle the new ENOENT return value of VIDIOC_QUERYCTRL
+	  https://bugzilla.gnome.org/show_bug.cgi?id=691098
+
+2013-01-01 19:14:36 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/elements/souphttpsrc.c:
+	  tests: add test for souphttpsrc error handling with data
+	  https://bugzilla.gnome.org/show_bug.cgi?id=678429
+
+2012-06-22 21:56:52 +0000  Norbert Waschbuesch <nwaschbu@opentv.com>
+
+	* ext/soup/gstsouphttpsrc.c:
+	  souphttpsrc: error out properly when receiving data along with an error status
+	  When receiving an error code from the http server, such as 404,
+	  data might be sent along with it, like a web page. We don't want
+	  to output that data in this case, and we also want to pass the
+	  FLOW_ERROR return back to the base class, so it can stop properly.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=678429
+
+2013-01-01 12:20:20 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/plugins/gst-plugins-good-plugins.args:
+	  docs: update for new rtspsrc proxy-id and proxy-pw properties
+
+2013-01-01 12:19:23 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/plugins/Makefile.am:
+	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
+	* docs/plugins/gst-plugins-good-plugins-sections.txt:
+	* docs/plugins/gst-plugins-good-plugins.hierarchy:
+	* docs/plugins/inspect/plugin-cairo.xml:
+	  docs: fix docs build and update after removal of old cairo elements
+
+2013-01-01 12:12:02 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* ext/cairo/Makefile.am:
+	* ext/cairo/gstcairo.c:
+	* ext/cairo/gstcairorender.c:
+	* ext/cairo/gstcairorender.h:
+	* ext/cairo/gsttextoverlay.c:
+	* ext/cairo/gsttextoverlay.h:
+	* ext/cairo/gsttimeoverlay.c:
+	* ext/cairo/gsttimeoverlay.h:
+	  cairo: remove old cairo-based text renderering element
+	  They haven't worked well or at all in a very long time
+	  and were rather bit-rotten, and there's no need for them
+	  any more.
+
+2013-01-01 11:52:09 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* configure.ac:
+	* ext/cairo/.gitignore:
+	* ext/cairo/Makefile.am:
+	* ext/cairo/gstcairo-marshal.list:
+	* ext/cairo/gstcairo.c:
+	* ext/cairo/gstcairooverlay.c:
+	* ext/cairo/gstcairooverlay.h:
+	* tests/examples/Makefile.am:
+	* tests/examples/cairo/Makefile.am:
+	* tests/examples/cairo/cairo_overlay.c:
+	  cairo: port cairooverlay to 0.11
+	  The other elements are not that interesting now that we're
+	  using pangocairo in the pango plugin, and should probably
+	  just be removed.
+
+2012-12-31 18:59:18 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/examples/rtp/server-decodebin-H263p-AMR.sh:
+	  examples: check for uri argument in decodebin-h264p-amr server example
+	  Otherwise people get a rather confusing error message.
+
+2012-12-31 00:22:27 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/rtsp/gstrtspsrc.c:
+	* gst/rtsp/gstrtspsrc.h:
+	  rtspsrc: add "proxy-id" and "proxy-pw" properties
+	  to match souphttpsrc. user/password passed via the URI
+	  will still take precedence though.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=395427
+
+2012-12-25 16:48:43 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* sys/oss4/oss4-sink.c:
+	  oss4sink: notify "volume" property on open to make apps query initial volume
+	  The initial volume might not be the property default, so
+	  emit a notify on the volume property to make apps get
+	  an up-to-date reading of the current volume.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=631053
+
+2012-12-20 17:12:30 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: fix cmd comparison
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=690476
+
+2012-12-20 17:12:20 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: add some more debug
+
+2012-12-20 16:44:24 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* ext/raw1394/gst1394clock.c:
+	  1394clock: mark our clock type as OTHER
+
+2012-12-20 16:15:13 +0100  Jonas Holmberg <jonashg@axis.com>
+
+	* tests/check/elements/rtp-payloading.c:
+	  tests: add jpegpay unit test
+	  See also https://bugzilla.gnome.org/show_bug.cgi?id=684955
+
+2012-12-20 15:55:02 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* ext/jpeg/gstjpegenc.c:
+	* ext/jpeg/gstjpegenc.h:
+	  jpegenc: pass flowreturn upstream
+
+2012-09-27 15:42:56 +0200  Jonas Holmberg <jonashg@axis.com>
+
+	* gst/rtp/gstrtpjpegpay.c:
+	  rtpjpegpay: handle width and height > 2040
+	  If width or height is greater than 2040 set width and height to zero in
+	  the rtp header and add x-dimensions to outcaps.
+	  Solves #684955
+
+2012-12-20 13:03:41 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/avi/gstavidemux.c:
+	  avidemux: cleanup in flag define
+
+2012-12-20 13:02:57 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/avi/gstavidemux.c:
+	  avidemux: improve debug
+
+2012-12-18 15:56:59 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+
+	* ext/wavpack/gstwavpackenc.c:
+	  wavpack: use appropriate printf format for gsize
+
+2012-12-18 15:55:43 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+
+	* ext/taglib/gstid3v2mux.cc:
+	  taglib: use appropriate printf format for gsize
+
+2012-12-18 15:54:08 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+
+	* ext/gdk_pixbuf/gstgdkpixbufdec.c:
+	  gdkpixbuf: use appropriate printf format for gsize
+
+2012-12-18 15:51:46 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+
+	* gst/rtp/gstrtpgstdepay.c:
+	  rtp: use appropriate printf format for gsize
+
+2012-12-18 15:46:56 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+
+	* gst/deinterlace/gstdeinterlace.c:
+	  deinterlace: use appropriate printf format for gsize
+
+2012-12-17 16:35:56 +0100  Philippe Normand <philn@igalia.com>
+
+	* gst/interleave/interleave.c:
+	* gst/interleave/interleave.h:
+	  interleave: set src pad caps upon last sink pad CAPS event
+	  Gather caps on all sink pads before setting the src pad caps. This is
+	  specially needed when the audio channel mapping is set on the sink
+	  pads and the element needs to preserve it on its src pad.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690267
+
+2012-12-17 22:55:12 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/matroska/matroska-read-common.c:
+	  matroskademux: skip empty tags
+	  instead of trying to add tags with empty strings, which
+	  causes criticals at runtime.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690358
+
+2012-12-17 15:17:12 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/audioparsers/gstaacparse.c:
+	* gst/audioparsers/gstac3parse.c:
+	* gst/audioparsers/gstamrparse.c:
+	* gst/audioparsers/gstdcaparse.c:
+	* gst/audioparsers/gstflacparse.c:
+	* gst/audioparsers/gstmpegaudioparse.c:
+	* gst/audioparsers/gstwavpackparse.c:
+	  audioparsers: Make sure the caps are actually writable before changing them
+
+2012-12-17 15:01:02 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/audioparsers/gstaacparse.c:
+	* gst/audioparsers/gstac3parse.c:
+	* gst/audioparsers/gstamrparse.c:
+	* gst/audioparsers/gstdcaparse.c:
+	* gst/audioparsers/gstflacparse.c:
+	* gst/audioparsers/gstmpegaudioparse.c:
+	* gst/audioparsers/gstwavpackparse.c:
+	  audioparsers: Use the peer caps for restrictions instead of the srcpad allowed caps
+	  Otherwise we will intersect with the srcpad template caps and add all the caps fields
+	  that the parser will ever set, no matter if downstream restricts this field or not.
+	  This requires upstream to set this field on the caps to successfully negotiate.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690184
+
+2012-12-14 22:25:08 +0000  Koop Mast <kwm@rainbow-runner.nl>
+
+	* configure.ac:
+	* sys/v4l2/gstv4l2object.h:
+	  v4l2: Teach where the videodev2.h header lives on freebsd.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690233
+
+2012-12-16 23:27:41 +0000  Alexey Fisher <bug-track@fisher-privat.net>
+
+	* gst/matroska/matroska-mux.c:
+	  matroskamux: set appropriate block header flag for VP8 invisible frames
+	  Useful for debugging mostly.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=654259
+
+2012-12-16 15:25:03 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/plugins/Makefile.am:
+	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
+	* docs/plugins/gst-plugins-good-plugins-sections.txt:
+	* docs/plugins/gst-plugins-good-plugins.args:
+	* docs/plugins/gst-plugins-good-plugins.hierarchy:
+	* docs/plugins/inspect/plugin-rtpmanager.xml:
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	  docs: add rtpmux and rtpdtmfmux to plugin docs
+	  https://bugzilla.gnome.org/show_bug.cgi?id=629117
+
+2012-12-16 15:13:38 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/rtpmanager/Makefile.am:
+	* gst/rtpmanager/gstrtpmanager.c:
+	* gst/rtpmanager/gstrtpmuxer.c:
+	* tests/check/Makefile.am:
+	* tests/check/elements/.gitignore:
+	  rtpmanager: move rtpmux and rtpdtmfmux elements from -bad
+	  https://bugzilla.gnome.org/show_bug.cgi?id=629117
+
+2012-11-03 20:38:00 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpdtmfmux.h:
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	* gst/rtpmanager/gstrtpmuxer.c:
+	* tests/check/elements/rtpmux.c:
+	  rtpmux: Fix FSF address
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687520
+
+2012-10-17 17:34:26 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Use gst_element_class_set_static_metadata()
+	  where possible. Avoids some string copies. Also re-indent
+	  some stuff. Also some indent fixes here and there.
+
+2012-09-10 20:38:14 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	* tests/check/elements/rtpmux.c:
+	  rtpmux: Misc fix for 0.11
+	  Convert the incoming caps before proxying them
+	  Clear the last_pad when going to ready
+	  tests: Implement accept_caps, don't leak event
+
+2012-07-17 16:39:02 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: update for RTP buffer api changes
+
+2012-04-05 18:02:56 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmuxer.c:
+	  rtpmux: Update for GST_PLUGIN_DEFINE() API changes
+
+2012-04-02 11:07:18 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: fix compilation
+
+2012-03-11 19:06:59 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: fix for caps api changes
+
+2012-01-26 06:58:46 -0500  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Fix compiler warnings
+
+2012-01-29 18:01:05 +0000  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Unref non-forwarded events
+	  Also, don't unref forwarded ones
+
+2012-01-28 16:57:03 +0000  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: resync iterator on resync
+
+2012-01-27 12:08:52 +0100  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	  rtpmux: Re-push sticky events on input pad change
+
+2012-01-25 15:43:01 +0100  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Don't leak gvalue from iterator
+
+2012-01-25 16:46:44 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: more porting
+
+2012-01-24 14:20:52 +0100  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	* tests/check/elements/rtpmux.c:
+	  rtpmux: port to 0.11
+
+2011-11-04 12:22:37 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: make request pads take _%u
+
+2011-04-14 14:34:26 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	  rtpdtmfmux: Add last-stop to dtmf-event upstream events
+	  Add the running time of the last outputted buffer to the
+	  upstream "dtmf-event" events so that the dtmf source does not
+	  leave a gap.
+
+2010-11-25 19:21:11 +0100  Edward Hervey <bilboed@bilboed.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Remove dead assignments
+
+2010-10-19 13:43:14 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: add missing G_PARAM_STATIC_STRINGS flags
+	  Canonicalize property names as needed.
+
+2010-09-30 16:07:29 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Improve documentation
+	  Add an example pipeline, and try to explain a bit more what it does.
+
+2010-09-24 13:29:55 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	  rtpdtmfmux: remove unused variable
+
+2010-09-24 13:25:22 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	  rtpdtmfmux: remove unused signal boilerplate
+
+2010-09-24 13:24:48 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: no need to ref pad in _chain()
+
+2010-08-25 22:56:03 -0400  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Unlock the right mutex
+	  The mutex locked is for the 'mux' object, but we unlock the
+	  pad, which means that if the rtpmux gets a flush, then the
+	  object lock will stay locked forever, causing it to freeze
+	  the next time it tries to take it.
+	  Fixes bug #627991
+
+2010-07-01 15:19:12 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	  rtpmux: Add support for GstBufferList
+	  Factor out most of the buffer handling and implement a chain_list
+	  function. Also, the DTMF muxer has been modified to just have a
+	  function to accept or reject a buffer instead of having to subclass
+	  both chain and chain_list.
+
+2010-07-01 15:15:49 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Don't leak invalid buffers
+
+2010-06-03 10:43:20 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	  rtpmux: fix missing debug log message argument
+
+2010-05-10 18:37:55 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	  rtpdtmfmux: Add some debug messages
+
+2010-05-07 18:56:57 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpdtmfmux.h:
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	  rtpdtmfmux: Remove stream-lock event handling
+
+2010-05-07 18:54:49 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	  rtpdtmfmux: Update doc for simplification
+
+2010-05-07 18:40:30 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* tests/check/elements/rtpmux.c:
+	  tests: Change tests to not use the priority pads instead of the events
+
+2010-05-06 19:51:59 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpdtmfmux.h:
+	  rtpdtmfmux: Drop buffers on non-priority sinks when something is incoming on the priority sink
+
+2010-05-06 18:11:40 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	  rtpdtmfmux: Add priority sink pads
+
+2010-05-07 17:15:47 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	  rtpdtmfmux: Cleanup event function
+
+2010-05-07 16:42:22 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	* tests/check/elements/rtpmux.c:
+	  rtpmux: Aggregate incoming segments
+
+2010-05-06 19:09:48 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	  rtpdtmfmux: Update documentation
+
+2010-05-06 18:10:45 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	  rtpmux: Simplify request pad creation
+
+2010-03-21 21:39:18 +0100  Benjamin Otte <otte@redhat.com>
+
+	* tests/check/elements/rtpmux.c:
+	  Add -Wmissing-declarations -Wmissing-prototypes to configure flags
+	  And fix all warnings
+
+2010-03-18 17:30:26 +0100  Benjamin Otte <otte@redhat.com>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: gst_element_class_set_details => gst_element_class_set_details_simple
+
+2009-11-18 16:38:33 +0100  unknown <havard.graff@.eu.tandberg.int>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: update the current_ssrc from the caps
+	  Fixes #604101
+
+2009-12-09 14:42:21 +0100  HÃ¥vard Graff <havard.graff@tandberg.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: release pads when disposing
+	  Because of an allocated priv (GstRTPMuxPadPrivate), the element will
+	  leak memory if not gst_rtp_mux_release_pad() is called. This would
+	  previously only happen if release_request_pad() was called explicitly,
+	  somthing that should not be neccesary.
+	  Fixes #604099
+
+2009-12-09 13:40:43 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	  dtmfmux: method name cleanups
+
+2009-10-08 19:06:26 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* tests/check/elements/rtpmux.c:
+	  tests: Add test for rtpdtmfmux locking
+
+2009-09-28 19:54:53 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* tests/check/elements/rtpmux.c:
+	  tests: Add unit test for rtpmux
+
+2009-09-28 13:36:44 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Don't ignore requested pad name
+
+2009-07-29 17:23:31 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Remove empty finalize
+
+2009-07-21 15:31:33 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Free the pad private data on pad release
+	  Free the pad private data on pad release instead of using a weak ref,
+	  which is not thread safe. Also, lock the content of the pad private using the element's
+	  object lock.
+
+2009-04-28 16:10:21 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Reject wrong caps
+
+2009-04-28 16:03:19 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Fix leak Fixed a leak discovered by Laurent Glayal <spegle@yahoo.fr>
+
+2009-04-28 15:58:41 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Fix leak
+	  Fixed a leak discovered by Laurent Glayal <spegle@yahoo.fr>
+
+2009-04-22 18:01:07 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Fix warning
+
+2009-04-20 20:00:15 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Set different caps depending on the input
+
+2009-04-22 16:25:07 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Only free pad private when pad is disposed
+
+2009-04-20 18:41:39 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Remove useless caps mangling
+
+2009-04-20 18:36:42 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Rename variable for more clarity
+
+2009-04-20 17:43:39 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Use GST_BOILERPLATE
+
+2009-04-20 17:42:40 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpdtmfmux.h:
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Do the includes locally
+
+2009-04-15 13:23:01 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Add GST_DEBUG_FUNCPTRs
+
+2009-04-15 13:15:55 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	  rtpdtmfmux: Release locked pad on release_pad
+	  Release the special pad if the pad is removed from the muxer.
+
+2009-04-15 13:09:27 -0400  Laurent Glayal <spglegle@yahoo.fr>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	  rtpdtmfmux: Release special on pad dispose
+	  Fixes #577690
+
+2009-02-25 11:45:05 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpmux.c:
+	  docs: various doc fixes
+	  No short-desc as we have them in the element details.
+	  Also keep things (Makefile.am and sections.txt) sorted.
+	  Reword ambigous returns. No text after since please.
+
+2009-02-10 17:02:24 +0000  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpmuxer.c:
+	  rtpmux: Move rtpmux from gst-plugins-farsight to -bad
+
+2009-02-20 17:45:50 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpdtmfmux.h:
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	* gst/rtpmanager/gstrtpmuxer.c:
+	  rtpmux: Re-indent to Gst style
+
+2009-02-10 19:11:15 +0000  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Document rtp muxer a bit
+
+2009-02-20 13:30:49 -0500  Laurent Glayal <spglegle@yahoo.fr>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpdtmfmux.h:
+	  rtpmux: Add signals before stream lock and after unlocking
+
+2009-02-18 20:18:46 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Let ssrc through getcaps
+
+2009-02-18 19:58:58 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Rename have_base to have_ts_base
+
+2009-02-18 18:14:52 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	  rtpmux: Protect the seqnum with object lock in rtpmux
+
+2009-02-18 18:07:44 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.h:
+	  rtpmux: Remove unused sink_ts_base
+
+2009-02-18 15:20:58 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Have getcaps to force the same clockrate on all pads
+
+2009-02-18 17:05:13 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Validate RTP data in RTP Mux
+
+2009-02-18 14:16:00 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	  rtpmux: Remove unused clock-rate property
+
+2009-02-18 13:56:36 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpdtmfmux.h:
+	  rtpmux: Clarify locking in rtpdtmfmux
+
+2009-02-18 13:32:56 -0500  Laurent Glayal <spglegle@yahoo.fr>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Missing format parameter
+
+2008-12-01 17:55:22 -0500  HÃ¥vard Graff <havard.graff@tandberg.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Update seqnum base in rtp muxer
+	  With help from Wim
+
+2008-12-01 17:54:58 -0500  HÃ¥vard Graff <havard.graff@tandberg.com>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Fix some more leaks
+
+2008-12-01 17:48:29 -0500  HÃ¥vard Graff <havard.graff@tandberg.com>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	  rtpmux: Fix leak
+
+2008-09-29 15:03:05 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Don't unref caps we don't know (thanks Wim)
+
+2008-08-12 12:48:02 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Put per-buffer debug at level LOG
+
+2008-08-12 12:47:14 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Make debug print accurate
+
+2008-08-12 12:46:23 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Set our caps on the buffers
+
+2008-08-12 12:46:07 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Take the clock-base stored from the last setcaps
+
+2008-08-12 12:41:59 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Store the clock-base on setcaps
+
+2008-08-12 12:30:52 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Add padprivate to the request pads
+
+2008-08-11 21:20:06 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Make indentation more correct
+
+2008-08-11 21:05:34 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Fix typo
+
+2008-08-11 21:03:22 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Set seqnum-base and clock-base in caps from rtpmuxer
+
+2007-08-15 13:50:38 +0000  Zeeshan Ali <first.last@nokia.com>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	  rtpmux: more debug
+	  20070815135038-f3f1e-9c7a5490a525c6e8753cb1b8c03354df99132b5c.gz
+
+2007-08-20 18:50:32 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: missing comment
+	  20070820185032-4f0f6-0ab67b6ac40dd4e35a8fe53f3cb6daff65ce43b9.gz
+
+2007-07-12 19:53:36 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Make buffer writable before writing into it
+	  20070712195336-3e2dc-91a5fb797cfa4919d4e2f9a728c6d6fbd3b83d93.gz
+
+2007-07-06 20:24:59 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Set pads active when adding them to a potentially running element
+	  20070706202459-3e2dc-a3731f885725594def0a7be997fc7b3a739ee967.gz
+
+2007-06-07 12:01:21 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Fix multiple ref leaks (patches by SP GLE)
+	  20070607120121-3e2dc-061e9ef7a47b1b84fa8f8092f4b8bcc0e6db8c8c.gz
+
+2007-05-28 15:25:05 +0000  Zeeshan Ali <first.last@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: send event to all src pads
+	  20070528152505-f3f1e-039216c73dc93f64c49962c77a0253cb9cfec4d3.gz
+
+2007-05-28 12:37:49 +0000  Zeeshan Ali <first.last@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: print a warning if receive an error iterating sinkpads
+	  20070528123749-f3f1e-4c1eb3f511b5610143610a65a94d117f2c3d2580.gz
+
+2007-05-28 12:28:08 +0000  Zeeshan Ali <first.last@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: deal with all the gst_iterator_next() return values
+	  20070528122808-f3f1e-d301644c3be7633ec6dc5e28596e9346d2da6a50.gz
+
+2007-05-25 12:31:16 +0000  Zeeshan Ali <first.last@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Return correct value from the event handler
+	  20070525123116-f3f1e-131b37b5f4521618fe2f1320409a47e65b35ad2d.gz
+
+2007-05-25 10:27:09 +0000  Zeeshan Ali <first.last@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Ville's original patch to fix the traversal of dtmf event
+	  20070525102709-f3f1e-6c41d1ef934068a4f4e810e7e981b420075b0c98.gz
+
+2007-03-29 13:52:50 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Set the correct ts-offset on the get_prop value
+	  20070329135250-65035-a43e222d91d57c0a61cb3287586aaa29abf78674.gz
+
+2007-03-29 13:52:23 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Refactorize state_change
+	  20070329135223-65035-23a0107b2e397710f035c6e88cc0e49b65bb4d5d.gz
+
+2007-03-29 13:36:22 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	  rtpmux: set SSRC on the packets
+	  20070329133622-65035-1be6e0aa85a71389f7d257b9cd3e13a73d6b745b.gz
+
+2007-03-29 13:19:36 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Code clean-up and more debug output
+	  20070329131936-65035-9d499e209e0d7a409c3aa0d1040778babf076179.gz
+
+2007-03-28 11:22:19 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	  rtpmux: Use own clock-base
+	  20070328112219-65035-1ba5fefbc65059e9b0c860528a31062ceb6a7331.gz
+
+2007-03-23 16:31:39 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	  rtpmux: Only accept RTP streams that have the same clock-rate
+	  20070323163139-65035-fc0b17b0b8a7a041f48994c4f26e96568168bf95.gz
+
+2007-03-22 16:15:52 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	  rtpmux: Some more code-cleanups
+	  20070322161552-65035-bda96165e146b4f1d5fea1cc9576a7ab3abebc9e.gz
+
+2007-03-22 15:42:51 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: return newpad instead of NULL and warn if failed to create a pad
+	  20070322154251-65035-cdb6651e61c2eb0205cc8c24693b43f98a2da718.gz
+
+2007-03-22 12:41:32 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Refactorize the RTPMux code
+	  20070322124132-65035-0a3278147546e33f687097a43b775b3f6aa99f93.gz
+
+2007-03-22 12:14:53 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	  rtpmux: Some more doc fixing
+	  20070322121453-65035-12d602272217b51bd97df4e5790024c399622dd3.gz
+
+2007-03-22 11:32:28 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	  rtpmux: More Refactoring
+	  20070322113228-65035-bae34a79599e7de5293ed77b022361ccff822bb9.gz
+
+2007-03-22 11:31:54 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	  rtpmux: More documentation
+	  20070322113154-65035-624850541a5b5fc3df231204be5a83d07239db28.gz
+
+2007-03-21 16:33:11 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	  rtpmux: Refactor the event handler function
+	  20070321163311-65035-987e7f25d1ab5335b79f44b277abf15e4e37d317.gz
+
+2007-03-21 14:52:44 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpdtmfmux.h:
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	* gst/rtpmanager/gstrtpmuxer.c:
+	  rtpmux: Add RTPDTMFMux element
+	  20070321145244-65035-9a01390b0dee3398e53199a1fa1d9352004f338e.gz
+
+2007-03-21 12:31:49 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	  rtpmux: Remove DTMF-specific code from RTP muxer and make it extendable
+	  20070321123149-65035-b8a8f55ff78eed8cbb0042e827885edfc5438242.gz
+
+2007-03-20 12:05:24 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Put more helpful description
+	  20070320120524-65035-db27a7cf6307b511aeb3d996d26e790e367a7bad.gz
+
+2007-03-16 15:16:41 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: remove the (commented-out) code for blocking the pads
+	  20070316151641-65035-0123af387951f88594797c722e882cfe70240aff.gz
+
+2007-03-16 13:14:44 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Drop buffers instead of blocking the sinkpads
+	  20070316131444-65035-9c1345ad96108881f455d4b55a7f623cd302d0ed.gz
+
+2007-03-14 17:16:18 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Implement stream locking, needed for DTMF
+	  20070314171618-65035-e4d24b1606ce0a3e2e739f01833f61e4d7555eac.gz
+
+2007-03-14 10:20:58 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: use GST_*_OBJECT instead of g_*
+	  20070314102058-65035-e2442888f2e3e5a3a7659ad7954a4fba34749ce2.gz
+
+2007-03-14 10:18:54 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: No need to manage pads, parent does that for us
+	  20070314101854-65035-ef5f4abde227102a1128835ab325905eae4c3726.gz
+
+2007-03-14 09:03:58 +0000  zeenix@gmail.com <zeenix@gmail.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: Fix copyright header
+	  20070314090358-d014a-3a6d3eeeaaf5cb8ca3bca6a33e99a551f598bd48.gz
+
+2007-03-07 08:53:07 +0000  zeeshan.ali@nokia.com <zeeshan.ali@nokia.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	  rtpmux: The first implementation of RTP muxer
+	  20070307085307-65035-833402413f99cb3f8be4883e92bad4c8722510c9.gz
+
+2012-12-15 21:27:01 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/audiofx/gstscaletempo.c:
+	* gst/audiofx/gstscaletempo.h:
+	  scaletempo: no need for a private struct
+
+2012-12-14 15:13:31 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/plugins/inspect/plugin-rtp.xml:
+	* docs/plugins/inspect/plugin-shout2send.xml:
+	* docs/plugins/inspect/plugin-videocrop.xml:
+	* docs/plugins/inspect/plugin-videofilter.xml:
+	  docs: update plugin docs
+
+2012-12-14 15:13:19 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/plugins/Makefile.am:
+	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
+	* docs/plugins/gst-plugins-good-plugins-sections.txt:
+	* docs/plugins/gst-plugins-good-plugins.args:
+	* docs/plugins/gst-plugins-good-plugins.hierarchy:
+	* docs/plugins/inspect/plugin-audiofx.xml:
+	  docs: add scaletempo to docs
+
+2012-11-06 13:36:39 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/audiofx/Makefile.am:
+	* gst/audiofx/audiofx.c:
+	  audiofx: move scaletempo element from -bad
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687262
+
+2012-10-23 14:33:21 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/audiofx/gstscaletempo.c:
+	  scaletempo: Fix event leak
+
+2012-10-23 14:32:24 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/audiofx/gstscaletempo.c:
+	  scaletempo: Fix timestamp tracking
+
+2012-10-23 14:06:37 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/audiofx/gstscaletempo.c:
+	  scaletempo: Implement LATENCY query
+
+2012-10-23 13:39:17 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/audiofx/gstscaletempo.c:
+	* gst/audiofx/gstscaletempo.h:
+	  scaletempo: Store instance private data in the instance struct
+	  Getting it over and over again via G_TYPE_INSTANCE_GET_PRIVATE()
+	  is really slow.
+
+2012-10-17 17:34:26 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/audiofx/gstscaletempo.c:
+	  scaletempo: use gst_element_class_set_static_metadata()
+	  where possible. Avoids some string copies. Also re-indent
+	  some stuff. Also some indent fixes here and there.
+
+2012-09-14 17:08:49 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audiofx/gstscaletempo.c:
+	  scaletempo: replace gst_element_class_set_details_simple with gst_element_class_set_metadata
+
+2012-09-14 16:45:34 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/audiofx/gstscaletempo.c:
+	  scaletempo: ffmpegcolorspace is no more
+
+2012-04-05 18:02:56 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/audiofx/gstscaletempoplugin.c:
+	  scaletempo: Update for GST_PLUGIN_DEFINE() API changes
+
+2012-03-18 18:32:55 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audiofx/gstscaletempo.c:
+	  scaletempo: port to 0.11
+
+2011-07-07 10:52:50 -0700  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/audiofx/gstscaletempo.c:
+	  scaletempo: improve the docs
+	  Fix the syntax, add more explanation and xref the properties.
+
+2011-03-22 13:46:42 +0100  Chris E Jones <chris@chrisejones.com>
+
+	* gst/audiofx/gstscaletempo.c:
+	  scaletempo: Correctly handle newsegment events with stop==-1
+	  Fixes bug #645420.
+
+2010-10-19 13:43:14 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/audiofx/gstscaletempo.c:
+	  scaletempo: add missing G_PARAM_STATIC_STRINGS flags
+	  Canonicalize property names as needed.
+
+2010-03-18 17:30:26 +0100  Benjamin Otte <otte@redhat.com>
+
+	* gst/audiofx/gstscaletempo.c:
+	  scaletempo: gst_element_class_set_details => gst_element_class_set_details_simple
+
+2009-11-05 13:40:38 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+	* gst/audiofx/gstscaletempo.c:
+	  scaletempo: properly update new segments
+	  Scaletempo was missing an update of 'stop' in
+	  new segment parameters when pushing it downstream,
+	  which caused files to end earlier when rate < 1.
+	  Fixes #599903
+	  Based on patch by: Bastian Hecht <hechtb@gmail.com>
+
+2009-06-14 20:00:51 +0200  Maximilian Högner <pbmaxi@hoegners.de>
+
+	* gst/audiofx/gstscaletempo.c:
+	  scaletempo: Explicitely cast to signed integers to fix a segfault
+	  Fixes bug #585660.
+
+2009-02-13 12:18:48 -0800  Michael Smith <msmith@songbirdnest.com>
+
+	* gst/audiofx/gstscaletempo.c:
+	  scaletempo: Do not use void pointer arithmetic.
+
+2008-10-30 12:13:18 +0000  Stefan Kost <ensonic@users.sourceforge.net>
+
+	  scaletempo: Return the result of parent_class->event()
+	  Original commit message from CVS:
+	  * gst/audiofx/gstscaletempo.c:
+	  Return the result of parent_class->event().
+
+2008-08-31 12:20:33 +0000  Rov Juvano <rovjuvano@users.sourceforge.net>
+
+	  Add scaletempo plugin, which allows to scale the speed of audio without changing the pitch by handling seeks with a r...
+	  Original commit message from CVS:
+	  Patch by: Rov Juvano <rovjuvano at users dot sourceforge dot net>
+	  * configure.ac:
+	  * docs/plugins/Makefile.am:
+	  * docs/plugins/gst-plugins-bad-plugins-docs.sgml:
+	  * docs/plugins/gst-plugins-bad-plugins-sections.txt:
+	  * docs/plugins/inspect/plugin-scaletempo.xml:
+	  * examples/scaletempo/Makefile.am:
+	  * examples/scaletempo/demo-gui.c: (pop_status_bar),
+	  (status_bar_printf), (demo_gui_seek_bar_format), (update_position),
+	  (demo_gui_seek_bar_change), (demo_gui_do_change_rate),
+	  (demo_gui_do_set_rate), (demo_gui_do_rate_entered),
+	  (demo_gui_do_toggle_advanced), (demo_gui_do_toggle_disabled),
+	  (demo_gui_do_seek), (demo_gui_do_play), (demo_gui_do_pause),
+	  (demo_gui_do_play_pause), (demo_gui_do_open_file),
+	  (demo_gui_do_playlist_prev), (demo_gui_do_playlist_next),
+	  (demo_gui_do_about_dialog), (demo_gui_do_quit),
+	  (demo_gui_request_set_stride), (demo_gui_request_set_overlap),
+	  (demo_gui_request_set_search), (demo_gui_rate_changed),
+	  (demo_gui_playing_started), (demo_gui_playing_paused),
+	  (demo_gui_playing_ended), (demo_gui_player_errored),
+	  (demo_gui_stride_changed), (demo_gui_overlap_changed),
+	  (demo_gui_search_changed), (demo_gui_set_player_func),
+	  (demo_gui_set_playlist_func), (build_gvalue_array),
+	  (create_action), (demo_gui_show_func), (demo_gui_set_player),
+	  (demo_gui_set_playlist), (demo_gui_show), (demo_gui_get_property),
+	  (demo_gui_set_property), (demo_gui_init), (demo_gui_class_init),
+	  (demo_gui_get_type):
+	  * examples/scaletempo/demo-gui.h:
+	  * examples/scaletempo/demo-main.c: (handle_error_message),
+	  (handle_quit), (main):
+	  * examples/scaletempo/demo-player.c: (no_pipeline),
+	  (demo_player_event_listener), (demo_player_state_changed_cb),
+	  (demo_player_eos_cb), (demo_player_build_pipeline), (_set_rate),
+	  (demo_player_scale_rate_func), (demo_player_set_rate_func),
+	  (_set_state_and_wait), (demo_player_load_uri_func),
+	  (demo_player_play_func), (demo_player_pause_func), (_seek_to),
+	  (demo_player_seek_by_func), (demo_player_seek_to_func),
+	  (demo_player_get_position_func), (demo_player_get_duration_func),
+	  (demo_player_scale_rate), (demo_player_set_rate),
+	  (demo_player_load_uri), (demo_player_play), (demo_player_pause),
+	  (demo_player_seek_by), (demo_player_seek_to),
+	  (demo_player_get_position), (demo_player_get_duration),
+	  (demo_player_get_property), (demo_player_set_property),
+	  (demo_player_init), (demo_player_class_init),
+	  (demo_player_get_type):
+	  * examples/scaletempo/demo-player.h:
+	  * gst/audiofx/Makefile.am:
+	  * gst/audiofx/gstscaletempo.c: (best_overlap_offset_float),
+	  (best_overlap_offset_s16), (output_overlap_float),
+	  (output_overlap_s16), (fill_queue), (reinit_buffers),
+	  (gst_scaletempo_transform), (gst_scaletempo_transform_size),
+	  (gst_scaletempo_sink_event), (gst_scaletempo_set_caps),
+	  (gst_scaletempo_get_property), (gst_scaletempo_set_property),
+	  (gst_scaletempo_base_init), (gst_scaletempo_class_init),
+	  (gst_scaletempo_init):
+	  * gst/audiofx/gstscaletempo.h:
+	  * gst/audiofx/gstscaletempoplugin.c: (plugin_init):
+	  Add scaletempo plugin, which allows to scale the speed of audio without
+	  changing the pitch by handling seeks with a rate!=1.0.
+	  Integrate it into the docs and add the example application for it.
+	  Fixes bug #537700.
+
+2012-12-13 12:36:20 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/elements/rtpjitterbuffer.c:
+	  check: add (but disable) more rtp jitterbuffer tests
+	  Tests need to be ported to 1.0 before they can be enabled but added here so they
+	  don't get forgotten.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=667838
+
+2012-01-13 01:11:31 +0100  Havard Graff <havard.graff@tandberg.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  jitterbuffer: bundle together late lost-events
+	  The scenario where you have a gap in a steady flow of packets of
+	  say 10 seconds (500 packets of with duration of 20ms), the jitterbuffer
+	  will idle up until it receives the first buffer after the gap, but will
+	  then go on to produce 499 lost-events, to "cover up" the gap.
+	  Now this is obviously wrong, since the last possible time for the earliest
+	  lost-events to be played out has obviously expired, but the fact that
+	  the jitterbuffer has a "length", represented with its own latency combined
+	  with the total latency downstream, allows for covering up at least some
+	  of this gap.
+	  So in the case of the "length" being 200ms, while having received packet
+	  500, the jitterbuffer should still create a timeout for packet 491, which
+	  will have its time expire at 10,02 seconds, specially since it might
+	  actually arrive in time! But obviously, waiting for packet 100, that had
+	  its time expire at 2 seconds, (remembering that the current time is 10)
+	  is useless...
+	  The patch will create one "big" lost-event for the first 490 packets,
+	  and then go on to create single ones if they can reach their
+	  playout deadline.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=667838
+
+2012-12-13 09:27:14 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: fix TCP reconnect
+	  Ignore other commands when reconnecting, otherwise the loop function would pause
+	  and the reconnection would not happen. Continue looping after doing a reconnect
+	  so that we have a chance to actually read the new data.
+
+2012-12-13 01:02:34 +0400  Руслан Ижбулатов <lrn1986@gmail.com>
+
+	* sys/directsound/gstdirectsoundsink.c:
+	* sys/directsound/gstdirectsoundsink.h:
+	* sys/waveform/gstwaveformsink.h:
+	  directsound, waveform: fix compilation errors caused by circular includes
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690124
+
+2012-12-12 17:35:04 +0000  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/jack/gstjack.c:
+	* ext/jack/gstjack.h:
+	* ext/jack/gstjackaudiosink.c:
+	* ext/jack/gstjackaudiosrc.c:
+	* ext/jack/gstjackutil.h:
+	* ext/libpng/gstpngenc.c:
+	* ext/pulse/pulseprobe.c:
+	* ext/pulse/pulsesink.c:
+	* ext/pulse/pulsesink.h:
+	* ext/pulse/pulsesrc.c:
+	* ext/pulse/pulseutil.c:
+	* ext/vpx/gstvp8enc.c:
+	* sys/oss/common.h:
+	* sys/oss/gstossaudio.c:
+	* sys/oss/gstosssrc.c:
+	* sys/oss4/oss4-audio.h:
+	  ext/sys: Fix some compilation errors caused by circular includes
+
+2012-12-12 12:07:34 +0100  Philippe Normand <philn@igalia.com>
+
+	* gst/interleave/deinterleave.c:
+	  deinterleave: properly set srcpad channel position
+	  The src pad caps always describe a single audio channel so only the
+	  first position matters if deinterleave is configured to keep channel
+	  positions in its src pads.
+
+2012-12-12 11:09:42 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: timeout on udpsrc is in nanoseconds
+
+2012-12-12 11:08:13 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/udp/gstudpsrc.c:
+	  udpsrc: improve timeouts
+	  Make it possible to set the timeout after we went to the READY state by using
+	  the timeout when checking the condition. This also makes it possible to set the
+	  timeout with a higher granularity than seconds.
+
+2012-12-11 13:00:46 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/deinterlace/gstdeinterlace.c:
+	* gst/deinterlace/gstdeinterlace.h:
+	* gst/deinterlace/gstdeinterlacemethod.c:
+	* gst/deinterlace/gstdeinterlacemethod.h:
+	* gst/deinterlace/tvtime/greedy.c:
+	* gst/deinterlace/tvtime/greedyh.c:
+	* gst/deinterlace/tvtime/linear.c:
+	* gst/deinterlace/tvtime/linearblend.c:
+	* gst/deinterlace/tvtime/scalerbob.c:
+	* gst/deinterlace/tvtime/tomsmocomp/TomsMoCompAll.inc:
+	* gst/deinterlace/tvtime/vfir.c:
+	* gst/deinterlace/tvtime/weave.c:
+	* gst/deinterlace/tvtime/weavebff.c:
+	* gst/deinterlace/tvtime/weavetff.c:
+	  deinterlace: add support for strides
+	  Implement stride support correctly by taking it from the GstVideoFrame.
+	  Propose a bufferpool upstream when not operating in passthrough.
+
+2012-09-27 12:17:58 -0700  Aleix Conchillo Flaque <aleix@oblong.com>
+
+	  rtspsrc: do not change state to PLAYING if currently chaning state
+	  * gst/rtsp/gstrtspsrc.c (gst_rtspsrc_play): state change might be
+	  happening in the application thread, so we don't change the state to
+	  PLAYING in the gstrtspsrc thread unless it is safe.
+	  A specific case is when chaning the state to NULL from the application
+	  thread. This will synchronously try to stop the task (with the element
+	  state lock acquired), but we will try a gst_element_set_state from
+	  gstrtspsrc thread which will block on the element state lock causing a
+	  deadlock.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=684312
+
+2012-12-10 11:44:26 +0000  Alexey Chernov <4ernov@gmail.com>
+
+	* sys/osxvideo/osxvideosink.m:
+	  osxvideosink: Fix resizing the Cocoa window on receiving new caps
+	  Fixes bug #689732.
+
+2012-11-30 20:37:47 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	* sys/v4l2/Makefile.am:
+	  v4l2src: link against -lrt for clock_gettime()
+	  Need to explicitly link against -lrt for clock_gettime(), which
+	  we don't get in the libs any more, because core moved the
+	  gmodule-no-export-2.0 bit into Requires.Private.
+	  Not required for newer glibc, but for older ones, so check for that.
+
+2012-11-30 17:22:59 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* ext/shout2/gstshout2.c:
+	  shout2send: accept audio/webm as well as video/webm
+	  https://bugzilla.gnome.org/show_bug.cgi?id=689336
+
+2012-11-30 17:20:18 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/matroska/matroska-mux.c:
+	* tests/check/elements/matroskamux.c:
+	  webmux: fix linking with shout2send element
+	  Shout2send only accepts webm format, not matroska, but due
+	  to a bug in matroskamux, webmmux's source pad is also created
+	  with the matroska source pad template as pad template, which
+	  makes the link function think it can't link webmmux to shout2send.
+	  Also add unit test.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=689336
+
+2012-11-27 11:13:37 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: use new option parser function
+
+2012-11-26 15:17:13 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/law/mulaw-conversion.c:
+	  law: fix accidental file permissions change
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687469
+
+2012-11-25 16:05:11 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2: remove unused define
+
+2012-11-25 14:16:09 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: avoid criticals if unknown fourcc has space at beginning or end
+	  https://bugzilla.gnome.org/show_bug.cgi?id=682936
+
+2012-11-24 19:32:51 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/videobox/gstvideobox.c:
+	  videobox: fix border filling for planar YUV formats
+	  We would get a green border instead of a black one, for
+	  example.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=684991
+
+2012-11-24 14:27:33 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/law/mulaw-conversion.c:
+	  mulaw: const-ify some arrays
+
+2012-11-02 12:38:44 -0400  Roland Krikava <rkrikava@gmail.com>
+
+	* gst/law/mulaw-conversion.c:
+	  mulawdec: fix integer overrun
+	  There might be more than 65535 samples in a chunk of data.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687469
+
+2012-11-22 11:34:31 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: pause the task instead of spinning
+	  Actually pause the loop task instead of spinning forever.
+
+2012-11-19 03:31:37 -0500  Joshua M. Doe <oss@nvl.army.mil>
+
+	* gst/videofilter/gstvideoflip.c:
+	  videoflip: Add gray 8/16 support
+
+2012-11-19 11:25:14 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From b497c4f to a72faea
+
+2012-11-16 15:38:29 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: handle segment event
+	  Make a segment event when we send a new range header to a client (first PLAY
+	  request or after a seek). Send the segment event in interleaved mode.
+	  Clean the segment event on cleanup
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688382
+
+2012-11-16 15:18:07 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: fix check for active streams
+	  A stream can be active without a srcpad yet and we want to send
+	  events on those streams as well.
+
+2012-11-16 13:31:04 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: create and add pads outside of lock
+	  Create and add the ghostpad for the new stream outside of the lock because it
+	  is not needed and causes deadlocks.
+
+2012-09-12 22:11:20 -0700  Aleix Conchillo Flaque <aleix@oblong.com>
+
+	  rtspsrc: allow client to disable reconnection
+	  * gst/rtsp/gstrtspsrc.[ch]: added new "udp-reconnect" property. Before,
+	  rtspsrc always tried to reconnect to the server when the RTSP
+	  connection was closed by the server. This property lets the user
+	  decide whether it wants rtspsrc to reconnect or not.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=683912
+
+2012-11-16 12:16:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: clear variables before retrying
+	  Else we might unref an old udpsrc twice in cleanup.
+
+2012-11-16 12:00:14 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: propose ports in multicast
+	  When the user configured a port-range, propose ports from this range
+	  as the multicast ports. The server is free to ignore this request but if it
+	  honours it, increment our ports so that we suggest the next port pair for the
+	  next stream.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=639420
+
+2012-11-16 11:58:53 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: add more debug
+
+2012-11-16 09:09:38 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/multifile/gstmultifilesink.c:
+	  multifilesink: post messages in max-size mode as well
+	  No reason not to really.
+
+2012-11-15 14:37:44 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/udp/gstudpsrc.c:
+	  udpsrc: post error before stopping
+
+2012-11-14 00:13:36 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/goom/gstgoom.c:
+	* gst/goom2k1/gstgoom.c:
+	* gst/rtp/gstrtpmp4adepay.c:
+	* gst/rtp/gstrtpmparobustdepay.c:
+	  gst_adapter_prev_timestamp -> gst_adapter_prev_pts
+	  https://bugzilla.gnome.org/show_bug.cgi?id=675598
+
+2012-11-12 19:23:41 +0100  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst/videofilter/gstvideoflip.c:
+	  videoflip: Add NV12/NV21 support
+	  https://bugzilla.gnome.org/show_bug.cgi?id=688225
+
+2012-11-12 13:01:23 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/vpx/gstvp8enc.c:
+	  vp8enc: Don't leak GstVideoCodecFrames that cause the creation of invisible frames
+	  Fixes bug #682714.
+
+2012-11-12 11:47:17 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/pulse/pulsesink.c:
+	  pulse: Use new GType for GThread instead of just G_TYPE_POINTER
+
+2012-11-12 11:14:34 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/rtpsource.c:
+	  rtpsource: protect against invalid RTP packets
+
+2012-11-12 10:44:01 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/libpng/gstpngdec.c:
+	  pngdec: Actually use the stop() vfunc implementation
+
+2012-11-12 10:31:59 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/vpx/gstvp8dec.c:
+	  vp8dec: Fix last commit
+
+2012-11-12 10:10:15 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/libpng/gstpngdec.c:
+	  pngdec: Keep the input state in reset()
+	  It's still valid after a flush and we might not get a new one.
+
+2012-11-12 10:08:57 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/vpx/gstvp8dec.c:
+	  vp8dec: Also destroy decoder in set_format() if it was created already
+	  Fixes a memory leak.
+
+2012-11-12 09:48:45 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/vpx/gstvp8dec.c:
+	  vp8dec: Don't clear input state in reset()
+	  The input state is still valid after flushing until
+	  new caps arrive.
+	  Fixes bug #688092.
+
+2012-11-10 18:21:28 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/videocrop/gstvideocrop.c:
+	  videocrop: add support for YV12
+	  We can do I420, so we can do YV12 as well.
+
+2012-11-10 12:39:08 +0100  Alessandro Decina <alessandro.d@gmail.com>
+
+	* gst/multifile/gstmultifilesink.c:
+	  multifilesink: don't write stream headers with key-unit-event
+	  Don't write stream headers, let upstream elements insert them in the stream if
+	  all_headers=true is set in key unit events.
+
+2012-11-09 13:27:16 +0100  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst/videocrop/gstvideocrop.c:
+	* gst/videocrop/gstvideocrop.h:
+	  videocrop: Add NV12/NV21 support
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687964
+
+2012-11-09 16:31:05 +0100  Debarshi Ray <rishi@gnu.org>
+
+	* ext/vpx/gstvp8dec.c:
+	  vp8dec: Don't give up so easily if failed to decode a frame
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687436
+
+2012-11-09 11:22:30 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/udp/gstudpsrc.c:
+	  udpsrc: Also clear GError
+
+2012-11-09 11:20:27 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/udp/gstudpsrc.c:
+	  udpsrc: Don't error out if we get an ICMP destination-unreachable message when trying to read packets
+	  See bug #529454 and #687782 and commit
+	  751f2bb3646f2beff3698c9f09900dbd0ea08abb
+
+2012-11-07 20:35:50 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* configure.ac:
+	  configure.ac: update courtesy of autoupdate
+
+2012-11-07 18:48:49 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* common:
+	* configure.ac:
+	  configure: let AG_GST_PLUGIN_DOCS check for python
+	  And update common for move from AS_PATH_PYTHON to AM_PATH_PYTHON,
+	  which as a side-effect should pick up newer python versions as
+	  well.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=563903
+
+2012-11-07 13:36:33 +0100  Christian Fredrik Kalager Schaller <uraeus@linuxrisin.org>
+
+	* gst/rtp/Makefile.am:
+	  Fix vp8rtp header names in Makefile
+
+2012-11-06 15:03:55 +0100  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst/videocrop/gstvideocrop.c:
+	* gst/videocrop/gstvideocrop.h:
+	* tests/check/elements/videocrop.c:
+	  videocrop: Add support for automatic cropping
+	  This change enable automatic cropping using -1 set to left, top, right or
+	  bottom property. In the case both side are set to automatic cropping, the
+	  croping will be done equally on both side (in the odd case, right and
+	  bottom cropping will be 1 pixel more).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687761
+
+2012-11-02 16:39:28 +0100  Debarshi Ray <rishi@gnu.org>
+
+	* ext/speex/gstspeexdec.c:
+	  speexdec: Don't unmap or finish_frame an invalid GstBuffer
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687464
+
+2012-11-06 13:22:58 +0100  Marc Leeman <marc.leeman@gmail.com>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtsp: the RTCP port number is inclusive
+	  The configured port number pair has its upper bound set to the maximum
+	  allowed RTCP port, inclusive.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=639420
+
+2012-11-03 20:38:00 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/dtmf/gstdtmfdetect.c:
+	* gst/dtmf/gstdtmfdetect.h:
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstdtmfsrc.h:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	* gst/dtmf/gstrtpdtmfdepay.h:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.h:
+	  Fix FSF address
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687520
+
+2012-11-04 00:07:18 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* ext/aalib/gstaasink.c:
+	* ext/aalib/gstaasink.h:
+	* ext/cairo/gstcairo.c:
+	* ext/cairo/gstcairooverlay.c:
+	* ext/cairo/gstcairooverlay.h:
+	* ext/cairo/gstcairorender.c:
+	* ext/cairo/gstcairorender.h:
+	* ext/cairo/gsttextoverlay.c:
+	* ext/cairo/gsttimeoverlay.c:
+	* ext/cairo/gsttimeoverlay.h:
+	* ext/dv/gstdv.c:
+	* ext/dv/gstdvdec.c:
+	* ext/dv/gstdvdec.h:
+	* ext/dv/gstdvdemux.c:
+	* ext/dv/gstdvdemux.h:
+	* ext/dv/gstsmptetimecode.c:
+	* ext/dv/gstsmptetimecode.h:
+	* ext/flac/gstflac.c:
+	* ext/flac/gstflacdec.c:
+	* ext/flac/gstflacdec.h:
+	* ext/flac/gstflacenc.c:
+	* ext/flac/gstflacenc.h:
+	* ext/flac/gstflactag.c:
+	* ext/flac/gstflactag.h:
+	* ext/gdk_pixbuf/gstgdkanimation.c:
+	* ext/gdk_pixbuf/gstgdkanimation.h:
+	* ext/gdk_pixbuf/gstgdkpixbufdec.c:
+	* ext/gdk_pixbuf/gstgdkpixbufdec.h:
+	* ext/gdk_pixbuf/gstgdkpixbufoverlay.h:
+	* ext/gdk_pixbuf/gstgdkpixbufplugin.c:
+	* ext/gdk_pixbuf/gstgdkpixbufsink.c:
+	* ext/gdk_pixbuf/gstgdkpixbufsink.h:
+	* ext/gdk_pixbuf/pixbufscale.c:
+	* ext/gdk_pixbuf/pixbufscale.h:
+	* ext/jack/gstjack.c:
+	* ext/jack/gstjack.h:
+	* ext/jack/gstjackaudioclient.c:
+	* ext/jack/gstjackaudioclient.h:
+	* ext/jack/gstjackaudiosink.c:
+	* ext/jack/gstjackaudiosink.h:
+	* ext/jack/gstjackaudiosrc.c:
+	* ext/jack/gstjackaudiosrc.h:
+	* ext/jack/gstjackringbuffer.h:
+	* ext/jack/gstjackutil.c:
+	* ext/jack/gstjackutil.h:
+	* ext/jpeg/gstjpeg.c:
+	* ext/jpeg/gstjpeg.h:
+	* ext/jpeg/gstjpegdec.c:
+	* ext/jpeg/gstjpegdec.h:
+	* ext/jpeg/gstjpegenc.c:
+	* ext/jpeg/gstjpegenc.h:
+	* ext/jpeg/gstsmokedec.c:
+	* ext/jpeg/gstsmokedec.h:
+	* ext/jpeg/gstsmokeenc.c:
+	* ext/jpeg/gstsmokeenc.h:
+	* ext/jpeg/smokecodec.c:
+	* ext/jpeg/smokecodec.h:
+	* ext/jpeg/smokeformat.h:
+	* ext/libcaca/gstcacasink.c:
+	* ext/libcaca/gstcacasink.h:
+	* ext/libpng/gstpng.c:
+	* ext/libpng/gstpng.h:
+	* ext/libpng/gstpngdec.c:
+	* ext/libpng/gstpngdec.h:
+	* ext/libpng/gstpngenc.c:
+	* ext/libpng/gstpngenc.h:
+	* ext/mikmod/README:
+	* ext/mikmod/gstmikmod.c:
+	* ext/mikmod/gstmikmod.h:
+	* ext/mikmod/mikmod_types.c:
+	* ext/mikmod/mikmod_types.h:
+	* ext/pulse/plugin.c:
+	* ext/pulse/pulseprobe.c:
+	* ext/pulse/pulseprobe.h:
+	* ext/pulse/pulsesink.c:
+	* ext/pulse/pulsesink.h:
+	* ext/pulse/pulsesrc.c:
+	* ext/pulse/pulsesrc.h:
+	* ext/pulse/pulseutil.c:
+	* ext/pulse/pulseutil.h:
+	* ext/raw1394/gst1394.c:
+	* ext/raw1394/gst1394clock.c:
+	* ext/raw1394/gst1394clock.h:
+	* ext/raw1394/gst1394probe.c:
+	* ext/raw1394/gst1394probe.h:
+	* ext/raw1394/gstdv1394src.c:
+	* ext/raw1394/gstdv1394src.h:
+	* ext/raw1394/gsthdv1394src.c:
+	* ext/raw1394/gsthdv1394src.h:
+	* ext/shout2/gstshout2.c:
+	* ext/shout2/gstshout2.h:
+	* ext/soup/gstsouphttpclientsink.h:
+	* ext/speex/gstspeex.c:
+	* ext/speex/gstspeexdec.c:
+	* ext/speex/gstspeexdec.h:
+	* ext/speex/gstspeexenc.c:
+	* ext/speex/gstspeexenc.h:
+	* ext/taglib/gstapev2mux.cc:
+	* ext/taglib/gstapev2mux.h:
+	* ext/taglib/gstid3v2mux.cc:
+	* ext/taglib/gstid3v2mux.h:
+	* ext/taglib/gsttaglibplugin.c:
+	* ext/vpx/gstvp8dec.c:
+	* ext/vpx/gstvp8dec.h:
+	* ext/vpx/gstvp8enc.c:
+	* ext/vpx/gstvp8enc.h:
+	* ext/vpx/gstvp8utils.c:
+	* ext/vpx/gstvp8utils.h:
+	* ext/vpx/plugin.c:
+	* ext/wavpack/gstwavpack.c:
+	* ext/wavpack/gstwavpackcommon.c:
+	* ext/wavpack/gstwavpackcommon.h:
+	* ext/wavpack/gstwavpackdec.c:
+	* ext/wavpack/gstwavpackdec.h:
+	* ext/wavpack/gstwavpackenc.c:
+	* ext/wavpack/gstwavpackenc.h:
+	* ext/wavpack/gstwavpackstreamreader.c:
+	* ext/wavpack/gstwavpackstreamreader.h:
+	* gst-libs/gst/gettext.h:
+	* gst-libs/gst/glib-compat-private.h:
+	* gst-libs/gst/gst-i18n-plugin.h:
+	* gst/alpha/gstalpha.c:
+	* gst/alpha/gstalpha.h:
+	* gst/alpha/gstalphacolor.c:
+	* gst/alpha/gstalphacolor.h:
+	* gst/apetag/gstapedemux.c:
+	* gst/apetag/gstapedemux.h:
+	* gst/audiofx/audioamplify.c:
+	* gst/audiofx/audioamplify.h:
+	* gst/audiofx/audiochebband.c:
+	* gst/audiofx/audiochebband.h:
+	* gst/audiofx/audiocheblimit.c:
+	* gst/audiofx/audiocheblimit.h:
+	* gst/audiofx/audiodynamic.c:
+	* gst/audiofx/audiodynamic.h:
+	* gst/audiofx/audioecho.c:
+	* gst/audiofx/audioecho.h:
+	* gst/audiofx/audiofirfilter.c:
+	* gst/audiofx/audiofirfilter.h:
+	* gst/audiofx/audiofx.c:
+	* gst/audiofx/audiofxbasefirfilter.c:
+	* gst/audiofx/audiofxbasefirfilter.h:
+	* gst/audiofx/audiofxbaseiirfilter.c:
+	* gst/audiofx/audiofxbaseiirfilter.h:
+	* gst/audiofx/audioiirfilter.c:
+	* gst/audiofx/audioiirfilter.h:
+	* gst/audiofx/audioinvert.c:
+	* gst/audiofx/audioinvert.h:
+	* gst/audiofx/audiokaraoke.c:
+	* gst/audiofx/audiokaraoke.h:
+	* gst/audiofx/audiopanorama.c:
+	* gst/audiofx/audiopanorama.h:
+	* gst/audiofx/audiowsincband.c:
+	* gst/audiofx/audiowsincband.h:
+	* gst/audiofx/audiowsinclimit.c:
+	* gst/audiofx/audiowsinclimit.h:
+	* gst/audiofx/math_compat.h:
+	* gst/audioparsers/gstaacparse.c:
+	* gst/audioparsers/gstaacparse.h:
+	* gst/audioparsers/gstac3parse.c:
+	* gst/audioparsers/gstac3parse.h:
+	* gst/audioparsers/gstamrparse.c:
+	* gst/audioparsers/gstamrparse.h:
+	* gst/audioparsers/gstdcaparse.c:
+	* gst/audioparsers/gstdcaparse.h:
+	* gst/audioparsers/gstflacparse.c:
+	* gst/audioparsers/gstflacparse.h:
+	* gst/audioparsers/gstmpegaudioparse.c:
+	* gst/audioparsers/gstmpegaudioparse.h:
+	* gst/audioparsers/gstwavpackparse.c:
+	* gst/audioparsers/gstwavpackparse.h:
+	* gst/audioparsers/plugin.c:
+	* gst/auparse/gstauparse.c:
+	* gst/auparse/gstauparse.h:
+	* gst/autodetect/gstautoaudiosink.c:
+	* gst/autodetect/gstautoaudiosink.h:
+	* gst/autodetect/gstautoaudiosrc.c:
+	* gst/autodetect/gstautoaudiosrc.h:
+	* gst/autodetect/gstautodetect.c:
+	* gst/autodetect/gstautodetect.h:
+	* gst/autodetect/gstautovideosink.c:
+	* gst/autodetect/gstautovideosink.h:
+	* gst/autodetect/gstautovideosrc.c:
+	* gst/autodetect/gstautovideosrc.h:
+	* gst/avi/avi-ids.h:
+	* gst/avi/gstavi.c:
+	* gst/avi/gstavidemux.c:
+	* gst/avi/gstavidemux.h:
+	* gst/avi/gstavimux.c:
+	* gst/avi/gstavimux.h:
+	* gst/avi/gstavisubtitle.c:
+	* gst/cutter/gstcutter.c:
+	* gst/cutter/gstcutter.h:
+	* gst/debugutils/breakmydata.c:
+	* gst/debugutils/cpureport.c:
+	* gst/debugutils/cpureport.h:
+	* gst/debugutils/gstcapsdebug.c:
+	* gst/debugutils/gstcapsdebug.h:
+	* gst/debugutils/gstdebug.c:
+	* gst/debugutils/gstnavigationtest.c:
+	* gst/debugutils/gstnavigationtest.h:
+	* gst/debugutils/gstnavseek.c:
+	* gst/debugutils/gstnavseek.h:
+	* gst/debugutils/gstpushfilesrc.c:
+	* gst/debugutils/gstpushfilesrc.h:
+	* gst/debugutils/gsttaginject.c:
+	* gst/debugutils/gsttaginject.h:
+	* gst/debugutils/progressreport.c:
+	* gst/debugutils/progressreport.h:
+	* gst/debugutils/rndbuffersize.c:
+	* gst/debugutils/testplugin.c:
+	* gst/debugutils/tests.c:
+	* gst/debugutils/tests.h:
+	* gst/deinterlace/gstdeinterlace.c:
+	* gst/deinterlace/gstdeinterlace.h:
+	* gst/deinterlace/gstdeinterlacemethod.c:
+	* gst/deinterlace/gstdeinterlacemethod.h:
+	* gst/deinterlace/tvtime/greedy.c:
+	* gst/deinterlace/tvtime/greedyh.asm:
+	* gst/deinterlace/tvtime/greedyh.c:
+	* gst/deinterlace/tvtime/greedyhmacros.h:
+	* gst/deinterlace/tvtime/linear.c:
+	* gst/deinterlace/tvtime/linearblend.c:
+	* gst/deinterlace/tvtime/plugins.h:
+	* gst/deinterlace/tvtime/scalerbob.c:
+	* gst/deinterlace/tvtime/tomsmocomp.c:
+	* gst/deinterlace/tvtime/tomsmocomp/TomsMoCompAll.inc:
+	* gst/deinterlace/tvtime/vfir.c:
+	* gst/deinterlace/tvtime/weave.c:
+	* gst/deinterlace/tvtime/weavebff.c:
+	* gst/deinterlace/tvtime/weavetff.c:
+	* gst/deinterlace/tvtime/x86-64_macros.inc:
+	* gst/effectv/gstaging.c:
+	* gst/effectv/gstaging.h:
+	* gst/effectv/gstdice.c:
+	* gst/effectv/gstdice.h:
+	* gst/effectv/gstedge.c:
+	* gst/effectv/gstedge.h:
+	* gst/effectv/gsteffectv.c:
+	* gst/effectv/gsteffectv.h:
+	* gst/effectv/gstop.c:
+	* gst/effectv/gstop.h:
+	* gst/effectv/gstquark.c:
+	* gst/effectv/gstquark.h:
+	* gst/effectv/gstradioac.c:
+	* gst/effectv/gstradioac.h:
+	* gst/effectv/gstrev.c:
+	* gst/effectv/gstrev.h:
+	* gst/effectv/gstripple.c:
+	* gst/effectv/gstripple.h:
+	* gst/effectv/gstshagadelic.c:
+	* gst/effectv/gstshagadelic.h:
+	* gst/effectv/gststreak.c:
+	* gst/effectv/gststreak.h:
+	* gst/effectv/gstvertigo.c:
+	* gst/effectv/gstvertigo.h:
+	* gst/effectv/gstwarp.c:
+	* gst/effectv/gstwarp.h:
+	* gst/equalizer/gstiirequalizer.c:
+	* gst/equalizer/gstiirequalizer.h:
+	* gst/equalizer/gstiirequalizer10bands.c:
+	* gst/equalizer/gstiirequalizer10bands.h:
+	* gst/equalizer/gstiirequalizer3bands.c:
+	* gst/equalizer/gstiirequalizer3bands.h:
+	* gst/equalizer/gstiirequalizernbands.c:
+	* gst/equalizer/gstiirequalizernbands.h:
+	* gst/flv/amfdefs.h:
+	* gst/flv/gstflvdemux.c:
+	* gst/flv/gstflvdemux.h:
+	* gst/flv/gstflvmux.c:
+	* gst/flv/gstflvmux.h:
+	* gst/flv/gstindex.c:
+	* gst/flv/gstindex.h:
+	* gst/flv/gstmemindex.c:
+	* gst/flx/flx_color.c:
+	* gst/flx/flx_color.h:
+	* gst/flx/flx_fmt.h:
+	* gst/flx/gstflxdec.c:
+	* gst/flx/gstflxdec.h:
+	* gst/goom/config_param.c:
+	* gst/goom/convolve_fx.c:
+	* gst/goom/drawmethods.c:
+	* gst/goom/drawmethods.h:
+	* gst/goom/filters.c:
+	* gst/goom/filters_mmx.s:
+	* gst/goom/flying_stars_fx.c:
+	* gst/goom/goom.h:
+	* gst/goom/goom_config.h:
+	* gst/goom/goom_config_param.h:
+	* gst/goom/goom_core.c:
+	* gst/goom/goom_filters.h:
+	* gst/goom/goom_fx.h:
+	* gst/goom/goom_graphic.h:
+	* gst/goom/goom_plugin_info.h:
+	* gst/goom/goom_tools.c:
+	* gst/goom/goom_tools.h:
+	* gst/goom/goom_typedefs.h:
+	* gst/goom/goom_visual_fx.h:
+	* gst/goom/graphic.c:
+	* gst/goom/gstgoom.c:
+	* gst/goom/gstgoom.h:
+	* gst/goom/lines.c:
+	* gst/goom/lines.h:
+	* gst/goom/mathtools.c:
+	* gst/goom/mathtools.h:
+	* gst/goom/motif_goom1.h:
+	* gst/goom/motif_goom2.h:
+	* gst/goom/plugin_info.c:
+	* gst/goom/ppc_drawings.h:
+	* gst/goom/ppc_drawings.s:
+	* gst/goom/ppc_zoom_ultimate.h:
+	* gst/goom/ppc_zoom_ultimate.s:
+	* gst/goom/sound_tester.c:
+	* gst/goom/sound_tester.h:
+	* gst/goom/surf3d.c:
+	* gst/goom/surf3d.h:
+	* gst/goom/tentacle3d.c:
+	* gst/goom/tentacle3d.h:
+	* gst/goom/v3d.c:
+	* gst/goom/v3d.h:
+	* gst/goom2k1/gstgoom.c:
+	* gst/goom2k1/gstgoom.h:
+	* gst/icydemux/gsticydemux.c:
+	* gst/icydemux/gsticydemux.h:
+	* gst/id3demux/gstid3demux.c:
+	* gst/id3demux/gstid3demux.h:
+	* gst/imagefreeze/gstimagefreeze.c:
+	* gst/imagefreeze/gstimagefreeze.h:
+	* gst/interleave/deinterleave.c:
+	* gst/interleave/deinterleave.h:
+	* gst/interleave/interleave.c:
+	* gst/interleave/interleave.h:
+	* gst/interleave/plugin.c:
+	* gst/interleave/plugin.h:
+	* gst/isomp4/atoms.c:
+	* gst/isomp4/atoms.h:
+	* gst/isomp4/atomsrecovery.c:
+	* gst/isomp4/atomsrecovery.h:
+	* gst/isomp4/descriptors.c:
+	* gst/isomp4/descriptors.h:
+	* gst/isomp4/fourcc.h:
+	* gst/isomp4/ftypcc.h:
+	* gst/isomp4/gstqtmoovrecover.c:
+	* gst/isomp4/gstqtmoovrecover.h:
+	* gst/isomp4/gstqtmux-doc.c:
+	* gst/isomp4/gstqtmux-doc.h:
+	* gst/isomp4/gstqtmux.c:
+	* gst/isomp4/gstqtmux.h:
+	* gst/isomp4/gstqtmuxmap.c:
+	* gst/isomp4/gstqtmuxmap.h:
+	* gst/isomp4/gstrtpxqtdepay.c:
+	* gst/isomp4/gstrtpxqtdepay.h:
+	* gst/isomp4/isomp4-plugin.c:
+	* gst/isomp4/properties.c:
+	* gst/isomp4/properties.h:
+	* gst/isomp4/qtatomparser.h:
+	* gst/isomp4/qtdemux.c:
+	* gst/isomp4/qtdemux.h:
+	* gst/isomp4/qtdemux_dump.c:
+	* gst/isomp4/qtdemux_dump.h:
+	* gst/isomp4/qtdemux_fourcc.h:
+	* gst/isomp4/qtdemux_lang.c:
+	* gst/isomp4/qtdemux_lang.h:
+	* gst/isomp4/qtdemux_types.c:
+	* gst/isomp4/qtdemux_types.h:
+	* gst/isomp4/qtpalette.h:
+	* gst/law/alaw-decode.c:
+	* gst/law/alaw-decode.h:
+	* gst/law/alaw-encode.c:
+	* gst/law/alaw-encode.h:
+	* gst/law/alaw.c:
+	* gst/law/mulaw-decode.c:
+	* gst/law/mulaw-decode.h:
+	* gst/law/mulaw-encode.c:
+	* gst/law/mulaw-encode.h:
+	* gst/law/mulaw.c:
+	* gst/level/gstlevel.c:
+	* gst/level/gstlevel.h:
+	* gst/matroska/ebml-ids.h:
+	* gst/matroska/ebml-read.c:
+	* gst/matroska/ebml-read.h:
+	* gst/matroska/ebml-write.c:
+	* gst/matroska/ebml-write.h:
+	* gst/matroska/matroska-demux.c:
+	* gst/matroska/matroska-demux.h:
+	* gst/matroska/matroska-ids.c:
+	* gst/matroska/matroska-ids.h:
+	* gst/matroska/matroska-mux.c:
+	* gst/matroska/matroska-mux.h:
+	* gst/matroska/matroska-parse.c:
+	* gst/matroska/matroska-parse.h:
+	* gst/matroska/matroska-read-common.c:
+	* gst/matroska/matroska-read-common.h:
+	* gst/matroska/matroska.c:
+	* gst/matroska/webm-mux.c:
+	* gst/matroska/webm-mux.h:
+	* gst/monoscope/convolve.c:
+	* gst/monoscope/convolve.h:
+	* gst/monoscope/gstmonoscope.c:
+	* gst/monoscope/gstmonoscope.h:
+	* gst/multifile/gstmultifile.c:
+	* gst/multifile/gstmultifilesink.c:
+	* gst/multifile/gstmultifilesink.h:
+	* gst/multifile/gstmultifilesrc.c:
+	* gst/multifile/gstmultifilesrc.h:
+	* gst/multifile/gstsplitfilesrc.c:
+	* gst/multifile/gstsplitfilesrc.h:
+	* gst/multifile/patternspec.c:
+	* gst/multifile/patternspec.h:
+	* gst/multipart/multipart.c:
+	* gst/multipart/multipartdemux.c:
+	* gst/multipart/multipartdemux.h:
+	* gst/multipart/multipartmux.c:
+	* gst/multipart/multipartmux.h:
+	* gst/rtp/fnv1hash.c:
+	* gst/rtp/fnv1hash.h:
+	* gst/rtp/gstasteriskh263.c:
+	* gst/rtp/gstasteriskh263.h:
+	* gst/rtp/gstrtp.c:
+	* gst/rtp/gstrtpL16depay.c:
+	* gst/rtp/gstrtpL16depay.h:
+	* gst/rtp/gstrtpL16pay.c:
+	* gst/rtp/gstrtpL16pay.h:
+	* gst/rtp/gstrtpac3depay.c:
+	* gst/rtp/gstrtpac3depay.h:
+	* gst/rtp/gstrtpac3pay.c:
+	* gst/rtp/gstrtpac3pay.h:
+	* gst/rtp/gstrtpamrdepay.c:
+	* gst/rtp/gstrtpamrdepay.h:
+	* gst/rtp/gstrtpamrpay.c:
+	* gst/rtp/gstrtpamrpay.h:
+	* gst/rtp/gstrtpbvdepay.c:
+	* gst/rtp/gstrtpbvdepay.h:
+	* gst/rtp/gstrtpbvpay.c:
+	* gst/rtp/gstrtpbvpay.h:
+	* gst/rtp/gstrtpceltdepay.c:
+	* gst/rtp/gstrtpceltpay.c:
+	* gst/rtp/gstrtpchannels.c:
+	* gst/rtp/gstrtpchannels.h:
+	* gst/rtp/gstrtpdvdepay.c:
+	* gst/rtp/gstrtpdvdepay.h:
+	* gst/rtp/gstrtpdvpay.c:
+	* gst/rtp/gstrtpdvpay.h:
+	* gst/rtp/gstrtpg722depay.c:
+	* gst/rtp/gstrtpg722depay.h:
+	* gst/rtp/gstrtpg722pay.c:
+	* gst/rtp/gstrtpg722pay.h:
+	* gst/rtp/gstrtpg723depay.c:
+	* gst/rtp/gstrtpg723depay.h:
+	* gst/rtp/gstrtpg723pay.c:
+	* gst/rtp/gstrtpg723pay.h:
+	* gst/rtp/gstrtpg726depay.c:
+	* gst/rtp/gstrtpg726pay.c:
+	* gst/rtp/gstrtpg729depay.c:
+	* gst/rtp/gstrtpg729depay.h:
+	* gst/rtp/gstrtpg729pay.c:
+	* gst/rtp/gstrtpg729pay.h:
+	* gst/rtp/gstrtpgsmdepay.c:
+	* gst/rtp/gstrtpgsmdepay.h:
+	* gst/rtp/gstrtpgsmpay.c:
+	* gst/rtp/gstrtpgsmpay.h:
+	* gst/rtp/gstrtpgstdepay.c:
+	* gst/rtp/gstrtpgstdepay.h:
+	* gst/rtp/gstrtpgstpay.c:
+	* gst/rtp/gstrtpgstpay.h:
+	* gst/rtp/gstrtph263depay.c:
+	* gst/rtp/gstrtph263depay.h:
+	* gst/rtp/gstrtph263pay.c:
+	* gst/rtp/gstrtph263pay.h:
+	* gst/rtp/gstrtph263pdepay.c:
+	* gst/rtp/gstrtph263pdepay.h:
+	* gst/rtp/gstrtph263ppay.c:
+	* gst/rtp/gstrtph263ppay.h:
+	* gst/rtp/gstrtph264depay.c:
+	* gst/rtp/gstrtph264depay.h:
+	* gst/rtp/gstrtph264pay.c:
+	* gst/rtp/gstrtph264pay.h:
+	* gst/rtp/gstrtpilbcdepay.c:
+	* gst/rtp/gstrtpilbcdepay.h:
+	* gst/rtp/gstrtpilbcpay.c:
+	* gst/rtp/gstrtpilbcpay.h:
+	* gst/rtp/gstrtpj2kdepay.c:
+	* gst/rtp/gstrtpj2kdepay.h:
+	* gst/rtp/gstrtpj2kpay.c:
+	* gst/rtp/gstrtpj2kpay.h:
+	* gst/rtp/gstrtpjpegdepay.c:
+	* gst/rtp/gstrtpjpegdepay.h:
+	* gst/rtp/gstrtpjpegpay.c:
+	* gst/rtp/gstrtpjpegpay.h:
+	* gst/rtp/gstrtpmp1sdepay.c:
+	* gst/rtp/gstrtpmp1sdepay.h:
+	* gst/rtp/gstrtpmp2tdepay.c:
+	* gst/rtp/gstrtpmp2tdepay.h:
+	* gst/rtp/gstrtpmp2tpay.c:
+	* gst/rtp/gstrtpmp2tpay.h:
+	* gst/rtp/gstrtpmp4adepay.c:
+	* gst/rtp/gstrtpmp4adepay.h:
+	* gst/rtp/gstrtpmp4apay.c:
+	* gst/rtp/gstrtpmp4apay.h:
+	* gst/rtp/gstrtpmp4gdepay.c:
+	* gst/rtp/gstrtpmp4gdepay.h:
+	* gst/rtp/gstrtpmp4gpay.c:
+	* gst/rtp/gstrtpmp4gpay.h:
+	* gst/rtp/gstrtpmp4vdepay.c:
+	* gst/rtp/gstrtpmp4vdepay.h:
+	* gst/rtp/gstrtpmp4vpay.c:
+	* gst/rtp/gstrtpmp4vpay.h:
+	* gst/rtp/gstrtpmpadepay.c:
+	* gst/rtp/gstrtpmpadepay.h:
+	* gst/rtp/gstrtpmpapay.c:
+	* gst/rtp/gstrtpmpapay.h:
+	* gst/rtp/gstrtpmparobustdepay.c:
+	* gst/rtp/gstrtpmparobustdepay.h:
+	* gst/rtp/gstrtpmpvdepay.c:
+	* gst/rtp/gstrtpmpvdepay.h:
+	* gst/rtp/gstrtpmpvpay.c:
+	* gst/rtp/gstrtpmpvpay.h:
+	* gst/rtp/gstrtppcmadepay.c:
+	* gst/rtp/gstrtppcmapay.c:
+	* gst/rtp/gstrtppcmudepay.c:
+	* gst/rtp/gstrtppcmupay.c:
+	* gst/rtp/gstrtpqcelpdepay.c:
+	* gst/rtp/gstrtpqcelpdepay.h:
+	* gst/rtp/gstrtpqdmdepay.c:
+	* gst/rtp/gstrtpqdmdepay.h:
+	* gst/rtp/gstrtpsirendepay.c:
+	* gst/rtp/gstrtpsirendepay.h:
+	* gst/rtp/gstrtpsirenpay.c:
+	* gst/rtp/gstrtpsirenpay.h:
+	* gst/rtp/gstrtpspeexdepay.c:
+	* gst/rtp/gstrtpspeexpay.c:
+	* gst/rtp/gstrtpsv3vdepay.c:
+	* gst/rtp/gstrtpsv3vdepay.h:
+	* gst/rtp/gstrtptheoradepay.c:
+	* gst/rtp/gstrtptheoradepay.h:
+	* gst/rtp/gstrtptheorapay.c:
+	* gst/rtp/gstrtptheorapay.h:
+	* gst/rtp/gstrtpvorbisdepay.c:
+	* gst/rtp/gstrtpvorbisdepay.h:
+	* gst/rtp/gstrtpvorbispay.c:
+	* gst/rtp/gstrtpvorbispay.h:
+	* gst/rtp/gstrtpvrawdepay.c:
+	* gst/rtp/gstrtpvrawdepay.h:
+	* gst/rtp/gstrtpvrawpay.c:
+	* gst/rtp/gstrtpvrawpay.h:
+	* gst/rtpmanager/gstrtpbin.c:
+	* gst/rtpmanager/gstrtpbin.h:
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	* gst/rtpmanager/gstrtpjitterbuffer.h:
+	* gst/rtpmanager/gstrtpmanager.c:
+	* gst/rtpmanager/gstrtpptdemux.c:
+	* gst/rtpmanager/gstrtpptdemux.h:
+	* gst/rtpmanager/gstrtpsession.c:
+	* gst/rtpmanager/gstrtpsession.h:
+	* gst/rtpmanager/gstrtpssrcdemux.c:
+	* gst/rtpmanager/gstrtpssrcdemux.h:
+	* gst/rtpmanager/rtpjitterbuffer.c:
+	* gst/rtpmanager/rtpjitterbuffer.h:
+	* gst/rtpmanager/rtpsession.c:
+	* gst/rtpmanager/rtpsession.h:
+	* gst/rtpmanager/rtpsource.c:
+	* gst/rtpmanager/rtpsource.h:
+	* gst/rtpmanager/rtpstats.c:
+	* gst/rtpmanager/rtpstats.h:
+	* gst/rtsp/gstrtpdec.c:
+	* gst/rtsp/gstrtpdec.h:
+	* gst/rtsp/gstrtsp.c:
+	* gst/rtsp/gstrtsp.h:
+	* gst/rtsp/gstrtspext.c:
+	* gst/rtsp/gstrtspext.h:
+	* gst/rtsp/gstrtspsrc.c:
+	* gst/rtsp/gstrtspsrc.h:
+	* gst/shapewipe/gstshapewipe.c:
+	* gst/shapewipe/gstshapewipe.h:
+	* gst/smpte/barboxwipes.c:
+	* gst/smpte/gstmask.c:
+	* gst/smpte/gstmask.h:
+	* gst/smpte/gstsmpte.c:
+	* gst/smpte/gstsmpte.h:
+	* gst/smpte/gstsmptealpha.c:
+	* gst/smpte/gstsmptealpha.h:
+	* gst/smpte/paint.c:
+	* gst/smpte/paint.h:
+	* gst/smpte/plugin.c:
+	* gst/spectrum/gstspectrum.c:
+	* gst/spectrum/gstspectrum.h:
+	* gst/udp/gstdynudpsink.c:
+	* gst/udp/gstdynudpsink.h:
+	* gst/udp/gstmultiudpsink.c:
+	* gst/udp/gstmultiudpsink.h:
+	* gst/udp/gstudp.c:
+	* gst/udp/gstudp.h:
+	* gst/udp/gstudpnetutils.c:
+	* gst/udp/gstudpnetutils.h:
+	* gst/udp/gstudpsink.c:
+	* gst/udp/gstudpsink.h:
+	* gst/udp/gstudpsrc.c:
+	* gst/udp/gstudpsrc.h:
+	* gst/videobox/gstvideobox.c:
+	* gst/videobox/gstvideobox.h:
+	* gst/videocrop/gstaspectratiocrop.c:
+	* gst/videocrop/gstaspectratiocrop.h:
+	* gst/videocrop/gstvideocrop.c:
+	* gst/videocrop/gstvideocrop.h:
+	* gst/videofilter/gstgamma.c:
+	* gst/videofilter/gstgamma.h:
+	* gst/videofilter/gstvideobalance.c:
+	* gst/videofilter/gstvideobalance.h:
+	* gst/videofilter/gstvideoflip.c:
+	* gst/videofilter/gstvideoflip.h:
+	* gst/videofilter/gstvideomedian.c:
+	* gst/videofilter/gstvideomedian.h:
+	* gst/videofilter/gstvideotemplate.c:
+	* gst/videofilter/plugin.c:
+	* gst/videomixer/blend.c:
+	* gst/videomixer/blend.h:
+	* gst/videomixer/videomixer2.c:
+	* gst/videomixer/videomixer2.h:
+	* gst/videomixer/videomixer2pad.h:
+	* gst/wavenc/gstwavenc.c:
+	* gst/wavenc/gstwavenc.h:
+	* gst/wavparse/gstwavparse.c:
+	* gst/wavparse/gstwavparse.h:
+	* gst/y4m/gsty4mencode.c:
+	* gst/y4m/gsty4mencode.h:
+	* sys/directsound/gstdirectsoundplugin.c:
+	* sys/directsound/gstdirectsoundsink.c:
+	* sys/directsound/gstdirectsoundsink.h:
+	* sys/oss/common.h:
+	* sys/oss/gstossaudio.c:
+	* sys/oss/gstossdmabuffer.c:
+	* sys/oss/gstossdmabuffer.h:
+	* sys/oss/gstosshelper.c:
+	* sys/oss/gstosshelper.h:
+	* sys/oss/gstosssink.c:
+	* sys/oss/gstosssink.h:
+	* sys/oss/gstosssrc.c:
+	* sys/oss/gstosssrc.h:
+	* sys/oss4/oss4-audio.c:
+	* sys/oss4/oss4-audio.h:
+	* sys/oss4/oss4-property-probe.c:
+	* sys/oss4/oss4-property-probe.h:
+	* sys/oss4/oss4-sink.c:
+	* sys/oss4/oss4-sink.h:
+	* sys/oss4/oss4-source.c:
+	* sys/oss4/oss4-source.h:
+	* sys/osxaudio/gstosxaudio.c:
+	* sys/osxaudio/gstosxaudioelement.c:
+	* sys/osxaudio/gstosxaudioelement.h:
+	* sys/osxaudio/gstosxaudiosink.c:
+	* sys/osxaudio/gstosxaudiosink.h:
+	* sys/osxaudio/gstosxaudiosrc.c:
+	* sys/osxaudio/gstosxaudiosrc.h:
+	* sys/osxaudio/gstosxcoreaudio.h:
+	* sys/osxaudio/gstosxringbuffer.c:
+	* sys/osxaudio/gstosxringbuffer.h:
+	* sys/osxvideo/cocoawindow.h:
+	* sys/osxvideo/cocoawindow.m:
+	* sys/osxvideo/osxvideosink.h:
+	* sys/osxvideo/osxvideosink.m:
+	* sys/sunaudio/gstsunaudio.c:
+	* sys/sunaudio/gstsunaudiomixer.c:
+	* sys/sunaudio/gstsunaudiomixer.h:
+	* sys/sunaudio/gstsunaudiomixerctrl.c:
+	* sys/sunaudio/gstsunaudiomixerctrl.h:
+	* sys/sunaudio/gstsunaudiomixeroptions.c:
+	* sys/sunaudio/gstsunaudiomixeroptions.h:
+	* sys/sunaudio/gstsunaudiomixertrack.c:
+	* sys/sunaudio/gstsunaudiomixertrack.h:
+	* sys/sunaudio/gstsunaudiosink.c:
+	* sys/sunaudio/gstsunaudiosink.h:
+	* sys/sunaudio/gstsunaudiosrc.c:
+	* sys/sunaudio/gstsunaudiosrc.h:
+	* sys/v4l2/gstv4l2.c:
+	* sys/v4l2/gstv4l2bufferpool.c:
+	* sys/v4l2/gstv4l2bufferpool.h:
+	* sys/v4l2/gstv4l2colorbalance.c:
+	* sys/v4l2/gstv4l2colorbalance.h:
+	* sys/v4l2/gstv4l2object.c:
+	* sys/v4l2/gstv4l2object.h:
+	* sys/v4l2/gstv4l2radio.c:
+	* sys/v4l2/gstv4l2radio.h:
+	* sys/v4l2/gstv4l2sink.c:
+	* sys/v4l2/gstv4l2sink.h:
+	* sys/v4l2/gstv4l2src.c:
+	* sys/v4l2/gstv4l2src.h:
+	* sys/v4l2/gstv4l2tuner.c:
+	* sys/v4l2/gstv4l2tuner.h:
+	* sys/v4l2/gstv4l2videooverlay.c:
+	* sys/v4l2/gstv4l2videooverlay.h:
+	* sys/v4l2/gstv4l2vidorient.c:
+	* sys/v4l2/gstv4l2vidorient.h:
+	* sys/v4l2/tuner.c:
+	* sys/v4l2/tuner.h:
+	* sys/v4l2/tunerchannel.c:
+	* sys/v4l2/tunerchannel.h:
+	* sys/v4l2/tunernorm.c:
+	* sys/v4l2/tunernorm.h:
+	* sys/v4l2/v4l2_calls.c:
+	* sys/v4l2/v4l2_calls.h:
+	* sys/waveform/gstwaveformplugin.c:
+	* sys/waveform/gstwaveformsink.c:
+	* sys/waveform/gstwaveformsink.h:
+	* sys/ximage/gstximagesrc.c:
+	* sys/ximage/gstximagesrc.h:
+	* sys/ximage/ximageutil.c:
+	* sys/ximage/ximageutil.h:
+	* tests/check/elements/aacparse.c:
+	* tests/check/elements/ac3parse.c:
+	* tests/check/elements/alphacolor.c:
+	* tests/check/elements/amrparse.c:
+	* tests/check/elements/apev2mux.c:
+	* tests/check/elements/aspectratiocrop.c:
+	* tests/check/elements/audioamplify.c:
+	* tests/check/elements/audiodynamic.c:
+	* tests/check/elements/audioecho.c:
+	* tests/check/elements/audioinvert.c:
+	* tests/check/elements/audiopanorama.c:
+	* tests/check/elements/autodetect.c:
+	* tests/check/elements/avimux.c:
+	* tests/check/elements/avisubtitle.c:
+	* tests/check/elements/capssetter.c:
+	* tests/check/elements/deinterlace.c:
+	* tests/check/elements/deinterleave.c:
+	* tests/check/elements/flacparse.c:
+	* tests/check/elements/flvdemux.c:
+	* tests/check/elements/flvmux.c:
+	* tests/check/elements/gdkpixbufsink.c:
+	* tests/check/elements/icydemux.c:
+	* tests/check/elements/id3demux.c:
+	* tests/check/elements/id3v2mux.c:
+	* tests/check/elements/imagefreeze.c:
+	* tests/check/elements/interleave.c:
+	* tests/check/elements/jpegdec.c:
+	* tests/check/elements/jpegenc.c:
+	* tests/check/elements/level.c:
 	* tests/check/elements/matroskamux.c:
-	  webmux: fix linking with shout2send element
-	  Shout2send only accepts webm format, not matroska, but due
-	  to a bug in matroskamux, webmmux's source pad is also created
-	  with the matroska source pad template as pad template, which
-	  makes the link function think it can't link webmmux to shout2send.
-	  Also add unit test.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=689336
+	* tests/check/elements/matroskaparse.c:
+	* tests/check/elements/mpegaudioparse.c:
+	* tests/check/elements/multifile.c:
+	* tests/check/elements/parser.c:
+	* tests/check/elements/parser.h:
+	* tests/check/elements/qtmux.c:
+	* tests/check/elements/rtp-payloading.c:
+	* tests/check/elements/rtpbin.c:
+	* tests/check/elements/rtpbin_buffer_list.c:
+	* tests/check/elements/rtpjitterbuffer.c:
+	* tests/check/elements/shapewipe.c:
+	* tests/check/elements/souphttpsrc.c:
+	* tests/check/elements/spectrum.c:
+	* tests/check/elements/sunaudio.c:
+	* tests/check/elements/udpsink.c:
+	* tests/check/elements/udpsrc.c:
+	* tests/check/elements/videocrop.c:
+	* tests/check/elements/videofilter.c:
+	* tests/check/elements/vp8dec.c:
+	* tests/check/elements/vp8enc.c:
+	* tests/check/elements/wavpackdec.c:
+	* tests/check/elements/wavpackenc.c:
+	* tests/check/elements/wavpackparse.c:
+	* tests/check/elements/y4menc.c:
+	* tests/check/generic/states.c:
+	* tests/check/pipelines/effectv.c:
+	* tests/check/pipelines/flacdec.c:
+	* tests/check/pipelines/simple-launch-lines.c:
+	* tests/check/pipelines/tagschecking.c:
+	* tests/check/pipelines/wavenc.c:
+	* tests/check/pipelines/wavpack.c:
+	* tests/examples/audiofx/firfilter-example.c:
+	* tests/examples/audiofx/iirfilter-example.c:
+	* tests/examples/cairo/cairo_overlay.c:
+	* tests/examples/level/level-example.c:
+	* tests/examples/pulse/pulse.c:
+	* tests/examples/rtp/client-PCMA.c:
+	* tests/examples/rtp/server-alsasrc-PCMA.c:
+	* tests/examples/shapewipe/shapewipe-example.c:
+	* tests/examples/spectrum/demo-audiotest.c:
+	* tests/examples/spectrum/demo-osssrc.c:
+	* tests/examples/spectrum/spectrum-example.c:
+	* tests/examples/v4l2/camctrl.c:
+	* tests/icles/equalizer-test.c:
+	* tests/icles/gdkpixbufsink-test.c:
+	* tests/icles/test-oss4.c:
+	* tests/icles/v4l2src-test.c:
+	* tests/icles/videobox-test.c:
+	* tests/icles/videocrop-test.c:
+	* tests/icles/videocrop2-test.c:
+	* tests/icles/ximagesrc-test.c:
+	  Fix FSF address
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687520
 
-2012-11-26 15:17:13 +0000  Tim-Philipp Müller <tim@centricular.net>
+2012-11-02 18:47:26 +0000  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst/law/mulaw-conversion.c:
-	  law: fix accidental file permissions change
-	  https://bugzilla.gnome.org/show_bug.cgi?id=687469
+	* gst/rtp/gstrtpvrawdepay.c:
+	  vrawdepay: don't access rtp buffer after unmap
+	  Read the marker bit before we unmap the rtp packet.
 
-2012-11-25 14:16:09 +0000  Tim-Philipp Müller <tim@centricular.net>
+2012-11-02 09:34:25 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-	* gst/isomp4/qtdemux.c:
-	  qtdemux: avoid criticals if unknown fourcc has space at beginning or end
-	  https://bugzilla.gnome.org/show_bug.cgi?id=682936
+	* ext/vpx/gstvp8dec.c:
+	  vp8dec: Immediately return if opening the decoder failed
+	  Instead of ignoring any errors.
 
-2012-11-24 19:32:51 +0000  Tim-Philipp Müller <tim@centricular.net>
+2012-11-01 22:02:39 +0100  Debarshi Ray <rishi@gnu.org>
 
-	* gst/videobox/gstvideobox.c:
-	  videobox: fix border filling for planar YUV formats
-	  We would get a green border instead of a black one, for
-	  example.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=684991
+	* ext/vpx/gstvp8dec.c:
+	  vp8dec: Short circuit gst_vp8_dec_handle_frame if keyframe is missing
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687376
 
-2012-11-24 14:27:33 +0000  Tim-Philipp Müller <tim@centricular.net>
+2012-11-02 10:53:57 +1300  Douglas Bagnall <douglas@paradise.net.nz>
 
-	* gst/law/mulaw-conversion.c:
-	  mulaw: const-ify some arrays
+	* gst/videomixer/blend.c:
+	  videoconvert: Compare y offset with height, not width, when testing for overlap
+	  This could have prevented images showing that should have when the
+	  source height is greater than its width.
+	  When width exceeds height, as is common, it probably only caused a
+	  miniscule amount of unnecessary work.  I haven't tested.
 
-2012-11-02 12:38:44 -0400  Roland Krikava <rkrikava@gmail.com>
+2012-11-01 21:09:56 +0000  Tim-Philipp Müller <tim@centricular.net>
 
-	* gst/law/mulaw-conversion.c:
-	  mulawdec: fix integer overrun
-	  There might be more than 65535 samples in a chunk of data.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=687469
+	* gst/rtp/gstrtpvp8depay.c:
+	* gst/rtp/gstrtpvp8depay.h:
+	* gst/rtp/gstrtpvp8pay.c:
+	* gst/rtp/gstrtpvp8pay.h:
+	  rtpvp8: include config.h and minor style fixes
 
-2012-11-22 11:34:31 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+2012-11-01 20:13:43 +0000  Tim-Philipp Müller <tim@centricular.net>
 
-	* gst/rtsp/gstrtspsrc.c:
-	  rtspsrc: pause the task instead of spinning
-	  Actually pause the loop task instead of spinning forever.
+	* gst/rtp/Makefile.am:
+	  rtp: fix tabs/space mess in Makefile.am
 
-2012-11-21 13:04:05 +0000  Tim-Philipp Müller <tim@centricular.net>
+2012-11-01 20:05:49 +0000  Tim-Philipp Müller <tim@centricular.net>
 
-	* configure.ac:
-	* docs/plugins/inspect/plugin-1394.xml:
-	* docs/plugins/inspect/plugin-aasink.xml:
-	* docs/plugins/inspect/plugin-alaw.xml:
-	* docs/plugins/inspect/plugin-alpha.xml:
-	* docs/plugins/inspect/plugin-alphacolor.xml:
-	* docs/plugins/inspect/plugin-apetag.xml:
-	* docs/plugins/inspect/plugin-audiofx.xml:
-	* docs/plugins/inspect/plugin-audioparsers.xml:
-	* docs/plugins/inspect/plugin-auparse.xml:
-	* docs/plugins/inspect/plugin-autodetect.xml:
-	* docs/plugins/inspect/plugin-avi.xml:
-	* docs/plugins/inspect/plugin-cacasink.xml:
-	* docs/plugins/inspect/plugin-cutter.xml:
-	* docs/plugins/inspect/plugin-debug.xml:
-	* docs/plugins/inspect/plugin-deinterlace.xml:
-	* docs/plugins/inspect/plugin-dv.xml:
-	* docs/plugins/inspect/plugin-effectv.xml:
-	* docs/plugins/inspect/plugin-equalizer.xml:
-	* docs/plugins/inspect/plugin-flac.xml:
-	* docs/plugins/inspect/plugin-flv.xml:
-	* docs/plugins/inspect/plugin-flxdec.xml:
-	* docs/plugins/inspect/plugin-gdkpixbuf.xml:
-	* docs/plugins/inspect/plugin-goom.xml:
-	* docs/plugins/inspect/plugin-goom2k1.xml:
-	* docs/plugins/inspect/plugin-icydemux.xml:
-	* docs/plugins/inspect/plugin-id3demux.xml:
-	* docs/plugins/inspect/plugin-imagefreeze.xml:
-	* docs/plugins/inspect/plugin-interleave.xml:
-	* docs/plugins/inspect/plugin-isomp4.xml:
-	* docs/plugins/inspect/plugin-jack.xml:
-	* docs/plugins/inspect/plugin-jpeg.xml:
-	* docs/plugins/inspect/plugin-level.xml:
-	* docs/plugins/inspect/plugin-matroska.xml:
-	* docs/plugins/inspect/plugin-mulaw.xml:
-	* docs/plugins/inspect/plugin-multifile.xml:
-	* docs/plugins/inspect/plugin-multipart.xml:
-	* docs/plugins/inspect/plugin-navigationtest.xml:
-	* docs/plugins/inspect/plugin-oss4.xml:
-	* docs/plugins/inspect/plugin-ossaudio.xml:
-	* docs/plugins/inspect/plugin-png.xml:
-	* docs/plugins/inspect/plugin-pulseaudio.xml:
-	* docs/plugins/inspect/plugin-replaygain.xml:
-	* docs/plugins/inspect/plugin-rtp.xml:
-	* docs/plugins/inspect/plugin-rtpmanager.xml:
-	* docs/plugins/inspect/plugin-rtsp.xml:
-	* docs/plugins/inspect/plugin-shapewipe.xml:
-	* docs/plugins/inspect/plugin-shout2send.xml:
-	* docs/plugins/inspect/plugin-smpte.xml:
-	* docs/plugins/inspect/plugin-soup.xml:
-	* docs/plugins/inspect/plugin-spectrum.xml:
-	* docs/plugins/inspect/plugin-speex.xml:
-	* docs/plugins/inspect/plugin-taglib.xml:
-	* docs/plugins/inspect/plugin-udp.xml:
-	* docs/plugins/inspect/plugin-video4linux2.xml:
-	* docs/plugins/inspect/plugin-videobox.xml:
-	* docs/plugins/inspect/plugin-videocrop.xml:
-	* docs/plugins/inspect/plugin-videofilter.xml:
-	* docs/plugins/inspect/plugin-videomixer.xml:
-	* docs/plugins/inspect/plugin-vpx.xml:
-	* docs/plugins/inspect/plugin-wavenc.xml:
-	* docs/plugins/inspect/plugin-wavpack.xml:
-	* docs/plugins/inspect/plugin-wavparse.xml:
-	* docs/plugins/inspect/plugin-ximagesrc.xml:
-	* docs/plugins/inspect/plugin-y4menc.xml:
-	* win32/common/config.h:
-	  Back to development (bug fixing)
+	* gst/rtp/Makefile.am:
+	* gst/rtp/gstrtp.c:
+	* gst/rtp/gstrtpvp8.c:
+	  rtp: move VP8 payloader and depayloader from -bad
+	  Spec is still in draft state, but should hopefully not
+	  change much now. Besides, we announce things as VP8-DRAFT-IETF-01
+	  in our caps, so even if things change in incompatible ways it
+	  should not break anything.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687263
+
+2012-10-17 17:34:26 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/rtp/gstrtpvp8depay.c:
+	* gst/rtp/gstrtpvp8pay.c:
+	  rtpvp8: use gst_element_class_set_static_metadata()
+	  where possible. Avoids some string copies. Also re-indent
+	  some stuff. Also some indent fixes here and there.
 
-=== release 1.0.3 ===
+2012-09-14 17:08:49 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
 
-2012-11-21 10:22:01 +0000  Tim-Philipp Müller <tim@centricular.net>
+	* gst/rtp/gstrtpvp8pay.c:
+	  rtpvp8: replace gst_element_class_set_details_simple with gst_element_class_set_metadata
 
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/inspect/plugin-1394.xml:
-	* docs/plugins/inspect/plugin-aasink.xml:
-	* docs/plugins/inspect/plugin-alaw.xml:
-	* docs/plugins/inspect/plugin-alpha.xml:
-	* docs/plugins/inspect/plugin-alphacolor.xml:
-	* docs/plugins/inspect/plugin-apetag.xml:
-	* docs/plugins/inspect/plugin-audiofx.xml:
-	* docs/plugins/inspect/plugin-audioparsers.xml:
-	* docs/plugins/inspect/plugin-auparse.xml:
-	* docs/plugins/inspect/plugin-autodetect.xml:
-	* docs/plugins/inspect/plugin-avi.xml:
-	* docs/plugins/inspect/plugin-cacasink.xml:
-	* docs/plugins/inspect/plugin-cutter.xml:
-	* docs/plugins/inspect/plugin-debug.xml:
-	* docs/plugins/inspect/plugin-deinterlace.xml:
-	* docs/plugins/inspect/plugin-dv.xml:
-	* docs/plugins/inspect/plugin-effectv.xml:
-	* docs/plugins/inspect/plugin-equalizer.xml:
-	* docs/plugins/inspect/plugin-flac.xml:
-	* docs/plugins/inspect/plugin-flv.xml:
-	* docs/plugins/inspect/plugin-flxdec.xml:
-	* docs/plugins/inspect/plugin-gdkpixbuf.xml:
-	* docs/plugins/inspect/plugin-goom.xml:
-	* docs/plugins/inspect/plugin-goom2k1.xml:
-	* docs/plugins/inspect/plugin-icydemux.xml:
-	* docs/plugins/inspect/plugin-id3demux.xml:
-	* docs/plugins/inspect/plugin-imagefreeze.xml:
-	* docs/plugins/inspect/plugin-interleave.xml:
-	* docs/plugins/inspect/plugin-isomp4.xml:
-	* docs/plugins/inspect/plugin-jack.xml:
-	* docs/plugins/inspect/plugin-jpeg.xml:
-	* docs/plugins/inspect/plugin-level.xml:
-	* docs/plugins/inspect/plugin-matroska.xml:
-	* docs/plugins/inspect/plugin-mulaw.xml:
-	* docs/plugins/inspect/plugin-multifile.xml:
-	* docs/plugins/inspect/plugin-multipart.xml:
-	* docs/plugins/inspect/plugin-navigationtest.xml:
-	* docs/plugins/inspect/plugin-oss4.xml:
-	* docs/plugins/inspect/plugin-ossaudio.xml:
-	* docs/plugins/inspect/plugin-png.xml:
-	* docs/plugins/inspect/plugin-pulseaudio.xml:
-	* docs/plugins/inspect/plugin-replaygain.xml:
-	* docs/plugins/inspect/plugin-rtp.xml:
-	* docs/plugins/inspect/plugin-rtpmanager.xml:
-	* docs/plugins/inspect/plugin-rtsp.xml:
-	* docs/plugins/inspect/plugin-shapewipe.xml:
-	* docs/plugins/inspect/plugin-shout2send.xml:
-	* docs/plugins/inspect/plugin-smpte.xml:
-	* docs/plugins/inspect/plugin-soup.xml:
-	* docs/plugins/inspect/plugin-spectrum.xml:
-	* docs/plugins/inspect/plugin-speex.xml:
-	* docs/plugins/inspect/plugin-taglib.xml:
-	* docs/plugins/inspect/plugin-udp.xml:
-	* docs/plugins/inspect/plugin-video4linux2.xml:
-	* docs/plugins/inspect/plugin-videobox.xml:
-	* docs/plugins/inspect/plugin-videocrop.xml:
-	* docs/plugins/inspect/plugin-videofilter.xml:
-	* docs/plugins/inspect/plugin-videomixer.xml:
-	* docs/plugins/inspect/plugin-vpx.xml:
-	* docs/plugins/inspect/plugin-wavenc.xml:
-	* docs/plugins/inspect/plugin-wavpack.xml:
-	* docs/plugins/inspect/plugin-wavparse.xml:
-	* docs/plugins/inspect/plugin-ximagesrc.xml:
-	* docs/plugins/inspect/plugin-y4menc.xml:
-	* gst-plugins-good.doap:
-	* win32/common/config.h:
-	  Release 1.0.3
+2012-04-05 18:02:56 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-2012-11-16 09:09:38 +0000  Tim-Philipp Müller <tim@centricular.net>
+	* gst/rtp/gstrtpvp8.c:
+	  rtpvp8: update for GST_PLUGIN_DEFINE() API changes
 
-	* gst/multifile/gstmultifilesink.c:
-	  multifilesink: post messages in max-size mode as well
-	  No reason not to really.
+2012-03-28 12:49:54 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2012-11-16 15:38:29 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+	* gst/rtp/gstrtpvp8pay.c:
+	  rtpvp8: update for buffer changes
 
-	* gst/rtsp/gstrtspsrc.c:
-	  rtspsrc: handle segment event
-	  Make a segment event when we send a new range header to a client (first PLAY
-	  request or after a seek). Send the segment event in interleaved mode.
-	  Clean the segment event on cleanup
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688382
+2012-03-01 14:59:55 -0300  Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
 
-2012-11-16 15:18:07 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+	* gst/rtp/gstrtpvp8depay.c:
+	* gst/rtp/gstrtpvp8pay.c:
+	  rtpvp8; fix compatibility with the third draft
+	  https://bugzilla.gnome.org/show_bug.cgi?id=671073
 
-	* gst/rtsp/gstrtspsrc.c:
-	  rtspsrc: fix check for active streams
-	  A stream can be active without a srcpad yet and we want to send
-	  events on those streams as well.
+2012-01-25 16:20:41 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
 
-2012-11-16 13:31:04 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+	* gst/rtp/gstrtpvp8pay.c:
+	  rtpvp8: port some more to new memory API
 
-	* gst/rtsp/gstrtspsrc.c:
-	  rtspsrc: create and add pads outside of lock
-	  Create and add the ghostpad for the new stream outside of the lock because it
-	  is not needed and causes deadlocks.
+2012-01-25 10:45:51 +0100  Olivier Crête <olivier.crete@collabora.com>
 
-2012-11-16 12:16:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+	* gst/rtp/gstrtpvp8depay.c:
+	* gst/rtp/gstrtpvp8depay.h:
+	* gst/rtp/gstrtpvp8pay.c:
+	* gst/rtp/gstrtpvp8pay.h:
+	  rtpvp8: port to 0.11
 
-	* gst/rtsp/gstrtspsrc.c:
-	  rtspsrc: clear variables before retrying
-	  Else we might unref an old udpsrc twice in cleanup.
+2011-10-03 12:06:27 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-2012-11-16 12:00:14 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+	* gst/rtp/gstrtpvp8pay.c:
+	  rtpvp8pay: Fix typo
 
-	* gst/rtsp/gstrtspsrc.c:
-	  rtspsrc: propose ports in multicast
-	  When the user configured a port-range, propose ports from this range
-	  as the multicast ports. The server is free to ignore this request but if it
-	  honours it, increment our ports so that we suggest the next port pair for the
-	  next stream.
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=639420
+2011-09-23 22:58:30 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
 
-2012-11-16 11:58:53 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+	* gst/rtp/gstrtpvp8depay.c:
+	* gst/rtp/gstrtpvp8pay.c:
+	* gst/rtp/gstrtpvp8pay.h:
+	  rtpvp8: Update the pay/depay to the ietf-draft-01 spec
 
-	* gst/rtsp/gstrtspsrc.c:
-	  rtspsrc: add more debug
+2011-09-10 11:31:20 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
 
-2012-11-15 14:37:44 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+	* gst/rtp/dboolhuff.c:
+	* gst/rtp/dboolhuff.h:
+	* gst/rtp/gstrtpvp8pay.c:
+	  rtpvp8: fix bitstream parsing using the wrong kind of bitreader
+	  VP8 uses a probabilistic bool coder, not a straight bit coder.
+	  This fixes parsing when error-resilient is set.
+	  This commit includes a copy of libvpx's bool coder, BSD licensed.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=652694
 
-	* gst/udp/gstudpsrc.c:
-	  udpsrc: post error before stopping
+2011-07-12 18:03:53 -0400  Olivier Crête <olivier.crete@collabora.com>
 
-2012-11-12 11:14:34 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+	* gst/rtp/gstrtpvp8pay.c:
+	  rtpvp8: Reject unknown bitstream versions
 
-	* gst/rtpmanager/rtpsource.c:
-	  rtpsource: protect against invalid RTP packets
+2011-03-04 11:59:44 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
 
-2012-11-12 13:01:23 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+	* gst/rtp/gstrtpvp8pay.c:
+	  rtpvp8: Fix unitialized variable
+	  Makes macosx compiler happy.
 
-	* ext/vpx/gstvp8enc.c:
-	  vp8enc: Don't leak GstVideoCodecFrames that cause the creation of invisible frames
-	  Fixes bug #682714.
+2011-01-23 17:02:38 +0000  Sjoerd Simons <sjoerd@luon.net>
 
-2012-11-12 10:44:01 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+	* gst/rtp/gstrtpvp8depay.c:
+	  rtpvp8depay: Accept packets with only one byte of data
+	  When fragmenting partions it can happen that an RTP packet only caries 1
+	  byte of RTP data.
 
-	* ext/libpng/gstpngdec.c:
-	  pngdec: Actually use the stop() vfunc implementation
+2011-01-23 16:42:17 +0000  Sjoerd Simons <sjoerd@luon.net>
 
-2012-11-12 10:31:59 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+	* gst/rtp/gstrtpvp8pay.c:
+	* gst/rtp/gstrtpvp8pay.h:
+	  rtpvp8pay: Treat the frame header just like any other partition
+	  When setting up the initial mapping just act as if the global frame
+	  information is another partition. This saves special-casing it later in
+	  the actual packetizing code.
 
-	* ext/vpx/gstvp8dec.c:
-	  vp8dec: Fix last commit
+2010-05-16 17:23:17 +0100  Sjoerd Simons <sjoerd@luon.net>
 
-2012-11-09 11:22:30 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+	* gst/rtp/dboolhuff.LICENSE:
+	* gst/rtp/gstrtpvp8.c:
+	* gst/rtp/gstrtpvp8depay.c:
+	* gst/rtp/gstrtpvp8depay.h:
+	* gst/rtp/gstrtpvp8pay.c:
+	* gst/rtp/gstrtpvp8pay.h:
+	  rtpvp8: Add simple payloaders and depayloaders for VP8
+	  Minimal implementation of http://www.webmproject.org/code/specs/rtp/,
+	  version 0.3.2
 
-	* gst/udp/gstudpsrc.c:
-	  udpsrc: Also clear GError
+2012-11-01 18:42:39 +0000  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2012-11-09 11:20:27 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+	* gst/rtp/gstrtpgstpay.c:
+	  gstpay: fix for 1.0 events
+	  Caps events are sometimes not followed by a buffer but by an event. Flush any
+	  pending caps before we make a packet with the event.
+	  Chain up to the parent event handler before we attempt to push RTP packets, it
+	  might be a segment event.
 
-	* gst/udp/gstudpsrc.c:
-	  udpsrc: Don't error out if we get an ICMP destination-unreachable message when trying to read packets
-	  See bug #529454 and #687782 and commit
-	  751f2bb3646f2beff3698c9f09900dbd0ea08abb
+2012-11-01 18:42:24 +0000  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2012-11-09 16:31:05 +0100  Debarshi Ray <rishi@gnu.org>
+	* gst/rtp/gstrtpgstdepay.c:
+	  gstdepay: fix small leak
 
-	* ext/vpx/gstvp8dec.c:
-	  vp8dec: Don't give up so easily if failed to decode a frame
-	  https://bugzilla.gnome.org/show_bug.cgi?id=687436
+2012-11-01 17:44:11 +0000  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2012-11-12 09:48:45 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+	* gst/rtp/gstrtpgstdepay.c:
+	  gstdepay: add support for events
+	  Conflicts:
+	  gst/rtp/gstrtpgstdepay.c
 
-	* ext/vpx/gstvp8dec.c:
-	  vp8dec: Don't clear input state in reset()
-	  The input state is still valid after flushing until
-	  new caps arrive.
-	  Fixes bug #688092.
+2012-11-01 17:40:31 +0000  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2012-11-12 10:08:57 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+	* gst/rtp/gstrtpgstpay.c:
+	* gst/rtp/gstrtpgstpay.h:
+	  rtpgstpay: add support for sending events
+	  We currently only send tags and custom events. The other events
+	  might interfere with the receiver timings or are otherwise handled
+	  by RTP.
+	  Conflicts:
+	  gst/rtp/gstrtpgstpay.c
 
-	* ext/vpx/gstvp8dec.c:
-	  vp8dec: Also destroy decoder in set_format() if it was created already
-	  Fixes a memory leak.
+2012-11-01 15:54:58 +0000  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2012-11-12 10:10:15 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+	* gst/rtp/gstrtpgstpay.c:
+	* gst/rtp/gstrtpgstpay.h:
+	  gstpay: rewrite payloader
+	  Use adapter to assemble the payload and make a flush function to
+	  turn this payload into (fragmented) packets.
+	  Conflicts:
+	  gst/rtp/gstrtpgstpay.c
+	  gst/rtp/gstrtpgstpay.h
 
-	* ext/libpng/gstpngdec.c:
-	  pngdec: Keep the input state in reset()
-	  It's still valid after a flush and we might not get a new one.
+2012-11-01 13:03:44 +0000  Douglas Bagnall <douglas@paradise.net.nz>
 
-2012-11-02 16:39:28 +0100  Debarshi Ray <rishi@gnu.org>
+	* gst/videomixer/blend.c:
+	  videomixer: get height via GST_VIDEO_FRAME_HEIGHT, not _WIDTH
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687330
 
-	* ext/speex/gstspeexdec.c:
-	  speexdec: Don't unmap or finish_frame an invalid GstBuffer
-	  https://bugzilla.gnome.org/show_bug.cgi?id=687464
+2012-11-01 13:02:16 +0000  Douglas Bagnall <douglas@paradise.net.nz>
 
-2012-11-06 13:22:58 +0100  Marc Leeman <marc.leeman@gmail.com>
+	* gst/videobox/gstvideobox.c:
+	  videbox: fix border filling for gray formats
+	  Get the height via GST_VIDEO_FRAME_HEIGHT, not _WIDTH.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687330
 
-	* gst/rtsp/gstrtspsrc.c:
-	  rtsp: the RTCP port number is inclusive
-	  The configured port number pair has its upper bound set to the maximum
-	  allowed RTCP port, inclusive.
-	  See https://bugzilla.gnome.org/show_bug.cgi?id=639420
+2012-11-01 11:58:57 +0000  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2012-11-02 18:47:26 +0000  Wim Taymans <wim.taymans@collabora.co.uk>
+	* gst/rtp/gstrtpgstdepay.c:
+	  gstdepay: check for correct fragment offset
+	  Make sure we only insert the rtp packet in the adapter when the
+	  frag_offset matches. When the first packet of a fragment is dropped,
+	  it avoids putting the remaining packets in the adapter and processing
+	  the partial fragment.
+	  Conflicts:
+	  gst/rtp/gstrtpgstdepay.c
 
-	* gst/rtp/gstrtpvrawdepay.c:
-	  vrawdepay: don't access rtp buffer after unmap
-	  Read the marker bit before we unmap the rtp packet.
+2012-11-01 11:54:50 +0000  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2012-11-02 09:34:25 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+	* gst/rtp/gstrtpgstpay.c:
+	  gstpay: set C flag on all buffers of the fragment
+	  Set the C flags on all the fragments instead of only those with
+	  caps in them. This makes it easier in the receiver to check if there
+	  is a caps in the assembled fragments just by looking at the last RTP
+	  packet flags.
 
-	* ext/vpx/gstvp8dec.c:
-	  vp8dec: Immediately return if opening the decoder failed
-	  Instead of ignoring any errors.
+2012-11-01 10:55:03 +0000  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2012-11-01 22:02:39 +0100  Debarshi Ray <rishi@gnu.org>
+	* gst/rtp/gstrtpgstdepay.c:
+	  gstdepay: use the capsversion
+	  Take the caps from the input caps and store it in the slot given
+	  by capsversion.
 
-	* ext/vpx/gstvp8dec.c:
-	  vp8dec: Short circuit gst_vp8_dec_handle_frame if keyframe is missing
-	  https://bugzilla.gnome.org/show_bug.cgi?id=687376
+2012-11-01 10:52:25 +0000  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2012-11-01 13:03:44 +0000  Douglas Bagnall <douglas@paradise.net.nz>
+	* gst/rtp/gstrtpgstpay.c:
+	* gst/rtp/gstrtpgstpay.h:
+	  gstpay: send caps inline
+	  Place the capsversion on the outgoing caps so that they end up in
+	  an SDP as well. Receivers need to know what capsversion a particular
+	  caps is for to be able to match the caps to the CV in the RTP packets.
+	  Place the caps inside the RTP packet whenever the caps change.
+	  Based on patch by Andrzej Bieniek <andrzej.bieniek@pure.com>
+	  Conflicts:
+	  gst/rtp/gstrtpgstpay.c
+	  gst/rtp/gstrtpgstpay.h
 
-	* gst/videomixer/blend.c:
-	  videomixer: get height via GST_VIDEO_FRAME_HEIGHT, not _WIDTH
-	  https://bugzilla.gnome.org/show_bug.cgi?id=687330
+2012-10-31 16:17:48 +0000  Andrzej Bieniek <andrzej.bieniek@pure.com>
 
-2012-11-01 13:02:16 +0000  Douglas Bagnall <douglas@paradise.net.nz>
+	* gst/rtp/gstrtpgstpay.c:
+	  gstpay: add debug
+	  Conflicts:
+	  gst/rtp/gstrtpgstpay.c
 
-	* gst/videobox/gstvideobox.c:
-	  videbox: fix border filling for gray formats
-	  Get the height via GST_VIDEO_FRAME_HEIGHT, not _WIDTH.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=687330
+2012-10-31 16:09:26 +0000  Andrzej Bieniek <andrzej.bieniek@pure.com>
 
-2012-11-02 10:53:57 +1300  Douglas Bagnall <douglas@paradise.net.nz>
+	* gst/rtp/gstrtpgstdepay.c:
+	  depay: correctly skip caps header size
+	  Conflicts:
+	  gst/rtp/gstrtpgstdepay.c
 
-	* gst/videomixer/blend.c:
-	  videoconvert: Compare y offset with height, not width, when testing for overlap
-	  This could have prevented images showing that should have when the
-	  source height is greater than its width.
-	  When width exceeds height, as is common, it probably only caused a
-	  miniscule amount of unnecessary work.  I haven't tested.
+2012-09-28 00:43:38 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/matroska/matroska-demux.c:
+	* gst/matroska/matroska-ids.c:
+	* gst/matroska/matroska-ids.h:
+	  matroskademux: put streamheaders on vorbis/speex/flac/theora caps to make remuxing work
+	  https://bugzilla.gnome.org/show_bug.cgi?id=640589
 
 2012-10-28 00:07:46 +0100  Tim-Philipp Müller <tim@centricular.net>
 
@@ -1724,6 +6712,87 @@
 	  which are in gst-plugins-base.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=687013
 
+2012-10-27 13:24:24 +0100  Alexey Fisher <bug-track@fisher-privat.net>
+
+	* gst/matroska/matroska-demux.c:
+	  matroskademux: mark invisible VP8 frames with the DECODE_ONLY flag
+	  https://bugzilla.gnome.org/show_bug.cgi?id=654259
+
+2012-10-26 10:55:28 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/elements/multifile.c:
+	  tests: add multifilesrc test for fix in previous commit
+	  Make sure the stop-index set is honoured.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=654853
+
+2012-10-26 10:33:03 +0100  Stas Sergeev <stsp@aknet.ru>
+
+	* gst/multifile/gstmultifilesrc.c:
+	  multifilesrc: fix stop index handling
+	  Make sure the stop index is always honoured. Avoids
+	  endless loop if one wants to read and output the same
+	  file N times, for example.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=654853
+
+2012-08-25 02:26:29 +0400  Руслан Ижбулатов <lrn1986@gmail.com>
+
+	* gst/matroska/matroska-read-common.c:
+	  matroskademux: Support recursive SimpleTags
+	  Fixes #682644
+	  Depends on #682615
+
+2012-08-24 13:55:41 +0400  Руслан Ижбулатов <lrn1986@gmail.com>
+
+	* gst/matroska/matroska-ids.h:
+	* gst/matroska/matroska-read-common.c:
+	  matroskademux: Expand the tag mapping.
+	  * Also expose unknown tags as key=value pairs.
+	  * Arrange tag map in the same order tags are listed in Matroska spec, leaving
+	  unmapped tags as comments.
+	  * More specific TODOs.
+	  * Remove duplicate DATE define.
+	  Fixes #682615
+	  Depends on #682524
+
+2012-10-26 10:09:39 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/matroska/matroska-read-common.c:
+	  matroskademux: Fix uninitialized variable compiler warning
+
+2012-08-23 15:07:22 +0400  Руслан Ижбулатов <lrn1986@gmail.com>
+
+	* gst/matroska/matroska-ids.h:
+	* gst/matroska/matroska-read-common.c:
+	  matroskademux: Matroska tag TargetType support
+	  * Reads TargetType and TargetTypeValue from a Tag.
+	  * After Tag is completely read, processes taglist, substituting some of the
+	  tags depending on target type value and the presence of video/subtitle streams.
+	  * Supports reading two new simpletags - PART_NUMBER and TOTAL_PARTS
+	  Depends on #682448
+	  Fixes #682524
+
+2012-08-22 15:32:41 +0400  Руслан Ижбулатов <lrn1986@gmail.com>
+
+	* gst/matroska/matroska-demux.c:
+	* gst/matroska/matroska-ids.h:
+	* gst/matroska/matroska-read-common.c:
+	  matroskademux: Per-track tags for Matroska
+	  Requires Matroska file to have sane layout (track info before tag info).
+	  Uses replace-merge.
+	  Makes track UIDs 64-bit.
+	  Fixes #682448
+
+2012-10-25 20:18:36 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/multifile/gstmultifilesrc.c:
+	  multifilesrc: fix typo in property description
+
+2012-10-25 12:18:03 -0700  Michael Smith <msmith@rdio.com>
+
+	* gst/isomp4/qtdemux.c:
+	* gst/isomp4/qtdemux_fourcc.h:
+	  qtdemux: read video format header fully (so we can find 'pasp' atoms) for more fourccs. Fixes aspect ratio of prores files.
+
 2012-10-25 00:44:34 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
 
 	* gst/imagefreeze/gstimagefreeze.c:
@@ -1740,7 +6809,7 @@
 	  fixate its framerate before sending the query downstream.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=686837
 
-2012-10-25 12:32:03 +0100  Tim-Philipp Müller <tim@centricular.net>
+2012-10-25 12:33:24 +0100  Tim-Philipp Müller <tim@centricular.net>
 
 	* configure.ac:
 	* docs/plugins/inspect/plugin-1394.xml:
@@ -1808,7 +6877,7 @@
 	* docs/plugins/inspect/plugin-ximagesrc.xml:
 	* docs/plugins/inspect/plugin-y4menc.xml:
 	* win32/common/config.h:
-	  Back to development (bug fixing)
+	  Back to feature development
 
 === release 1.0.2 ===
 
@@ -2012,6 +7081,16 @@
 	  Conflicts:
 	  gst/matroska/matroska-mux.c
 
+2012-10-17 17:34:26 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfdetect.c:
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  Use gst_element_class_set_static_metadata()
+	  where possible. Avoids some string copies. Also re-indent
+	  some stuff. Also some indent fixes here and there.
+
 2012-10-17 17:03:39 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* ext/jpeg/gstjpegdec.c:
@@ -2739,6 +7818,11 @@
 	* gst/avi/gstavimux.c:
 	  avimux: send stream-start event
 
+2012-09-22 15:00:27 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	  rtpdtmfdepay: Use 1.0-style caps negotiation and audio/x-raw
+
 2012-09-22 16:08:05 +0100  Tim-Philipp Müller <tim@centricular.net>
 
 	* common:
@@ -4055,6 +9139,12 @@
 	* sys/osxaudio/gstosxaudiosink.c:
 	  replace _get_caps_reffed with _get_caps
 
+2012-09-14 17:08:49 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	  replace gst_element_class_set_details_simple with gst_element_class_set_metadata
+
 2012-09-14 17:07:26 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
 
 	* ext/jpeg/gstjpegdec.c:
@@ -5009,6 +10099,12 @@
 	* tests/check/elements/rtp-payloading.c:
 	  rtph264pay: Make it actually work after cleanups
 
+2012-08-08 17:40:34 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	  gst: Set alignment at the correct place of GstAllocationParams
+
 2012-08-08 17:39:07 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* ext/jpeg/gstjpegenc.c:
@@ -5700,6 +10796,11 @@
 	  Conflicts:
 	  gst/matroska/matroska-demux.c
 
+2012-07-17 16:39:02 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	  update for RTP buffer api changes
+
 2012-07-17 16:38:27 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst/isomp4/gstrtpxqtdepay.c:
@@ -5804,6 +10905,12 @@
 	  tests: Add some basic tests for jpegdec
 	  https://bugzilla.gnome.org/show_bug.cgi?id=676302
 
+2012-07-08 00:08:55 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  dtmfsrc: pass unhandled non-custom events to the base class
+	  https://bugzilla.gnome.org/show_bug.cgi?id=666626
+
 2012-07-06 19:11:02 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* gst/rtp/gstrtph264pay.c:
@@ -8246,6 +13353,11 @@
 	  Automatic update of common submodule
 	  From 7fda524 to 464fe15
 
+2012-04-05 18:02:56 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/dtmf/gstdtmf.c:
+	  gst: Update for GST_PLUGIN_DEFINE() API changes
+
 2012-04-05 17:36:38 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* ext/aalib/gstaasink.c:
@@ -8335,6 +13447,11 @@
 	* tests/check/elements/qtmux.c:
 	  tests: qtmux: ensure initialized test buffer memory
 
+2012-04-04 14:41:22 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/dtmf/Makefile.am:
+	  gst: Update versioning
+
 2012-04-04 14:33:23 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* configure.ac:
@@ -9199,6 +14316,12 @@
 	* sys/v4l2/gstv4l2bufferpool.c:
 	  update for bufferpool api change
 
+2012-03-15 13:37:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	  update for memory api changes
+
 2012-03-15 13:36:17 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* ext/annodex/gstcmmldec.c:
@@ -9415,6 +14538,12 @@
 	* gst/matroska/matroska-mux.c:
 	  gst: Fix some query leaks
 
+2012-03-11 19:06:59 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  fix for caps api changes
+
 2012-03-11 19:06:37 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* ext/aalib/gstaasink.c:
@@ -10232,6 +15361,11 @@
 	* gst/udp/gstudpsrc.c:
 	  fix compiler warnings
 
+2012-01-26 06:58:46 -0500  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  Fix compiler warnings
+
 2012-02-18 11:38:36 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* tests/check/elements/level.c:
@@ -10657,6 +15791,12 @@
 	* sys/ximage/gstximagesrc.c:
 	  GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING
 
+2012-02-08 16:37:13 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING
+
 2012-02-07 14:10:44 -0800  Ralph Giles <giles@mozilla.com>
 
 	* ext/shout2/gstshout2.c:
@@ -11090,6 +16230,13 @@
 	* gst/rtpmanager/rtpstats.h:
 	  rtpsession: Initialise the address pointer to NULL
 
+2012-01-27 12:07:43 +0100  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/dtmf/gstdtmfdetect.c:
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	  dtmf: Use new-style caps
+
 2012-01-27 16:37:19 +0100  Andoni Morales Alastruey <amorales@flumotion.com>
 
 	* sys/directsound/gstdirectsoundsink.c:
@@ -11260,6 +16407,13 @@
 	  cairo: fix build, make sure libgstvideo can be found
 	  https://bugzilla.gnome.org/show_bug.cgi?id=668648
 
+2012-01-25 14:50:50 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfdetect.c:
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	  port to new memory API
+
 2012-01-25 13:19:12 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* gst/rtpmanager/gstrtpbin.c:
@@ -11411,6 +16565,15 @@
 	* gst/rtp/gstrtptheorapay.c:
 	  update for new memory API
 
+2012-01-25 11:21:50 +0100  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/dtmf/gstdtmfdetect.c:
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	* gst/dtmf/gstrtpdtmfdepay.h:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  dtmf: port to 0.11
+
 2012-01-25 11:38:11 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* common:
@@ -13436,6 +18599,10 @@
 	* tests/icles/v4l2src-test.c:
 	  fix for moved interfaces
 
+2011-11-28 23:20:32 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge commit '7521b597f4dc49d8d168f368f0e7ebaf98a72156' into 0.11
+
 2011-11-28 21:27:53 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	  Merge remote-tracking branch 'origin/master' into 0.11
@@ -13705,6 +18872,15 @@
 	  various: fix pad template leaks
 	  https://bugzilla.gnome.org/show_bug.cgi?id=662664
 
+2011-11-28 13:08:27 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfdetect.c:
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  various: fix pad template ref leaks
+	  https://bugzilla.gnome.org/show_bug.cgi?id=662664
+
 2011-11-28 11:47:11 +0100  Chad <channa@caltech.edu>
 
 	* gst/debugutils/gsttaginject.c:
@@ -14911,6 +20087,12 @@
 	  gst/audioparsers/gstflacparse.c
 	  gst/isomp4/qtdemux.c
 
+2011-11-09 11:56:07 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  dtmf: fix compiler warning for uninitialized values
+
 2011-11-09 11:53:01 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* ext/annodex/gstcmmldec.c:
@@ -14926,6 +20108,21 @@
 	* gst/isomp4/qtdemux.c:
 	  qtdemux: minimal sanity check on creation datetime
 
+2011-11-04 17:54:04 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstdtmfsrc.h:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.h:
+	  dtmfsrc: Reject start/stop requests that come out of order
+
+2011-10-29 18:24:26 +0200  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  dtmf: Post messages when starting to send/receive DTMF
+	  This way, the UI can display the DTMF events as they as being sent.
+
 2011-11-02 12:58:12 -0400  Olivier Crête <olivier.crete@collabora.com>
 
 	* gst/rtp/gstrtph263ppay.c:
@@ -16643,6 +21840,63 @@
 	* ext/pulse/pulseutil.c:
 	  pulse: add some more channels
 
+2011-07-12 21:48:37 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  dtmf: Add more debug
+
+2011-07-12 19:09:02 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/dtmf/gstdtmfcommon.h:
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  dtmf: Max event type is 15
+
+2011-04-14 15:46:08 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstdtmfsrc.h:
+	  dtmfsrc: Align DTMF sound buffers with last-stop from event
+	  Also make sure the timestamps never go backwards
+
+2011-07-11 21:31:07 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  rtpdtmfsrc: Correctly recognize the end of a buffer
+
+2011-07-11 20:47:23 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  rtpdtmfsrc: Make sure rtpdtmfsrc timestamps don't overlap
+
+2011-07-11 20:46:20 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  rtpdtmfsrc: Put the inter digit interval at the end, not at the start
+	  The reason is to let rtpdtmfmux drop buffers during the inter digit interval,
+	  this way, there will be more silence around the DTMF tones so IVFs will have
+	  a better chance recognizing them.
+
+2011-04-14 17:08:57 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.h:
+	  rtpdtmfsrc: Start at the last_stop from the start event if there was one
+	  The goal is to try to not have a GAP between the audio and the DTMF
+
+2011-04-14 16:49:39 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.h:
+	  rtpdtmfsrc: Respect ptime from the caps
+	  Respect the ptime from the caps for the DTMF packets
+
+2011-07-11 21:30:28 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  rtpdtmfsrc: Just error out if there is no clock
+
 2011-08-24 14:16:44 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	  Merge branch 'master' into 0.11
@@ -21355,6 +26609,21 @@
 	* gst-plugins-good.spec.in:
 	  Add parser plugin
 
+2011-04-13 21:58:36 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/Makefile.am:
+	* gst/dtmf/gstdtmfcommon.h:
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfcommon.h:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	* gst/dtmf/gstrtpdtmfdepay.h:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.h:
+	  dtmf: Move duplicate #defines into a common include
+	  Centralize duplicated constants so they have the same value.
+	  Also standardise minimum tone duration to 250ms and minimum inter-tone
+	  interval to 100ms.
+
 2011-03-24 14:34:24 -0700  David Schleef <ds@entropywave.com>
 
 	* sys/directsound/gstdirectsoundsink.c:
@@ -21484,6 +26753,13 @@
 	  quicktime: move qtmux plugin from -bad to -good
 	  https://bugzilla.gnome.org/show_bug.cgi?id=636699
 
+2011-04-12 16:42:17 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  dtmf: Remove leftover MAEMO_BROKEN defines
+	  Remove defines to work around bugs in old Maemo releases
+
 2011-04-04 12:21:23 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
 
 	* gst/quicktime/gstqtmux.c:
@@ -22742,6 +28018,15 @@
 	  Jack 1.9.7 was released 20.Mar.2011, need to handle the deprecated api for this
 	  version too.
 
+2011-04-11 00:36:35 -0400  Thibault Saunier <thibault.saunier@collabora.co.uk>
+
+	* gst/dtmf/Makefile.am:
+	  android: make it ready for androgenizer
+	  Remove the android/ top dir
+	  Fixe the Makefile.am to be androgenized
+	  To build gstreamer for android we are now using androgenizer which generates the needed Android.mk files.
+	  Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git
+
 2011-04-10 18:56:52 -0400  Thibault Saunier <thibault.saunier@collabora.co.uk>
 
 	* Android.mk:
@@ -28093,6 +33378,24 @@
 	  multiple subframes.
 	  fixes #625825
 
+2010-12-31 00:12:53 -0800  David Schleef <ds@schleef.org>
+
+	* gst/dtmf/tone_detect.c:
+	  dtmf: Fix build failure caused by previous commit
+
+2010-12-30 18:20:47 -0800  David Schleef <ds@schleef.org>
+
+	* gst/dtmf/gstdtmfdetect.c:
+	* gst/dtmf/tone_detect.c:
+	* gst/dtmf/tone_detect.h:
+	  dtmf: build fixes for MSVC
+	  Use gint16 and G_PI.
+
+2010-12-30 18:19:47 -0800  David Schleef <ds@schleef.org>
+
+	* gst/dtmf/tone_detect.c:
+	  dtmf: reindent
+
 2010-12-31 02:16:54 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* ext/cairo/gsttimeoverlay.c:
@@ -29729,6 +35032,11 @@
 	  rtph264depay: fix segfault on empty payload
 	  https://bugzilla.gnome.org/show_bug.cgi?id=635843
 
+2010-11-25 19:06:27 +0100  Edward Hervey <bilboed@bilboed.com>
+
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	  dtmf: Remove dead assignments
+
 2010-11-18 00:45:29 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* configure.ac:
@@ -29903,6 +35211,19 @@
 	  gconf: Don't install schemas when GConf is disabled
 	  https://bugzilla.gnome.org/show_bug.cgi?id=632553
 
+2010-10-19 13:43:14 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  various (gst): add missing G_PARAM_STATIC_STRINGS flags
+	  Canonicalize property names as needed.
+
+2010-10-19 13:44:25 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  dtmfsrc: remove DEBUG_FUNCPTR from gobject vmethods
+
 2010-10-16 15:43:53 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* configure.ac:
@@ -31259,6 +36580,14 @@
 	  content and try resuming from next cluster onwards.
 	  Fixes #620790.
 
+2010-08-26 02:54:55 -0400  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  dtmfsrc: Make the dtmfsrc accept events sent with gst_element_send_event
+	  The doc says to use gst_element_send_event on the pipeline, but if
+	  we are to call it on the element itself, it's a noop. This should make it
+	  handle the event properly before delegating it to basesrc.
+
 2010-09-06 12:22:11 +0200  American Dynamics <GStreamer-Bugs at tycosp.com>
 
 	* gst/rtsp/gstrtspsrc.c:
@@ -34004,6 +39333,12 @@
 	  Also don't build the index in push mode for non-TIME seeks,
 	  things will go wrong here otherwise.
 
+2010-06-07 11:15:26 -0400  Olivier Crête <tester@tester.ca>
+
+	* gst/dtmf/gstdtmfdetect.c:
+	* gst/dtmf/gstdtmfdetect.h:
+	  dtmfdetect: Only works with rate=8000, fix in caps
+
 2010-06-02 19:16:20 +0100  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
 
 	* gst/rtp/gstrtph264pay.c:
@@ -34204,6 +39539,12 @@
 	  pulsesink: Add comments to remove the provide-clock message posting once we depend on base 0.10.30
 	  baseaudiosink does all this for us now.
 
+2010-05-07 18:42:06 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  dtmf: Remove rtpdtmfmux stream-lock code
+
 2010-06-02 16:36:11 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
 
 	* gst/flv/gstflvdemux.c:
@@ -37794,6 +43135,27 @@
 	* gst/matroska/matroska-demux.c:
 	  matroskademux: prefer index of video track to perform seeking
 
+2010-03-25 22:58:47 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/dtmf/gstdtmfdetect.c:
+	  dtmfdetect: if we tell that we handle gap flags, then do so
+
+2010-03-25 22:55:32 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/dtmf/gstdtmfdetect.c:
+	  dtmfdetect: use glib types
+
+2010-03-25 22:54:49 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/dtmf/gstdtmfdetect.c:
+	  dtmfdetect: fix classification
+
+2010-03-25 22:53:20 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/dtmf/gstdtmfdetect.c:
+	  dtmfdetect: reformat message docs
+	  Use a list like in other element docs as an untweaked docbook table look ugly.
+
 2010-03-24 16:19:53 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
 
 	* gst/avi/gstavidemux.c:
@@ -37852,6 +43214,25 @@
 	  Don't inlcude locale.h which we include in gettext.h if needed. Guard the
 	  inlcude like we do in the simillar headers in core.
 
+2010-03-22 13:16:33 +0100  Benjamin Otte <otte@redhat.com>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	  Add -Wwrite-strings
+	  and fix its warnings
+
+2010-03-22 12:02:16 +0100  Benjamin Otte <otte@redhat.com>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  Add -Wredundant-decls flag
+	  and fix warnings from it
+
+2010-03-21 21:39:18 +0100  Benjamin Otte <otte@redhat.com>
+
+	* gst/dtmf/gstrtpdtmfdepay.h:
+	  Add -Wmissing-declarations -Wmissing-prototypes to configure flags
+	  And fix all warnings
+
 2010-03-21 17:46:06 +0100  Benjamin Otte <otte@redhat.com>
 
 	* configure.ac:
@@ -38043,6 +43424,14 @@
 	  apetag: minor Makefile.am surgery
 	  -I$(top_srcdir)/gst-libs/ is already in $(GST_CFLAGS)
 
+2010-03-18 17:30:26 +0100  Benjamin Otte <otte@redhat.com>
+
+	* gst/dtmf/gstdtmfdetect.c:
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  gst_element_class_set_details => gst_element_class_set_details_simple
+
 2010-03-04 22:12:35 +0100  Andoni Morales Alastruey <ylatuya@gmail.com>
 
 	* ext/raw1394/gst1394clock.c:
@@ -42536,6 +47925,20 @@
 	* gst/qtdemux/qtdemux.c:
 	  qtdemux: fix typo and grammar
 
+2009-11-22 19:30:58 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/dtmf/Makefile.am:
+	  Clean up LDFLAGS, LIBS, CFLAGS
+	  Fix order, fix variables that don't exist, like GST_LIBS_LIBS,
+	  use $(LIBM) instead of -lm, and move _LIBS from LDFLAGS to LIBADD.
+	  Spotted by Havard Graff.
+
+2009-11-20 10:31:47 -0500  Olivier Crête <tester@tester.ca>
+
+	* gst/dtmf/tone_detect.h:
+	  dtmf: Use _stdint.h from configure
+	  https://bugzilla.gnome.org/show_bug.cgi?id=602465
+
 2009-11-20 10:30:00 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* gst/deinterlace/gstdeinterlace.c:
@@ -42553,6 +47956,13 @@
 	* tests/check/elements/wavpackparse.c:
 	  wavpackparse: Fix unit test for recent position reporting changes
 
+2009-11-19 20:33:07 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/tone_detect.c:
+	* gst/dtmf/tone_detect.h:
+	  dtmf: Update dtmfdetect to make it MSVC friendly
+	  https://bugzilla.gnome.org/show_bug.cgi?id=602465
+
 2009-11-19 16:09:38 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* ext/wavpack/gstwavpackparse.c:
@@ -42940,6 +48350,19 @@
 	* gst/equalizer/gstiirequalizer.c:
 	  equalizer: printf format fix
 
+2009-11-04 22:19:58 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/Makefile.am:
+	* gst/dtmf/gstdtmf.c:
+	* gst/dtmf/gstdtmfdetect.c:
+	* gst/dtmf/gstdtmfdetect.h:
+	* gst/dtmf/tone_detect.c:
+	* gst/dtmf/tone_detect.h:
+	  dtmfdetect: Add DTMF tone detector
+	  It looks at raw audio data and emits messages when DTMF is detected.
+	  The dtmf detector is the same Goertzel implementation used in FreeSwitch
+	  and Asterisk. It is in the public domain.
+
 2009-11-05 12:13:44 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
 
 	* gst/avi/gstavimux.c:
@@ -42986,6 +48409,21 @@
 	* gst/equalizer/gstiirequalizernbands.c:
 	  equalizer: Some cleanup
 
+2009-11-04 22:21:35 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  dtmfsrc: Reject empty caps
+
+2009-11-04 22:21:22 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  dtmfsrc: Use log level for repeated debug messages
+
+2009-11-04 20:05:17 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  dtmfsrc: Allow for any samplerate
+
 2009-10-07 09:31:19 -0400  Gabriel Millaire <gabriel.millaire@collabora.co.uk>
 
 	* gst/rtp/gstrtpceltdepay.c:
@@ -43542,6 +48980,11 @@
 	  initialized, even though they can't possibly actually be used
 	  uninitialized.
 
+2009-10-11 11:35:23 +0200  Josep Torra <n770galaxy@gmail.com>
+
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	  dtmf: fix warnings in macosx snow leopard
+
 2009-10-10 00:37:08 +0200  Josep Torra <n770galaxy@gmail.com>
 
 	* ext/jpeg/gstjpegdec.c:
@@ -45300,6 +50743,31 @@
 	  is set we'll probe the formats again instead of using previously
 	  detected ones. Fixes bug #591747.
 
+2009-08-11 16:42:51 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  dtmfsrc: Empty event queue on finalize
+
+2009-08-11 16:39:42 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  dtmf: Use GSlice for internal event structures
+
+2009-08-11 16:23:20 -0400  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  rtpdtmfsrc: Cleanup events on finalize
+	  Problem found by Laurent Glayal
+	  Fixes bug #591440
+
+2009-08-11 16:23:20 -0400  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  rtpdtmfsrc: Cleanup events on finalize
+	  Problem found by Laurent Glayal
+	  Fixes bug #591440
+
 2009-08-11 17:30:41 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* configure.ac:
@@ -55191,6 +60659,11 @@
 	  Make the state change function a bit more readable and only pause after the
 	  parent had a change to pause first.
 
+2009-03-09 23:43:55 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/dtmf/Makefile.am:
+	  Makefile.am: no static libs for plugins
+
 2009-03-20 17:22:32 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
 
 	* gst/qtdemux/qtdemux.c:
@@ -55696,6 +61169,17 @@
 	  Avoid a crash in avi with subtitles by only dereferencing the video description
 	  when we actually are dealing with video in the _invert function.
 
+2009-02-25 11:45:05 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstdtmfsrc.h:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  docs: various doc fixes
+	  No short-desc as we have them in the element details.
+	  Also keep things (Makefile.am and sections.txt) sorted.
+	  Reword ambigous returns. No text after since please.
+
 2009-02-24 17:58:32 +0000  Jan Schmidt <thaytan@noraisin.net>
 
 	* gst/udp/gstudpsrc.c:
@@ -55912,6 +61396,443 @@
 	* configure.ac:
 	  Back to development -> 0.10.14.1
 
+2009-02-20 18:16:02 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  Document rtpdtmfdepay a bit
+
+2009-02-20 17:41:37 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmf.c:
+	  Moved dtmf elements from gst-plugins-farsight to -bad
+
+2009-02-20 17:40:57 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstdtmfsrc.h:
+	* gst/dtmf/gstrtpdtmfdepay.h:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.h:
+	  Fix up documentation blobs SGML
+
+2009-02-20 17:37:43 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmf.c:
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstdtmfsrc.h:
+	* gst/dtmf/gstrtpdtmfcommon.h:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	* gst/dtmf/gstrtpdtmfdepay.h:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.h:
+	  Re-indent to Gst style
+
+2009-02-18 13:30:44 -0500  Laurent Glayal <spglegle@yahoo.fr>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Missing format directive
+
+2008-12-04 21:21:44 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	* gst/dtmf/gstrtpdtmfdepay.h:
+	  [MOVED FROM GST-P-FARSIGHT] Allow setting a maximum duration to a RTP DTMF event
+
+2008-12-04 21:11:17 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	  [MOVED FROM GST-P-FARSIGHT] Improve the minimum quanta to make it impossible for the duration to fall down to 0
+
+2008-12-01 18:31:48 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	* gst/dtmf/gstrtpdtmfdepay.h:
+	  [MOVED FROM GST-P-FARSIGHT] Allow setting a minimum size of a sound quanta in the dtmf depayloader
+
+2008-12-11 17:54:18 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/.git-darcs-dir:
+	  [MOVED FROM GST-P-FARSIGHT] Remove .git-darcs-dir files
+
+2008-12-01 17:37:10 -0500  HÃ¥vard Graff <havard.graff@tandberg.com>
+
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	  [MOVED FROM GST-P-FARSIGHT] Do wierd casting of the volume to make MSVC happy
+
+2008-10-15 16:21:50 -0400  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Clarify the documentation of the "event-type" field when specifying dtmf events
+
+2008-07-22 21:39:38 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Remove g_debugs
+	  20080722213938-3e2dc-44a82d017fe66f3112301c410aa0b543de6156ad.gz
+
+2008-06-13 23:57:23 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Take rate from the peers caps if possible
+	  20080613235723-3e2dc-15690ee42708c539e1be12e20e076a5613faea96.gz
+
+2008-06-13 23:41:44 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstdtmfsrc.h:
+	  [MOVED FROM GST-P-FARSIGHT] Put the sample rate in dtmfsrc into a variable
+	  20080613234144-3e2dc-e60070943bec829b703b8821c7aa4351a02deebe.gz
+
+2008-06-13 23:30:06 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Take the clock-rate from the caps in rtpdtmfsrc
+	  20080613233006-3e2dc-a7d4e918643f4f8c1bb2cc2678558c654025920e.gz
+
+2008-04-28 22:22:37 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/Makefile.am:
+	  [MOVED FROM GST-P-FARSIGHT] Link modules with libm where required
+	  20080428222237-3e2dc-b1e9120c1e9ca1a510bfd7c27e2d45f0d4a12504.gz
+
+2008-04-12 23:44:18 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	  [MOVED FROM GST-P-FARSIGHT] Fix byte ordering issues with dtmfsrc and rtpdtmfdepay.. use of G_STRINGIFY to avoid error on MSVC
+	  20080412234418-4f0f6-4828d1613dfcd564afd236dfc8fb57a299092f83.gz
+
+2008-03-20 19:14:38 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	* gst/dtmf/gstrtpdtmfdepay.h:
+	  [MOVED FROM GST-P-FARSIGHT] Fix copyrights again, per smcv's advice..
+	  20080320191438-4f0f6-671c9db5d996a4601df017ceab4af6d16469c966.gz
+
+2008-03-19 21:17:31 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Make it clear that dtmfsrc also takes named events as input
+	  20080319211731-3e2dc-26c729f6dc8db27e71cf6b22646a81530dbf862f.gz
+
+2008-03-20 18:48:41 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	  [MOVED FROM GST-P-FARSIGHT] debug message made into errors because that's what they are...
+	  20080320184841-4f0f6-8a2d283297b02713dade0ae4acaa5f6e0f67eace.gz
+
+2008-03-20 18:39:37 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	  [MOVED FROM GST-P-FARSIGHT] Clean unused stuff...
+	  20080320183937-4f0f6-bcb841cdc07f9e9677512f4b50b4b659a58c6783.gz
+
+2008-03-20 18:39:12 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	* gst/dtmf/gstrtpdtmfdepay.h:
+	  [MOVED FROM GST-P-FARSIGHT] Fix copyrights
+	  20080320183912-4f0f6-689365d5a406632e3d088fac74e4fb6f8a4eb0ea.gz
+
+2008-03-20 01:13:01 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/Makefile.am:
+	* gst/dtmf/gstdtmf.c:
+	* gst/dtmf/gstrtpdtmfsrc.h:
+	  [MOVED FROM GST-P-FARSIGHT] Adding support for rtpdtmfdepay
+	  20080320011301-4f0f6-d36a5d24be20336e36c4796d75476c9b5ee1a7e1.gz
+
+2008-03-19 19:32:51 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] encoding name has to be upper-case
+	  20080319193251-3e2dc-1581b33be9b486e35ec4948009677ccd5ffdc098.gz
+
+2008-03-20 00:51:47 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfcommon.h:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	* gst/dtmf/gstrtpdtmfdepay.h:
+	  [MOVED FROM GST-P-FARSIGHT] Adding necessary files for rtpdtmfdepay
+	  20080320005147-4f0f6-550fe22f70152f3aab3dcd7a6b02cbf81e89232d.gz
+
+2008-03-20 00:50:41 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Fix typos
+	  20080320005041-4f0f6-9d22fa5d155e35b605ea85b1fd9e7197a882a1f0.gz
+
+2008-02-16 13:41:40 +0000  Sjoerd Simons <sjoerd@luon.net>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] dtmfsrc: Correctly set the endianess in the caps to the machines endianess
+	  20080216134140-93b9a-40a3a9d7ac1679c5e0dfd24a6b91e4aba6cc6496.gz
+
+2007-09-17 17:52:33 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Search&Replace oops
+	  20070917175233-3e2dc-57f579c4b890993f49fa8e9e6470a3eb79d2b922.gz
+
+2007-09-17 17:51:33 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] events dont yet belong in the caps
+	  20070917175133-3e2dc-fd1d83b7826b898110fc571ae7c3440f1887434d.gz
+
+2007-09-17 16:08:20 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Add patch to make it work with maemo dsp sources that payload incorrectly
+	  20070917160820-3e2dc-06b1b1d1b0918b30dabea5a0714cb732b3b8d8dd.gz
+
+2007-09-17 04:26:49 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Oops, set to no preroll when playing->paused too
+	  20070917042649-3e2dc-94adb6aa0617e815a6e233232dabb4bbc48dc82c.gz
+
+2007-09-17 00:36:54 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.h:
+	  [MOVED FROM GST-P-FARSIGHT] Complete port to basesrc
+	  20070917003654-3e2dc-db0f84dabd9dd1ac929a0461865b8aaa8ef91a77.gz
+
+2007-09-17 00:24:12 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.h:
+	  [MOVED FROM GST-P-FARSIGHT] Add caps negotiation function
+	  20070917002412-3e2dc-ca266816e9629746e9083c5bb8b7f73b94a9b2b0.gz
+
+2007-09-17 00:16:59 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Properly free non-start events
+	  20070917001659-3e2dc-a571777e3ecfb90989f87412f554aa10a31cc2ca.gz
+
+2007-09-17 00:15:52 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Make interval and packet_redundancy into uint
+	  20070917001552-3e2dc-60032e547b3669b87317c981d985c156aab91b40.gz
+
+2007-09-16 19:44:08 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.h:
+	  [MOVED FROM GST-P-FARSIGHT] Make the rtp dtmf src use basesrc
+	  20070916194408-3e2dc-734000130dce2434a014acf843d641ff0e60aa5a.gz
+
+2007-09-16 19:41:01 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Make dtmf src code nicer
+	  20070916194101-3e2dc-a8be8c509c65400d1d3962da02e67d15d2054316.gz
+
+2007-09-14 04:20:42 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstdtmfsrc.h:
+	  [MOVED FROM GST-P-FARSIGHT] Implement stopping in a nice thread safe way
+	  20070914042042-3e2dc-1fe257ff4b72aca4b0eb5f285a14650b8df268c3.gz
+
+2007-09-14 04:18:34 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Remove get_times (Wim says its only good for really fake sources)
+	  20070914041834-3e2dc-fff4d5da2a145f19e7b610a1027d2c4d4bc5eae0.gz
+
+2007-09-13 21:21:45 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] using the unlock method of basesrc
+	  20070913212145-4f0f6-0e438a681bf1651c0cc0d8fa3269aed3f1668b6b.gz
+
+2007-09-13 21:12:26 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] more debug
+	  20070913211226-4f0f6-bc32b5828fc8e0323c8a6eee779a38145aacd593.gz
+
+2007-09-13 20:46:14 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] added debugs
+	  20070913204614-4f0f6-68c2a69ae7a1efca6e13c116dbad7f9b686f0242.gz
+
+2007-09-13 19:20:53 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Make sure to unlock the thread when going to ready and to flush the queue when moving to paused or playing
+	  20070913192053-4f0f6-76c3925380d1a30988286170535a65dea64a5583.gz
+
+2007-09-13 17:55:20 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstdtmfsrc.h:
+	  [MOVED FROM GST-P-FARSIGHT] Changed dtmfsrc into a subclass of GstBaseSrc
+	  20070913175520-4f0f6-16ca4bf93690072f3e836d1c8a5b52cf7a421916.gz
+
+2007-09-04 22:57:53 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstdtmfsrc.h:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.h:
+	  [MOVED FROM GST-P-FARSIGHT] Add another fix for a possible race condition
+	  20070904225753-4f0f6-5ba8c4260c002bb27eb98e9faba3c15799357b57.gz
+
+2007-09-04 21:52:24 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Add comment to explain push back
+	  20070904215224-3e2dc-d92ac1f403dcf571546a7c53f18809f840eea51d.gz
+
+2007-09-04 20:55:09 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Properly do the locking to avoid race conditions with clock unscheduling
+	  20070904205509-3e2dc-da19900b51af6aedb6547f4f392bef4d1061dec2.gz
+
+2007-09-01 00:03:24 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] oups, I did it again...
+	  20070901000324-4f0f6-3d8b46691ee520537b06c511a5e732f5b812b844.gz
+
+2007-08-31 23:54:28 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] oups, sorry.. DTMF, not RTP_DTMF for this file...
+	  20070831235428-4f0f6-00b606bfb4892e4f217c440b611cc794ab0de55a.gz
+
+2007-08-31 23:44:13 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstdtmfsrc.h:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.h:
+	  [MOVED FROM GST-P-FARSIGHT] Fixes the deadlock when pausing the dtmfsrc and rtpdtmfsrc. Had to push something on the async queue to release the blocking async_queue_pop(). Thanks to Olivier for the solution.
+	  20070831234413-4f0f6-793cf35fc43636e7275258cc7063fc068f5efa0a.gz
+
+2007-08-28 22:15:34 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstdtmfsrc.h:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.h:
+	  [MOVED FROM GST-P-FARSIGHT] ClockID when waiting for buffer is now unscheduled when stopping the task. Various fixes to avoid bugs (thanks to -Wall -Werror). Fixes to allow the merge of the branch.
+	  20070828221534-4f0f6-b0d6a4fe48c4e2a16b9ff69cb310087c970ce48e.gz
+
+2007-08-28 17:15:46 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Cleaned up the code a bit, no use of GST_* and return value verification from gst_*
+	  20070828171546-4f0f6-bdeb4b1b7f99f9464aabe5c43bd4a4d2025262b6.gz
+
+2007-08-27 19:56:10 +0000  Olivier Crete <olivier.crete@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Fix overly long lines and tabs
+	  20070827195610-3e2dc-396a3fa01e16f184e4109c71fe2deb6e516bdf0d.gz
+
+2007-08-27 19:26:18 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstdtmfsrc.h:
+	  [MOVED FROM GST-P-FARSIGHT] untabbified dtmfsrc
+	  20070827192618-4f0f6-77d68070464f1b5f9a46cb6eec2d922340143c04.gz
+
+2007-08-27 17:24:24 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Fix RTP timestamps by sending a new_segment event to the payloader
+	  20070827172424-4f0f6-d20907e3d436d50bfe74eb4fc3d2d6d7b6b6dbc5.gz
+
+2007-08-27 17:23:39 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Better handling of packets, we send the same duration for all packets to avoid huge packets when min duration defines are modified.
+	  20070827172339-4f0f6-cc93304437ea376fff6458c74c46c19f6920d329.gz
+
+2007-08-27 17:23:22 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] Changing minimum values to work better on some gateways
+	  20070827172322-4f0f6-5bf2bffa59a8244538dced795fa7d7649452ca91.gz
+
+2007-08-22 20:16:53 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] The DTMF tone generator now respects the volume argument passed in the event
+	  20070822201653-4f0f6-8b7ff874006e11f5a74d0fd91e5a9a43cd082ada.gz
+
+2007-08-22 18:01:33 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.h:
+	  [MOVED FROM GST-P-FARSIGHT] don't know why I did that...
+	  20070822180133-4f0f6-6a7382f6c7d3630f91da384e1904763c7ea6fa1a.gz
+
+2007-08-22 17:55:33 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.h:
+	  [MOVED FROM GST-P-FARSIGHT] Ported the event queue work from dtmfsrc to rtpdtmfsrc
+	  Added a queue based system for the rtpdtmfsrc. Now it waits for start/stop messages on the queue, and makes sure that the minimum duty cycle (120ms) is respected between each
+	  tone, including inter-digit silence.
+	  20070822175533-4f0f6-f27414c406f1f7b00c9a9084a988cf3a7930fe5c.gz
+
+2007-08-22 17:54:44 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	  [MOVED FROM GST-P-FARSIGHT] ouch, printing with arguments but without %s.. that made it segfault a few times...
+	  20070822175444-4f0f6-445ea6ce7a9668d04cf999af772a504ec74fb67a.gz
+
+2007-08-22 17:51:26 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstdtmfsrc.h:
+	  [MOVED FROM GST-P-FARSIGHT] Moved the timestamp from the event to dtmfsrc structure since we have only one event at a time, so let's keep it stored in the dtmfsrc struct
+	  20070822175126-4f0f6-53bcda2bd8ae8c56d29e62e69ac19a30e08ad350.gz
+
+2007-08-20 20:38:26 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstdtmfsrc.h:
+	  [MOVED FROM GST-P-FARSIGHT] Added a queue based system for the dtmfsrc. Now it waits for start/stop messages on the queue, and makes sure that the minimum duty cycle (120ms) is respected between each tone, including inter-digit silence.
+	  20070820203826-4f0f6-750a22b612a5e495e767666934465c34fe32074b.gz
+
+2007-08-20 18:48:52 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/Makefile.am:
+	* gst/dtmf/gstdtmf.c:
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstdtmfsrc.h:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.h:
+	  [MOVED FROM GST-P-FARSIGHT] Added dtmfsrc, a DTMF Tone Generator, and made it part of the 'dtmf' plugin.
+	  20070820184852-4f0f6-a0d85e67708290aebafa89ab79d3cedd5815b620.gz
+
+2007-08-20 18:48:00 +0000  Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+	* gst/dtmf/.git-darcs-dir:
+	* gst/dtmf/Makefile.am:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfsrc.h:
+	  [MOVED FROM GST-P-FARSIGHT] Moved rtpdtmf to dtmf directory
+	  20070820184800-4f0f6-fa33ea974510161de8c9951c39087af3613b65a4.gz
+
 2009-02-21 12:47:00 +0100  Thomas Vander Stichele <thomas (at) apestaart (dot) org>
 
 	* ext/flac/gstflacdec.c:
diff --git a/Makefile.in b/Makefile.in
index f71e3605b..2684aaf56 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -27,23 +26,51 @@
 # set CRUFT_FILES and/or CRUFT_DIRS in your Makefile.am when you include this
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -63,16 +90,15 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = README $(am__configure_deps) $(noinst_HEADERS) \
-	$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(srcdir)/config.h.in $(srcdir)/gst-plugins-good.spec.in \
+DIST_COMMON = $(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_srcdir)/common/po.mak \
-	$(top_srcdir)/common/release.mak \
-	$(top_srcdir)/common/win32.mak $(top_srcdir)/configure \
-	ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS compile \
-	config.guess config.rpath config.sub depcomp install-sh \
-	ltmain.sh missing
+	$(top_srcdir)/common/cruft.mak INSTALL NEWS README AUTHORS \
+	ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/configure $(am__configure_deps) \
+	$(srcdir)/config.h.in $(srcdir)/gst-plugins-good.spec.in \
+	ABOUT-NLS $(noinst_HEADERS) COPYING compile config.guess \
+	config.rpath config.sub depcomp install-sh missing ltmain.sh
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -80,7 +106,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-gcc-inline-assembly.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 \
@@ -118,21 +143,28 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = config.h
 CONFIG_CLEAN_FILES = gst-plugins-good.spec
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -141,11 +173,33 @@ am__can_run_installinfo = \
 HEADERS = $(noinst_HEADERS)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-	distdir dist dist-all distcheck
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+	cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+	$(LISP)config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+CSCOPE = cscope
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
@@ -155,6 +209,7 @@ am__remove_distdir = \
       && rm -rf "$(distdir)" \
       || { sleep 5 && rm -rf "$(distdir)"; }; \
   else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
 am__relativize = \
   dir0=`pwd`; \
   sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -182,6 +237,7 @@ am__relativize = \
   reldir="$$dir2"
 GZIP_ENV = --best
 DIST_ARCHIVES = $(distdir).tar.xz
+DIST_TARGETS = dist-xz
 distuninstallcheck_listfiles = find . -type f -print
 am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
   | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@@ -351,6 +407,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -633,22 +690,25 @@ distclean-libtool:
 	-rm -f libtool config.lt
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -663,57 +723,12 @@ $(RECURSIVE_TARGETS):
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-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: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -729,12 +744,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS) config.h.in $(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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -746,15 +756,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS) config.h.in $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -763,9 +769,31 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+	test ! -s cscope.files \
+	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+	-rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
 
 distdir: $(DISTFILES)
 	$(am__remove_distdir)
@@ -836,39 +864,35 @@ distdir: $(DISTFILES)
 	|| chmod -R a+r "$(distdir)"
 dist-gzip: distdir
 	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-bzip2: distdir
 	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-lzip: distdir
 	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
-	$(am__remove_distdir)
-
-dist-lzma: distdir
-	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 dist-xz: distdir
 	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-tarZ: distdir
 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-shar: distdir
 	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-zip: distdir
 	-rm -f $(distdir).zip
 	zip -rq $(distdir).zip $(distdir)
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
-dist dist-all: distdir
-	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
-	$(am__remove_distdir)
+dist dist-all:
+	$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+	$(am__post_remove_distdir)
 
 # This target untars the dist file and tries a VPATH configuration.  Then
 # it guarantees that the distribution is self-contained by making another
@@ -879,8 +903,6 @@ distcheck: dist
 	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
 	*.tar.bz2*) \
 	  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*) \
@@ -892,9 +914,9 @@ distcheck: dist
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
 	esac
-	chmod -R a-w $(distdir); chmod u+w $(distdir)
-	mkdir $(distdir)/_build
-	mkdir $(distdir)/_inst
+	chmod -R a-w $(distdir)
+	chmod u+w $(distdir)
+	mkdir $(distdir)/_build $(distdir)/_inst
 	chmod a-w $(distdir)
 	test -d $(distdir)/_build || exit 0; \
 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
@@ -927,7 +949,7 @@ distcheck: dist
 	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
 	  && cd "$$am__cwd" \
 	  || exit 1
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 	@(echo "$(distdir) archives ready for distribution: "; \
 	  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'
@@ -1063,14 +1085,13 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
-	ctags-recursive install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) all install-am install-strip
 
-.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-lzip dist-lzma \
-	dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \
+	am--refresh check check-am clean clean-cscope clean-generic \
+	clean-libtool cscope cscopelist-am ctags ctags-am dist \
+	dist-all dist-bzip2 dist-gzip dist-hook dist-lzip 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 \
@@ -1081,7 +1102,7 @@ uninstall-am:
 	installcheck installcheck-am installdirs installdirs-am \
 	maintainer-clean maintainer-clean-generic mostlyclean \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-recursive uninstall uninstall-am
+	tags tags-am uninstall uninstall-am
 
 
 win32-debug:
@@ -1124,11 +1145,17 @@ check-exports:
 	if test $$fail != 0; then \
 	  echo '-----------------------------------------------------------'; \
 	  echo 'Run this to update the .def files:'; \
-	  echo 'make check-exports 2>&1 | patch -p1'; \
+	  echo 'make update-exports'; \
 	  echo '-----------------------------------------------------------'; \
 	fi; \
 	exit $$fail
 
+update-exports:
+	make check-exports 2>&1 | patch -p1
+	git add win32/common/libgst*.def
+	git diff --cached -- win32/common/
+	echo '^^^--- updated and staged changes above'
+
 # complain about nonportable printf format strings (%lld, %llu, %zu etc.)
 check-nonportable-print-format:
 	@fail=0 ; \
@@ -1210,7 +1237,7 @@ win32-update:
 	$(top_srcdir)/common/gst-indent win32/common/tuner-marshal.c
 	cp $(top_builddir)/win32/common/config.h-new \
 	    $(top_srcdir)/win32/common/config.h
-.PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload
+.PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload lcov-clean
 
 # run lcov from scratch, always
 lcov-reset:
@@ -1221,10 +1248,14 @@ lcov-reset:
 lcov:
 	$(MAKE) lcov-reset
 
-# reset run coverage tests
-@GST_GCOV_ENABLED_TRUE@lcov-run:
+# reset lcov stats
+@GST_GCOV_ENABLED_TRUE@lcov-clean:
 @GST_GCOV_ENABLED_TRUE@	@-rm -rf lcov
 @GST_GCOV_ENABLED_TRUE@	lcov --directory . --zerocounters
+
+# reset run coverage tests
+@GST_GCOV_ENABLED_TRUE@lcov-run:
+@GST_GCOV_ENABLED_TRUE@	-$(MAKE) lcov-clean
 @GST_GCOV_ENABLED_TRUE@	-if test -d tests/check; then $(MAKE) -C tests/check inspect; fi
 @GST_GCOV_ENABLED_TRUE@	-$(MAKE) check
 
diff --git a/NEWS b/NEWS
index a99f35ce7..e7cb60cb4 100644
--- a/NEWS
+++ b/NEWS
@@ -1,219 +1,2 @@
-This is GStreamer Good Plugins 1.0.8
+This is GStreamer Good Plugins 1.1.2
 
-Changes since 1.0.7:
-
-      * pngenc: fix massive memory leak
-      * pngdec: parse incoming data into frames before decoding
-      * osvideo: many osxvideosink fixes
-      * udpsink, multiudpsink, dynudpsink: bind socket before using it, fixes sending udp on windows
-
-Bugs fixed since 1.0.7:
-     
-      * 682110 : qtdemux: discont flag set on multiple buffers in push mode
-      * 692400 : udpsrc: fix socket options not getting set on windows, resulting in packet drop in high bitrate movie
-      * 693727 : rtpvrawpay/depay negotiation broken
-      * 699260 : pngenc: unmap source frame when done
-      * 699303 : matroskademux: stream-format=raw missing from aac caps
-      * 699314 : rtph264pay: CRITICAL **: gst_adapter_map: assertion `size > 0' failed
-      * 700047 : pngdec: make decoding work without png parser
-      * 700382 : qtdemux: handle 96kHz/24 bits ALAC audio
-      * 700514 : rtpmp4apay: clear config buffer before using it
-      * 700878 : udpsink: Not sending anything on Windows 
-      * 701586 : rtspsrc memleak
-      * 702167 : matroskademux: missing mutex unlock leading to wrong STREAM_LOCK count
-      * 702457 : rtpmp2tdepay: unable to depay MPEG2-TS RTP streams from GStreamer 0.10
-      * 702705 : rtspsrc does not pause properly (race condition)
-      * 702732 : v4l2: Does not link statically on linux
-      * 703076 : flvdemux: Add flvversion 1 to flash-video caps
-      * 703100 : osxvideosink: deadlock on re-use
-      * 703171 : rtph264pay: segfault because of double buffer unmap on error
-      * 703729 : osxvideosink doesn't display video anymore if once set to READY
-      * 691419 : osxvideosink: doesn't close internal window in case of window-id assignment
-
-Changes since 1.0.6:
-
-      * osxaudio plugin ported to 1.0
-
-Bugs fixed since 1.0.6:
-
-      * 695709 : vp8enc plugin has invalid parameter error when framerate is " 0/1 " 
-      * 697103 : osxaudio: port to 1.0
-      * 677560 : rtpjpegdepay: crash in copy_into_unchecked
-      * 685209 : gst_v4l2_object_get_nearest_size VIDIOC_G_FMT bug
-      * 693005 : capssetter: do not return a copy of sink caps upstream
-      * 693727 : rtpvrawpay/depay negotiation broken
-      * 696052 : qtmux expose mulaw
-      * 696651 : v4l2loopback:gst_buffer_get_meta: assertion `buffer != NULL' failed. " 
-      * 697113 : matroskademux: add TrueHD audio codec support
-      * 697303 : osxvideosink: compiler warning: implicit declaration of function 'pthread_self'
-      * 697984 : souphttpsrc: direct stream dump results in broken audio with internet radio
-      * 698224 : [osxaudio] caps negotiation fails due to invalid channel-mask
-
-Changes since 1.0.5:
-
-      * auparse: fix caps leak
-      * avidemux: push mode: handle some more 0-size buffer cases
-      * deinterlace: fix infinite loop on EOS with non-default methods or fields
-      * dvdemux: don't return FALSE when dropping sink events, fixes flow errors
-      * level: send a last message on EOS 
-      * mp4mux: in faststart mode, don't output up to 4 kB of garbage at the end
-      * osxvideosink: Fix crash in osxvideosink with external window output
-      * osxvideosink: Make GstGLView propagate input events to its parent view
-      * osxvideosink: Make GstNavigation key input events in osxvideosink compatible with x(v)imagesink ones
-      * pulsesink: don't error out if pa_stream_proplist_update() with new tags fails
-      * qtdemux: fix potential crash on short MOOV atom
-      * qtdemux: fix sample leak when processing private qt tags
-      * qtdemux: push mode: only parse moov 1 once
-      * qtdemux: skip disabled tracks
-      * qtmux: set stream language code from tag
-      * rtph264pay: Don't use upstream caps with peer_query_caps()
-      * rtpmp4gdepay: streamtype is not put by all RTSP server, not make it optional
-      * rtpptdemux: forward sticky events and then set caps
-      * rtpsession: Fix wrong code organisation in case of collision
-      * rtspsrc: flush connection when stopping
-      * rtspsrc: only EOS when our source sends BYE
-      * rtspsrc: save the stream SSRC
-      * v4l2: don't check stride for encoded formats
-      * v4l2: fix compilation against newer kernel headers as on FC19
-      * videomixer2: avoid caps leak
-      * videomixer: fix eos timestamp check
-      * ximagesrc: Set the pixel aspect ratio correctly in the caps
-      * build: allow calling autogen.sh from out-of-tree
-      * build: fix build with automake 1.13
-
-Bugs fixed since 1.0.5:
-
-      * 628790 : qtdemux: OSD displays persistent chapters subtitles
-      * 656068 : pulsesink: errors out if pa_stream_proplist_update() fails with old pulseaudio versions
-      * 675453 : rtspsrc: only EOS if BYE came from SSRC of the stream
-      * 678429 : souphttpsrc: should return GST_FLOW_ERROR from create function in case of HTTP error 404 not found
-      * 684924 : rtspsrc: flush connection when going to null state
-      * 684944 : avidemux: " unhandled buffer size " error for cyuv.avi in push mode
-      * 688935 : rtpjitterbuffer not always correctly warns about resetting skew
-      * 689809 : osxvideosink: inconsistent keyboard navigation events
-      * 691484 : osxvideosink: crash when displaying on Qt widget
-      * 691570 : [isomp4/qtdemux] lots of critical warnings on this sample file
-      * 691580 : ximagesrc sets bad pixel-aspect-ratio caps
-      * 691832 : osxvideosink doesn't propagate input events to output window
-      * 692309 : allow autogen.sh to be call out-of-tree
-      * 692786 : CAPS event is forwarded before STREAM_START in rtpptdemux element
-      * 692935 : videomixer: hangs on eos
-      * 692950 :  " rtpjitterbuffer " properties can't be changed after pipeline is started
-      * 693055 : level: 32-bit formats don't work because of typo in format list: S32LEF32LE
-      * 693173 : deinterlace method=greedyl fields=top does not complete
-      * 693307 : videomixer2 leaks caps reference
-      * 693373 : 1.0 branch is still using AM_CONFIG_HEADER
-      * 694010 : qtdemux: crash with partial mp4 / moov atom
-      * 694184 : Wrong code organisation in case of collision in rtpsession
-      * 694275 : auparse: src_caps are leaked
-      * 695629 : rtph264pay: caps negotiation fails if upstream caps is not NULL
-      * 695643 : dvdemux: returns wrong value when it is not processing the sink events
-      * 695644 : deinterlace: going to infinite loop on EOS with method=scalerbob fields=bff
-      * 696355 : qtdemux: sample leak in tag handling
-      * 696358 : qtmux: set language code on streams
-
-Changes since 1.0.4:
-
-      * rtspsrc: fix regression that make rtspsrc hang when stopping
-      * audio/video parsers: fix negotiation with encoders in some transcoding cases
-      * cairo: port cairooverlay to 1.0
-      * jpegenc: pass flow returns upstream
-      * qtdemux: fix pixel-aspect-ratio of some files with ProRes video
-      * cairo: port cairooverlay to 1.0
-
-Bugs fixed since 1.0.4:
-
-      * 690184 : [parsers] Return too strict caps on the sinkpads
-      * 690476 : regression: unable to stop rtsp stream
-      * 691098 : v4l2src: breaks because of changed ioctl error return code from driver on failed control query in 3.8-rc1
-
-Changes since 1.0.3:
-
-      * deinterleave: properly set srcpad channel position
-      * osxvideosink: Fix resizing the Cocoa window on receiving new caps
-      * rtspsrc fixes
-      * shout2send: also accept audio/webm in addition to video/webm
-      * videobox: fix border filling for planar YUV formats
-      * webmmux: fix linking to shout2send
-      * v4l2: fix build on FreeBSD
-
-Bugs fixed since 1.0.3:
-
-      * 684312 : rtspsrc: mutex blocks going to NULL state
-      * 684991 : videobox: sometimes incorrectly crops producing visual artifacts, and green instead of black border
-      * 687469 : mulawdec: integer overrun with large chunks of data
-      * 689732 : osxvideosink can't resize Cocoa window on receiving caps
-      * 689336 : webmmux: can't link webmux to shout2send
-
-Changes since 1.0.2:
-
-      * rtspsrc: numerous improvements
-      * build fix for gst-plugins-base installed in non-default prefix
-      * multifilesink: post messages in max-size mode as well
-      * vp8dec: improve robustness on decoding errors, e.g. for videocalls over RTP
-
-Bugs fixed since 1.0.2:
-
-      * 639420 : RTSP setup, add client_ports
-      * 686837 : imagefreeze: improve caps negotiation
-      * 686985 : [pulsesrc] Assertion 'm' failed at pulse/thread-mainloop.c:166, function pa_threaded_mainloop_lock(). Aborting.
-      * 687013 : auparse,level,videocrop,y4m,caca: Fix missing GST_PLUGINS_BASE_LIBS dependency in Makefile.am
-      * 687154 : examples: error in level plugin example code
-      * 687330 : videobox, videomixer: height obtained using _WIDTH macros
-      * 687464 : speexdec: Don't unmap or finish_frame an invalid GstBuffer
-      * 688382 : rtspsrc doesn't work with the interleaved protocols
-
-Changes since 1.0.1:
-
-      * Parallel installability with 0.10.x series
-      * avidemux: fix handling of paletted and other raw RGB data
-      * flacparse: ignore bad headers if we have a valid STREAMINFO header; improve coverart extraction
-      * jpegdepay: store quant tables in zigzag order
-      * matroskamux: do not use unoffical V_MJPEG codec id; fix subtitle request sink pad name and functionality
-      * videofilter: add videomedian element
-      * multiudpsink: add "force-ipv4" option and "multicast-iface" property
-      * pulsesink: fix caps leak and potential crasher in acceptcaps function
-      * pulsesink: start the ringbuffer on GAP events without duration
-      * qtdemux: add support for 'generic' samples; allow more streams
-      * qtdemux: support more ProRes variants; fix memory leak for MS/RIFF audio
-      * qtdemux: with raw audio, set a default channel-mask for multichannel audio
-      * rtpbin: set PTS and DTS in jitterbufffer
-      * rtpbin: use running-time for NTP time when use-pipeline-clock is set
-      * rtpsession: inform source when caps change
-      * udpsrc: use negotiated allocator or pool
-      * videobox: use out_info for out properties
-      * videocrop: port to videofilter
-      * videomixer2: Fix race condition where a src setcaps is ignored
-      * vp8enc: fix default target-bitrate value; set DECODE_ONLY flag on invisible frames
-
-Bugs fixed since 1.0.1:
-
-      * 654216 : vp8enc: tag invisible frames
-      * 682481 : multiudpsink: add force-ipv4 option (problem when streaming RTP to multicast address)
-      * 683782 : Segfault in pulsesink.c:2077 gst_pulsesink_pad_acceptcaps()
-      * 683842 : Fix race condition in videomixer2 on 0.10
-      * 684701 : flacparse: fails to parse flac file with broken header: " Invalid metablock size for STREAMINFO: 8196 "
-      * 685864 : Add multicast-iface property to multiudpsink
-      * 686008 : qtdemux: crashes in push mode with gst_qtdemux_guess_bitrate: assertion failed: (size > = qtdemux- > header_size)
-      * 686046 : avidemux: can't play 8-bit indexed RGB video
-      * 686550 : qtdemux: no streams found for journal.pone.0030940.s002.mov, m1v video fourcc
-      * 686642 : udpsrc: trivial typo causes compilation error
-
-Changes since 1.0.0:
-
-      * interleave, deinterlave: channel handling fixes for mono audio
-      * videobalance now supports NV12 and NV21 as well
-
-Bugs fixed since 1.0.0:
-
-      * 683622 : flvdemux: Internal flow error when demuxing speex
-      * 684972 : qtdemux: cannot play mp4 file when MOOV atom is at the end of file
-      * 684977 : Can't seek in AVI file in push mode
-      * 685059 : avidemux: cannot play video in push mode
-      * 685213 : rtph264pay: pushing unmapped data.
-      * 685512 : rtpgstdepay has a memory leak
-
-New features in 1.0.0:
-
-      * Parallel installability with 0.10.x series
-      * See release notes for more details
diff --git a/README b/README
index 908386dbc..5df2d2b05 100644
--- a/README
+++ b/README
@@ -1,3 +1,5 @@
+GStreamer 1.1.x development series
+
 WHAT IT IS
 ----------
 
@@ -21,8 +23,8 @@ We track bugs in GNOME's bugzilla; see the website for details.
 
 You can join us on IRC - #gstreamer on irc.freenode.org
 
-GStreamer 0.10 series
----------------------
+GStreamer 1.0 series
+--------------------
 
 Starring
 
@@ -135,13 +137,14 @@ PLATFORMS
 ---------
 
 - Linux is of course fully supported
-- FreeBSD is reported to work; other BSD's should work too
+- FreeBSD is reported to work; other BSDs should work too
 - Solaris is reported to work; a specific sunaudiosink plugin has been written
-- MacOSX is reported to work; specific audio and video sinks have been written
-- Windows support is experimental but improving.  Output sinks have been
-  written but are not yet included in the code. We support
-  - MSys/MingW builds
-  - Microsoft Visual Studio 6 builds (see win32/README.txt)
+- MacOSX works, binary 1.x packages can be built using the cerbero build tool
+- Windows works; binary 1.x packages can be built using the cerbero build tool
+  - MSys/MinGW builds
+  - Microsoft Visual Studio builds are not yet available or supported
+- Android works, binary 1.x packages can be built using the cerbero build tool
+- iOS works
 
 INSTALLING FROM PACKAGES
 ------------------------
@@ -154,7 +157,7 @@ Only in cases where you:
 - want to hack on GStreamer
 - want to verify that a bug has been fixed
 - do not have a sane distribution
-should you choose to build from source tarballs or CVS.
+should you choose to build from source tarballs or git.
 
 Find more information about the various packages at
 http://gstreamer.freedesktop.org/download/
@@ -190,13 +193,13 @@ COMPILING FROM SOURCE TARBALLS
   functionality you're probably looking for by now, so go on and read
   that README.
 
-COMPILING FROM CVS
+COMPILING FROM GIT
 ------------------
 
-When building from CVS sources, you will need to run autogen.sh to generate 
+When building from git sources, you will need to run autogen.sh to generate
 the build system files.
 
-You will need a set of additional tools typical for building from CVS,
+You will need a set of additional tools typical for building from git,
 including:
 - autoconf
 - automake
@@ -208,10 +211,7 @@ them.  You can also specify specific versions of automake and autoconf with
 
 Check autogen.sh options by running autogen.sh --help
 
-autogen.sh can pass on arguments to configure - you just need to separate them
-from autogen.sh with -- between the two.
-prefix has been added to autogen.sh but will be passed on to configure because
-some build scripts like that.
+autogen.sh can pass on arguments to configure
 
 When you have done this once, you can use autoregen.sh to re-autogen with
 the last passed options as a handy shortcut.  Use it.
@@ -219,9 +219,17 @@ the last passed options as a handy shortcut.  Use it.
 After the autogen.sh stage, you can follow the directions listed in
 "COMPILING FROM SOURCE"
 
-You can also run your whole cvs stack uninstalled.  The script in
-the gstreamer module /docs/faq/gst-uninstalled) is helpful in setting
-up your environment for this.
+You can also run your whole git stack uninstalled in your home directory,
+so that you can quickly test changes without affecting your system setup or
+interfering with GStreamer installed from packages.  Many GStreamer developers
+use an uninstalled setup for their work.
+
+There is a 'create-uninstalled-setup.sh' script in
+
+  http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts/
+
+to easily create an uninstalled setup from scratch.
+
 
 PLUG-IN DEPENDENCIES AND LICENSES
 ---------------------------------
diff --git a/RELEASE b/RELEASE
index 22205222b..b1eabb08c 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,5 +1,5 @@
 
-Release notes for GStreamer Good Plugins 1.0.8
+Release notes for GStreamer Good Plugins 1.1.2
 
 
 The GStreamer team is proud to announce a new bug-fix release
@@ -57,33 +57,34 @@ contains a set of codecs plugins based on libav (formerly gst-ffmpeg)
 
 Features of this release
     
-      * pngenc: fix massive memory leak
-      * pngdec: parse incoming data into frames before decoding
-      * osvideo: many osxvideosink fixes
-      * udpsink, multiudpsink, dynudpsink: bind socket before using it, fixes sending udp on windows
 
 Bugs fixed in this release
      
-      * 682110 : qtdemux: discont flag set on multiple buffers in push mode
-      * 692400 : udpsrc: fix socket options not getting set on windows, resulting in packet drop in high bitrate movie
-      * 693727 : rtpvrawpay/depay negotiation broken
-      * 699260 : pngenc: unmap source frame when done
-      * 699303 : matroskademux: stream-format=raw missing from aac caps
-      * 699314 : rtph264pay: CRITICAL **: gst_adapter_map: assertion `size > 0' failed
-      * 700047 : pngdec: make decoding work without png parser
-      * 700382 : qtdemux: handle 96kHz/24 bits ALAC audio
-      * 700514 : rtpmp4apay: clear config buffer before using it
-      * 700878 : udpsink: Not sending anything on Windows
-      * 701586 : rtspsrc memleak
-      * 702167 : matroskademux: missing mutex unlock leading to wrong STREAM_LOCK count
-      * 702457 : rtpmp2tdepay: unable to depay MPEG2-TS RTP streams from GStreamer 0.10
-      * 702705 : rtspsrc does not pause properly (race condition)
-      * 702732 : v4l2: Does not link statically on linux
-      * 703076 : flvdemux: Add flvversion 1 to flash-video caps
-      * 703100 : osxvideosink: deadlock on re-use
-      * 703171 : rtph264pay: segfault because of double buffer unmap on error
-      * 703729 : osxvideosink doesn't display video anymore if once set to READY
-      * 691419 : osxvideosink: doesn't close internal window in case of window-id assignment
+      * 612406 : [PATCH] rtspsrc: Race condition
+      * 632207 : [rtspsrc] GET_PARAMETER / SET_PARAMETER support
+      * 651434 : rtspsrc: don't discard data in interleaved mode
+      * 657079 : JPEG RTP Payloader Change to support FaceVsion Webcams
+      * 664312 : rtpvorbispay does not handle headers in caps
+      * 686459 : pulsesink: playbin uri=x.mp3 audio-sink='identity ! pulsesink' = > not-negotiated flow error
+      * 700799 : matroskademux: Got data flow before segment event
+      * 701385 : videomixer: Incorrect timestamp calculations for non trivial segments
+      * 701519 : videomixer: pushes an incorrect segment event when all its sink pads are EOS
+      * 701650 : v4l2: make sure the element is not deleted before the pool
+      * 701856 : qtdemux: Does allocation queries before setting caps on all pads
+      * 702046 : rtspsrc doesn't produce buffers
+      * 702625 : avidemux: duration query returns " zero " for the DV containter format in a AVI file
+      * 702638 : v4l2:  Optimize negotiation by removing the query filter
+      * 702819 : udpsink multicast-iface does not seem to work correctly
+      * 702826 : gdkpixbufoverlay: image overlay doesn't work for -ve offset
+      * 703114 : deinterleave: deadlock while pushing pending events on all source pads
+      * 703182 : multipartmux does not push new segment after flushing seek
+      * 703312 : matroskademux: missing profile field in caps for aac audio
+      * 703350 : qtdemux: Reports wrong framerate
+      * 703399 : v4l2: don't extract data from caps twice
+      * 703426 : Fix doc and comment references to gstrtpbin element
+      * 703685 : POTFILES.in is out of date
+      * 703743 : videomixer: Handling of variable fps streams broken
+      * 703764 : v4l2: bufferpool: don't forget to release buffer on error
 
 ==== Download ====
 
@@ -121,18 +122,27 @@ subscribe to the gstreamer-devel list.
 Contributors to this release
     
       * Alban Browaeys
+      * Alex Ashley
       * Andoni Morales Alastruey
-      * Arnaud Vrac
+      * Arun Raghavan
+      * Brendan Long
       * Bruno Gonzalez
-      * David Schleef
       * David Svensson Fors
+      * J. Rick Ramstetter
       * Jens Georg
       * Jonas Holmberg
+      * Kishore Arepalli
+      * Matej Knopp
+      * Mathieu Duponchelle
       * Michael Olbrich
-      * Nicolas Dufresne
       * Ognyan Tonchev
+      * Olivier Crête
+      * Piotr DrÄ…g
       * Sebastian Dröge
+      * Sjoerd Simons
+      * Stefan Sauer
       * Thiago Santos
       * Tim-Philipp Müller
       * Wim Taymans
+      * Youness Alaoui
  
\ No newline at end of file
diff --git a/aclocal.m4 b/aclocal.m4
index 848406f34..2374f58af 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,8 +1,7 @@
-# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
+# generated automatically by aclocal 1.13.3 -*- Autoconf -*-
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 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.
@@ -12,33 +11,31 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
 [m4_warning([this file was generated for autoconf 2.69.
 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'.])])
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 2002-2013 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
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.11'
+[am__api_version='1.13'
 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.6], [],
+m4_if([$1], [1.13.3], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -54,21 +51,19 @@ 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.6])dnl
+[AM_AUTOMAKE_VERSION([1.13.3])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # Figure out how to run the assembler.                      -*- Autoconf -*-
 
-# Copyright (C) 2001, 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 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 5
-
 # AM_PROG_AS
 # ----------
 AC_DEFUN([AM_PROG_AS],
@@ -83,17 +78,15 @@ _AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 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/../..'.
+# $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
 #
 # Of course, Automake must honor this variable whenever it calls a
 # tool from the auxiliary directory.  The problem is that $srcdir (and
@@ -112,7 +105,7 @@ _AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl
 #
 # The reason of the latter failure is that $top_srcdir and $ac_aux_dir
 # are both prefixed by $srcdir.  In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
+# harmless because $srcdir is '.', but things will broke when you
 # start a VPATH build or use an absolute $srcdir.
 #
 # So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
@@ -138,22 +131,19 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 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 9
-
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
 # Define a conditional.
 AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
- ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
-	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
 AC_SUBST([$1_TRUE])dnl
 AC_SUBST([$1_FALSE])dnl
 _AM_SUBST_NOTMAKE([$1_TRUE])dnl
@@ -172,16 +162,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,
-# 2010, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 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 12
 
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# 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,
 # will think it sees a *use*, and therefore will trigger all it's
 # C support machinery.  Also note that it means that autoscan, seeing
@@ -191,7 +179,7 @@ fi])])
 # _AM_DEPENDENCIES(NAME)
 # ----------------------
 # See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
 # We try a few techniques and use that to set a single cache variable.
 #
 # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
@@ -204,12 +192,13 @@ AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
 AC_REQUIRE([AM_MAKE_INCLUDE])dnl
 AC_REQUIRE([AM_DEP_TRACK])dnl
 
-ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
-       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
-       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
-       [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
-       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
-                   [depcc="$$1"   am_compiler_list=])
+m4_if([$1], [CC],   [depcc="$CC"   am_compiler_list=],
+      [$1], [CXX],  [depcc="$CXX"  am_compiler_list=],
+      [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+      [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+      [$1], [UPC],  [depcc="$UPC"  am_compiler_list=],
+      [$1], [GCJ],  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                    [depcc="$$1"   am_compiler_list=])
 
 AC_CACHE_CHECK([dependency style of $depcc],
                [am_cv_$1_dependencies_compiler_type],
@@ -217,8 +206,8 @@ AC_CACHE_CHECK([dependency style of $depcc],
   # 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'.
+  # 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
@@ -258,16 +247,16 @@ AC_CACHE_CHECK([dependency style of $depcc],
     : > 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
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > 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"
+    # 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
+    # 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
@@ -276,8 +265,8 @@ AC_CACHE_CHECK([dependency style of $depcc],
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # 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
@@ -285,7 +274,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # 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}
@@ -333,7 +322,7 @@ AM_CONDITIONAL([am__fastdep$1], [
 # AM_SET_DEPDIR
 # -------------
 # Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
 AC_DEFUN([AM_SET_DEPDIR],
 [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
 AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
@@ -343,9 +332,13 @@ AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
 # AM_DEP_TRACK
 # ------------
 AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors])
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+  [--enable-dependency-tracking],
+  [do not reject slow dependency extractors])
+AS_HELP_STRING(
+  [--disable-dependency-tracking],
+  [speeds up one-time build])])
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
@@ -360,20 +353,18 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 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 5
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
 [{
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -386,7 +377,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
     # Strip MF so we end up with the name of the file.
     mf=`echo "$mf" | sed -e 's/:.*$//'`
     # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
+    # We used to match only the files named 'Makefile.in', but
     # some people rename them; so instead we look at the file content.
     # Grep'ing the first line is not enough: some people post-process
     # each Makefile.in and add a new line on top of each file to say so.
@@ -398,21 +389,19 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
       continue
     fi
     # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
+    # from the Makefile without running 'make'.
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
     # simplest approach to changing $(DEPDIR) to its actual value in the
     # expansion.
     for file in `sed -n "
       s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
       # Make sure the directory exists.
       test -f "$dirpart/$file" && continue
       fdir=`AS_DIRNAME(["$file"])`
@@ -430,7 +419,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
 # This macro should only be invoked once -- use via AC_REQUIRE.
 #
 # This code is only required when automatic dependency tracking
-# is enabled.  FIXME.  This creates each `.P' file that we will
+# is enabled.  FIXME.  This creates each '.P' file that we will
 # need in order to bootstrap the dependency handling code.
 AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 [AC_CONFIG_COMMANDS([depfiles],
@@ -440,15 +429,12 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 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 16
-
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
 
@@ -464,7 +450,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 # arguments mandatory, and then we can depend on a new Autoconf
 # release and drop the old call support.
 AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.62])dnl
+[AC_PREREQ([2.65])dnl
 dnl Autoconf wants to disallow AM_ names.  We explicitly allow
 dnl the ones we care about.
 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@@ -493,31 +479,40 @@ AC_SUBST([CYGPATH_W])
 # Define the identity of the package.
 dnl Distinguish between old-style and new-style calls.
 m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+[AC_DIAGNOSE([obsolete],
+             [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
  AC_SUBST([PACKAGE], [$1])dnl
  AC_SUBST([VERSION], [$2])],
 [_AM_SET_OPTIONS([$1])dnl
 dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+m4_if(
+  m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+  [ok:ok],,
   [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
  AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
 
 _AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
 
 # Some tools Automake needs.
 AC_REQUIRE([AM_SANITY_CHECK])dnl
 AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
 AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
 AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 AC_REQUIRE([AC_PROG_AWK])dnl
@@ -528,28 +523,32 @@ _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
 			     [_AM_PROG_TAR([v7])])])
 _AM_IF_OPTION([no-dependencies],,
 [AC_PROVIDE_IFELSE([AC_PROG_CC],
-		  [_AM_DEPENDENCIES(CC)],
-		  [define([AC_PROG_CC],
-			  defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+		  [_AM_DEPENDENCIES([CC])],
+		  [m4_define([AC_PROG_CC],
+			     m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_CXX],
-		  [_AM_DEPENDENCIES(CXX)],
-		  [define([AC_PROG_CXX],
-			  defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+		  [_AM_DEPENDENCIES([CXX])],
+		  [m4_define([AC_PROG_CXX],
+			     m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_OBJC],
-		  [_AM_DEPENDENCIES(OBJC)],
-		  [define([AC_PROG_OBJC],
-			  defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+		  [_AM_DEPENDENCIES([OBJC])],
+		  [m4_define([AC_PROG_OBJC],
+			     m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+		  [_AM_DEPENDENCIES([OBJCXX])],
+		  [m4_define([AC_PROG_OBJCXX],
+			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
 ])
-_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
-dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
-dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
 AC_CONFIG_COMMANDS_PRE(dnl
 [m4_provide_if([_AM_COMPILER_EXEEXT],
   [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
 ])
 
-dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
 dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
 dnl mangled by Autoconf and run in a shell conditional statement.
 m4_define([_AC_COMPILER_EXEEXT],
@@ -577,15 +576,12 @@ 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, 2011 Free Software Foundation,
-# Inc.
+# Copyright (C) 2001-2013 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.
@@ -599,16 +595,14 @@ if test x"${install_sh}" != xset; then
     install_sh="\${SHELL} $am_aux_dir/install-sh"
   esac
 fi
-AC_SUBST(install_sh)])
+AC_SUBST([install_sh])])
 
-# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2003-2013 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
-
 # Check whether the underlying file-system supports filenames
 # with a leading dot.  For instance MS-DOS doesn't.
 AC_DEFUN([AM_SET_LEADING_DOT],
@@ -625,20 +619,17 @@ 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,
-# 2011 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 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 5
-
 # AM_MAINTAINER_MODE([DEFAULT-MODE])
 # ----------------------------------
 # Control maintainer-specific portions of Makefiles.
-# Default is to disable them, unless `enable' is passed literally.
-# For symmetry, `disable' may be passed as well.  Anyway, the user
+# Default is to disable them, unless 'enable' is passed literally.
+# For symmetry, 'disable' may be passed as well.  Anyway, the user
 # can override the default with the --enable/--disable switch.
 AC_DEFUN([AM_MAINTAINER_MODE],
 [m4_case(m4_default([$1], [disable]),
@@ -649,10 +640,11 @@ AC_DEFUN([AM_MAINTAINER_MODE],
 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
-			  (and sometimes confusing) to the casual installer],
-      [USE_MAINTAINER_MODE=$enableval],
-      [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+    [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
+      am_maintainer_other[ make rules and dependencies not useful
+      (and sometimes confusing) to the casual installer])],
+    [USE_MAINTAINER_MODE=$enableval],
+    [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
   AC_MSG_RESULT([$USE_MAINTAINER_MODE])
   AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
   MAINT=$MAINTAINER_MODE_TRUE
@@ -660,18 +652,14 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
 ]
 )
 
-AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
-
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2009  Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 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
-
 # AM_MAKE_INCLUDE()
 # -----------------
 # Check to see how make treats includes.
@@ -689,7 +677,7 @@ am__quote=
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
+# Ignore all kinds of additional output from 'make'.
 case `$am_make -s -f confmf 2> /dev/null` in #(
 *the\ am__doit\ target*)
   am__include=include
@@ -714,15 +702,12 @@ AC_MSG_RESULT([$_am_result])
 rm -f confinc confmf
 ])
 
-# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 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 6
-
 # AM_PROG_CC_C_O
 # --------------
 # Like AC_PROG_CC_C_O, but changed for automake.
@@ -751,15 +736,12 @@ m4_define([AC_PROG_CC],
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 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 6
-
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
 AC_DEFUN([AM_MISSING_PROG],
@@ -767,11 +749,10 @@ AC_DEFUN([AM_MISSING_PROG],
 $1=${$1-"${am_missing_run}$2"}
 AC_SUBST($1)])
 
-
 # AM_MISSING_HAS_RUN
 # ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
 AC_DEFUN([AM_MISSING_HAS_RUN],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 AC_REQUIRE_AUX_FILE([missing])dnl
@@ -784,29 +765,32 @@ if test x"${MISSING+set}" != xset; then
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
-  AC_MSG_WARN([`missing' script is too old or missing])
+  AC_MSG_WARN(['missing' script is too old or missing])
 fi
 ])
 
-# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
-# Inc.
+# Copyright (C) 2003-2013 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'.
+# Check for 'mkdir -p'.
 AC_DEFUN([AM_PROG_MKDIR_P],
 [AC_PREREQ([2.60])dnl
 AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl FIXME we are no longer going to remove this! adjust warning
+dnl FIXME message accordingly.
+AC_DIAGNOSE([obsolete],
+[$0: this macro is deprecated, and will soon be removed.
+You should use the Autoconf-provided 'AC][_PROG_MKDIR_P' macro instead,
+and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.])
 dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
 dnl while keeping a definition of mkdir_p for backward compatibility.
 dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
@@ -823,15 +807,12 @@ esac
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 2001-2013 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 5
-
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
 AC_DEFUN([_AM_MANGLE_OPTION],
@@ -841,7 +822,7 @@ AC_DEFUN([_AM_MANGLE_OPTION],
 # --------------------
 # 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)])
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
 
 # _AM_SET_OPTIONS(OPTIONS)
 # ------------------------
@@ -855,13 +836,246 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 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_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# ---------------------------------------------------------------------------
+# Adds support for distributing Python modules and packages.  To
+# install modules, copy them to $(pythondir), using the python_PYTHON
+# automake variable.  To install a package with the same name as the
+# automake package, install to $(pkgpythondir), or use the
+# pkgpython_PYTHON automake variable.
+#
+# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
+# locations to install python extension modules (shared libraries).
+# Another macro is required to find the appropriate flags to compile
+# extension modules.
+#
+# If your package is configured with a different prefix to python,
+# users will have to add the install directory to the PYTHONPATH
+# environment variable, or create a .pth file (see the python
+# documentation for details).
+#
+# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
+# cause an error if the version of python installed on the system
+# doesn't meet the requirement.  MINIMUM-VERSION should consist of
+# numbers and dots only.
+AC_DEFUN([AM_PATH_PYTHON],
+ [
+  dnl Find a Python interpreter.  Python versions prior to 2.0 are not
+  dnl supported. (2.0 was released on October 16, 2000).
+  m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
+[python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7 dnl
+ python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0])
+
+  AC_ARG_VAR([PYTHON], [the Python interpreter])
+
+  m4_if([$1],[],[
+    dnl No version check is needed.
+    # Find any Python interpreter.
+    if test -z "$PYTHON"; then
+      AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
+    fi
+    am_display_PYTHON=python
+  ], [
+    dnl A version check is needed.
+    if test -n "$PYTHON"; then
+      # If the user set $PYTHON, use it and don't search something else.
+      AC_MSG_CHECKING([whether $PYTHON version is >= $1])
+      AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
+			      [AC_MSG_RESULT([yes])],
+			      [AC_MSG_RESULT([no])
+			       AC_MSG_ERROR([Python interpreter is too old])])
+      am_display_PYTHON=$PYTHON
+    else
+      # Otherwise, try each interpreter until we find one that satisfies
+      # VERSION.
+      AC_CACHE_CHECK([for a Python interpreter with version >= $1],
+	[am_cv_pathless_PYTHON],[
+	for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
+	  test "$am_cv_pathless_PYTHON" = none && break
+	  AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
+	done])
+      # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
+      if test "$am_cv_pathless_PYTHON" = none; then
+	PYTHON=:
+      else
+        AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
+      fi
+      am_display_PYTHON=$am_cv_pathless_PYTHON
+    fi
+  ])
+
+  if test "$PYTHON" = :; then
+  dnl Run any user-specified action, or abort.
+    m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
+  else
+
+  dnl Query Python for its version number.  Getting [:3] seems to be
+  dnl the best way to do this; it's what "site.py" does in the standard
+  dnl library.
+
+  AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
+    [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
+  AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
+
+  dnl Use the values of $prefix and $exec_prefix for the corresponding
+  dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX.  These are made
+  dnl distinct variables so they can be overridden if need be.  However,
+  dnl general consensus is that you shouldn't need this ability.
+
+  AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
+  AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
+
+  dnl At times (like when building shared libraries) you may want
+  dnl to know which OS platform Python thinks this is.
+
+  AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
+    [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
+  AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
+
+  # Just factor out some code duplication.
+  am_python_setup_sysconfig="\
+import sys
+# Prefer sysconfig over distutils.sysconfig, for better compatibility
+# with python 3.x.  See automake bug#10227.
+try:
+    import sysconfig
+except ImportError:
+    can_use_sysconfig = 0
+else:
+    can_use_sysconfig = 1
+# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
+# <https://github.com/pypa/virtualenv/issues/118>
+try:
+    from platform import python_implementation
+    if python_implementation() == 'CPython' and sys.version[[:3]] == '2.7':
+        can_use_sysconfig = 0
+except ImportError:
+    pass"
+
+  dnl Set up 4 directories:
+
+  dnl pythondir -- where to install python scripts.  This is the
+  dnl   site-packages directory, not the python standard library
+  dnl   directory like in previous automake betas.  This behavior
+  dnl   is more consistent with lispdir.m4 for example.
+  dnl Query distutils for this directory.
+  AC_CACHE_CHECK([for $am_display_PYTHON script directory],
+    [am_cv_python_pythondir],
+    [if test "x$prefix" = xNONE
+     then
+       am_py_prefix=$ac_default_prefix
+     else
+       am_py_prefix=$prefix
+     fi
+     am_cv_python_pythondir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+     case $am_cv_python_pythondir in
+     $am_py_prefix*)
+       am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+       am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
+       ;;
+     *)
+       case $am_py_prefix in
+         /usr|/System*) ;;
+         *)
+	  am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+	  ;;
+       esac
+       ;;
+     esac
+    ])
+  AC_SUBST([pythondir], [$am_cv_python_pythondir])
+
+  dnl pkgpythondir -- $PACKAGE directory under pythondir.  Was
+  dnl   PYTHON_SITE_PACKAGE in previous betas, but this naming is
+  dnl   more consistent with the rest of automake.
+
+  AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
+
+  dnl pyexecdir -- directory for installing python extension modules
+  dnl   (shared libraries)
+  dnl Query distutils for this directory.
+  AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
+    [am_cv_python_pyexecdir],
+    [if test "x$exec_prefix" = xNONE
+     then
+       am_py_exec_prefix=$am_py_prefix
+     else
+       am_py_exec_prefix=$exec_prefix
+     fi
+     am_cv_python_pyexecdir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+     case $am_cv_python_pyexecdir in
+     $am_py_exec_prefix*)
+       am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+       am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
+       ;;
+     *)
+       case $am_py_exec_prefix in
+         /usr|/System*) ;;
+         *)
+	   am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+	   ;;
+       esac
+       ;;
+     esac
+    ])
+  AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
+
+  dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
+
+  AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
+
+  dnl Run any user-specified action.
+  $2
+  fi
+
+])
+
+
+# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
+# ---------------------------------------------------------------------------
+# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
+# Run ACTION-IF-FALSE otherwise.
+# This test uses sys.hexversion instead of the string equivalent (first
+# word of sys.version), in order to cope with versions such as 2.2c1.
+# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000).
+AC_DEFUN([AM_PYTHON_CHECK_VERSION],
+ [prog="import sys
+# split strings by '.' and convert to numeric.  Append some zeros
+# because we need at least 4 digits for the hex conversion.
+# map returns an iterator in Python 3.0 and a list in 2.x
+minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
+minverhex = 0
+# xrange is not present in Python 3.0 and range returns an iterator
+for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
+sys.exit(sys.hexversion < minverhex)"
+  AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
+
+# Copyright (C) 2001-2013 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.
 
 # AM_RUN_LOG(COMMAND)
 # -------------------
@@ -876,22 +1090,16 @@ AC_DEFUN([AM_RUN_LOG],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 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 5
-
 # AM_SANITY_CHECK
 # ---------------
 AC_DEFUN([AM_SANITY_CHECK],
 [AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
@@ -902,32 +1110,40 @@ case `pwd` in
 esac
 case $srcdir in
   *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
-    AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+    AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
 esac
 
-# Do `set' in a subshell so we don't clobber the current shell's
+# Do 'set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$[*]" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$[*]" != "X $srcdir/configure conftest.file" \
-      && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
-alias in your environment])
-   fi
-
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$[*]" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$[*]" != "X $srcdir/configure conftest.file" \
+	&& test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment])
+     fi
+     if test "$[2]" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
    test "$[2]" = conftest.file
    )
 then
@@ -937,31 +1153,50 @@ else
    AC_MSG_ERROR([newly created file is older than distributed files!
 Check your system clock])
 fi
-AC_MSG_RESULT(yes)])
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+  [AC_MSG_CHECKING([that generated files are newer than configure])
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
 
-# Copyright (C) 2009, 2011  Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 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
-
 # AM_SILENT_RULES([DEFAULT])
 # --------------------------
 # Enable less verbose build rules; with the default set to DEFAULT
-# (`yes' being less verbose, `no' or empty being verbose).
+# ("yes" being less verbose, "no" or empty being verbose).
 AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules],
-[  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')])
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+  [--enable-silent-rules],
+  [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+  [--disable-silent-rules],
+  [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+  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 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}
@@ -979,7 +1214,7 @@ 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.
+  dnl Using '$V' instead of '$(V)' breaks IRIX make.
   AM_V='$(V)'
   AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
 else
@@ -996,44 +1231,40 @@ AC_SUBST([AM_BACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 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
+# One issue with vendor 'install' (even GNU) is that you can't
 # specify the program used to strip binaries.  This is especially
 # annoying in cross-compiling environments, where the build's strip
 # is unlikely to handle the host's binaries.
 # Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
+# always use install-sh in "make install-strip", and initialize
 # STRIPPROG with the value of the STRIP variable (set by the user).
 AC_DEFUN([AM_PROG_INSTALL_STRIP],
 [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
 # tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
 if test "$cross_compiling" != no; then
   AC_CHECK_TOOL([STRIP], [strip], :)
 fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2006-2013 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 3
-
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
 # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
@@ -1047,18 +1278,16 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
+# Copyright (C) 2004-2013 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
-
 # _AM_PROG_TAR(FORMAT)
 # --------------------
 # Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
 #
 # Substitute a variable $(am__tar) that is a command
 # writing to stdout a FORMAT-tarball containing the directory
@@ -1068,76 +1297,114 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 # Substitute a variable $(am__untar) that extract such
 # a tarball read from stdin.
 #     $(am__untar) < result.tar
+#
 AC_DEFUN([_AM_PROG_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='$${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])
-# Loop over all known methods to create a tar archive until one works.
+
+# We'll loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      AM_RUN_LOG([$_am_tar --version]) && break
-    done
-    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x $1 -w "$$tardir"'
-    am__tar_='pax -L -x $1 -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
-    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
-    am__untar='cpio -i -H $1 -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_$1}" && break
+m4_if([$1], [v7],
+  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+  [m4_case([$1],
+    [ustar],
+     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+      if test $am_uid -le $am_max_uid; then
+         AC_MSG_RESULT([yes])
+      else
+         AC_MSG_RESULT([no])
+         _am_tools=none
+      fi
+      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+      if test $am_gid -le $am_max_gid; then
+         AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+        _am_tools=none
+      fi],
+
+  [pax],
+    [],
+
+  [m4_fatal([Unknown tar format])])
+
+  AC_MSG_CHECKING([how to create a $1 tar archive])
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        AM_RUN_LOG([$_am_tar --version]) && break
+      done
+      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x $1 -w "$$tardir"'
+      am__tar_='pax -L -x $1 -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+      am__untar='cpio -i -H $1 -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
 
-  # tar/untar a dummy directory, and stop if the command works
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_$1}" && break
+
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      AM_RUN_LOG([$am__untar <conftest.tar])
+      AM_RUN_LOG([cat conftest.dir/file])
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
   rm -rf conftest.dir
-  if test -s conftest.tar; then
-    AM_RUN_LOG([$am__untar <conftest.tar])
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
 
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
 AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
@@ -1147,7 +1414,6 @@ m4_include([common/m4/as-auto-alt.m4])
 m4_include([common/m4/as-compiler-flag.m4])
 m4_include([common/m4/as-gcc-inline-assembly.m4])
 m4_include([common/m4/as-libtool.m4])
-m4_include([common/m4/as-python.m4])
 m4_include([common/m4/as-scrub-include.m4])
 m4_include([common/m4/as-version.m4])
 m4_include([common/m4/ax_create_stdint_h.m4])
diff --git a/autogen.sh b/autogen.sh
index 7a8f1df4a..95e1bfaef 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,5 +1,11 @@
 #!/bin/sh
+#
+# gst-plugins-good autogen.sh
+#
 # Run this to generate all the initial makefiles, etc.
+#
+# This file has been generated from common/autogen.sh.in via common/update-autogen
+
 
 test -n "$srcdir" || srcdir=`dirname "$0"`
 test -n "$srcdir" || srcdir=.
@@ -9,9 +15,8 @@ cd "$srcdir"
 
 DIE=0
 package=gst-plugins-good
-srcfile=gst/law/alaw.c
+srcfile=gst-plugins-good.doap
 
-echo "$(pwd)"
 # Make sure we have common
 if test ! -f common/gst-autogen.sh;
 then
@@ -38,16 +43,22 @@ fi
 
 # GNU gettext automake support doesn't get along with git.
 # https://bugzilla.gnome.org/show_bug.cgi?id=661128
-touch -t 200001010000 po/gst-plugins-good-0.10.pot
+if test -d po ; then
+  touch -t 200001010000 po/gst-plugins-good-1.0.pot
+fi
 
 CONFIGURE_DEF_OPT='--enable-maintainer-mode --enable-gtk-doc'
 
+if test "x$package" = "xgstreamer"; then
+  CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --enable-docbook --enable-failing-tests --enable-poisoning"
+fi
+
 autogen_options $@
 
 printf "+ check for build tools"
-if test ! -z "$NOCHECK"; then echo " skipped"; else  echo; fi
-version_check "autoconf" "$AUTOCONF autoconf autoconf270 autoconf269 autoconf268 autoconf267 autoconf266 autoconf265 autoconf264 autoconf263 autoconf262" \
-              "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 62 || DIE=1
+if test ! -z "$NOCHECK"; then echo ": skipped version checks"; else  echo; fi
+version_check "autoconf" "$AUTOCONF autoconf autoconf270 autoconf269 autoconf268 " \
+              "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 68 || DIE=1
 version_check "automake" "$AUTOMAKE automake automake-1.11" \
               "ftp://ftp.gnu.org/pub/gnu/automake/" 1 11 || DIE=1
 version_check "autopoint" "autopoint" \
@@ -65,7 +76,7 @@ autoheader_check || DIE=1
 die_check $DIE
 
 # if no arguments specified then this will be printed
-if test -z "$*"; then
+if test -z "$*" && test -z "$NOCONFIGURE"; then
   echo "+ checking for autogen.sh options"
   echo "  This autogen script will automatically run ./configure as:"
   echo "  ./configure $CONFIGURE_DEF_OPT"
@@ -76,16 +87,17 @@ fi
 toplevel_check $srcfile
 
 # autopoint
-#    older autopoint (< 0.12) has a tendency to complain about mkinstalldirs
-if test -x mkinstalldirs; then rm mkinstalldirs; fi
 #    first remove patch if necessary, then run autopoint, then reapply
 if test -f po/Makefile.in.in;
 then
-  patch -p0 -R < common/gettext.patch
+  patch -p0 -R --forward < common/gettext.patch
 fi
-tool_run "$autopoint --force"
+tool_run "$autopoint" "--force" "patch -p0 < common/gettext.patch"
 patch -p0 < common/gettext.patch
 
+# aclocal
+if test -f acinclude.m4; then rm acinclude.m4; fi
+
 tool_run "$libtoolize" "--copy --force"
 tool_run "$aclocal" "-I m4 -I common/m4 $ACLOCAL_FLAGS"
 tool_run "$autoheader"
@@ -94,21 +106,8 @@ tool_run "$autoheader"
 echo timestamp > stamp-h.in 2> /dev/null
 
 tool_run "$autoconf"
-tool_run "$automake" "-a -c"
-
-# if enable exists, add an -enable option for each of the lines in that file
-if test -f enable; then
-  for a in `cat enable`; do
-    CONFIGURE_FILE_OPT="--enable-$a"
-  done
-fi
-
-# if disable exists, add an -disable option for each of the lines in that file
-if test -f disable; then
-  for a in `cat disable`; do
-    CONFIGURE_FILE_OPT="$CONFIGURE_FILE_OPT --disable-$a"
-  done
-fi
+debug "automake: $automake"
+tool_run "$automake" "--add-missing --copy"
 
 test -n "$NOCONFIGURE" && {
   echo "+ skipping configure stage for package $package, as requested."
@@ -119,12 +118,12 @@ test -n "$NOCONFIGURE" && {
 cd "$olddir"
 
 echo "+ running configure ... "
-test ! -z "$CONFIGURE_DEF_OPT" && echo "  $srcdir/configure default flags: $CONFIGURE_DEF_OPT"
-test ! -z "$CONFIGURE_EXT_OPT" && echo "  $srcdir/configure external flags: $CONFIGURE_EXT_OPT"
-test ! -z "$CONFIGURE_FILE_OPT" && echo "  $srcdir/configure enable/disable flags: $CONFIGURE_FILE_OPT"
+test ! -z "$CONFIGURE_DEF_OPT" && echo "  default flags:  $CONFIGURE_DEF_OPT"
+test ! -z "$CONFIGURE_EXT_OPT" && echo "  external flags: $CONFIGURE_EXT_OPT"
 echo
 
-"$srcdir/configure" $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT $CONFIGURE_FILE_OPT || {
+echo "$srcdir/configure" $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT
+"$srcdir/configure" $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT || {
         echo "  configure failed"
         exit 1
 }
diff --git a/common/Makefile.in b/common/Makefile.in
index 264fd0888..374486585 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,14 +79,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = common
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ChangeLog \
+	README
 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-gcc-inline-assembly.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 \
@@ -95,21 +122,28 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -117,9 +151,29 @@ am__can_run_installinfo = \
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
@@ -314,6 +368,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -537,22 +592,25 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -567,57 +625,12 @@ $(RECURSIVE_TARGETS):
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-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: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -633,12 +646,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -650,15 +658,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -667,6 +671,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -827,22 +846,20 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean 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 installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean 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 \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/common/README b/common/README
new file mode 100644
index 000000000..83a1b887d
--- /dev/null
+++ b/common/README
@@ -0,0 +1,255 @@
+GStreamer @SERIES_VERSION@
+
+WHAT IT IS
+----------
+
+This is GStreamer, a framework for streaming media.
+
+WHERE TO START
+--------------
+
+We have a website at
+http://gstreamer.freedesktop.org/
+
+You should start by going through our FAQ at
+http://gstreamer.freedesktop.org/data/doc/gstreamer/head/faq/html/
+
+There is more documentation; go to
+http://gstreamer.freedesktop.org/documentation
+
+You can subscribe to our mailing lists; see the website for details.
+
+We track bugs in GNOME's bugzilla; see the website for details.
+
+You can join us on IRC - #gstreamer on irc.freenode.org
+
+GStreamer 1.0 series
+--------------------
+
+Starring
+
+  GSTREAMER
+
+The core around which all other modules revolve.  Base functionality and
+libraries, some essential elements, documentation, and testing.
+
+  BASE
+
+A well-groomed and well-maintained collection of GStreamer plug-ins and
+elements, spanning the range of possible types of elements one would want
+to write for GStreamer.  
+
+And introducing, for the first time ever, on the development screen ...
+
+  THE GOOD
+
+ --- "Such ingratitude.  After all the times I've saved your life."
+
+A collection of plug-ins you'd want to have right next to you on the
+battlefield.  Shooting sharp and making no mistakes, these plug-ins have it
+all: good looks, good code, and good licensing.  Documented and dressed up
+in tests.  If you're looking for a role model to base your own plug-in on,
+here it is.
+
+If you find a plot hole or a badly lip-synced line of code in them,
+let us know - it is a matter of honour for us to ensure Blondie doesn't look
+like he's been walking 100 miles through the desert without water.
+
+  THE UGLY
+
+  --- "When you have to shoot, shoot.  Don't talk."
+
+There are times when the world needs a color between black and white.
+Quality code to match the good's, but two-timing, backstabbing and ready to
+sell your freedom down the river.  These plug-ins might have a patent noose
+around their neck, or a lock-up license, or any other problem that makes you
+think twice about shipping them.
+
+We don't call them ugly because we like them less.  Does a mother love her
+son less because he's not as pretty as the other ones ? No  - she commends
+him on his great personality.  These plug-ins are the life of the party.
+And we'll still step in and set them straight if you report any unacceptable
+behaviour - because there are two kinds of people in the world, my friend:
+those with a rope around their neck and the people who do the cutting.
+
+  THE BAD
+
+  --- "That an accusation?"
+
+No perfectly groomed moustache or any amount of fine clothing is going to
+cover up the truth - these plug-ins are Bad with a capital B. 
+They look fine on the outside, and might even appear to get the job done, but
+at the end of the day they're a black sheep. Without a golden-haired angel
+to watch over them, they'll probably land in an unmarked grave at the final
+showdown.
+
+Don't bug us about their quality - exercise your Free Software rights,
+patch up the offender and send us the patch on the fastest steed you can
+steal from the Confederates. Because you see, in this world, there's two
+kinds of people, my friend: those with loaded guns and those who dig.
+You dig.
+
+The Lowdown
+-----------
+
+  --- "I've never seen so many plug-ins wasted so badly."
+
+GStreamer Plug-ins has grown so big that it's hard to separate the wheat from
+the chaff.  Also, distributors have brought up issues about the legal status
+of some of the plug-ins we ship.  To remedy this, we've divided the previous
+set of available plug-ins into four modules:
+
+- gst-plugins-base: a small and fixed set of plug-ins, covering a wide range
+  of possible types of elements; these are continuously kept up-to-date
+  with any core changes during the development series.
+
+  - We believe distributors can safely ship these plug-ins.
+  - People writing elements should base their code on these elements.
+  - These elements come with examples, documentation, and regression tests.
+
+- gst-plugins-good: a set of plug-ins that we consider to have good quality
+  code, correct functionality, our preferred license (LGPL for the plug-in
+  code, LGPL or LGPL-compatible for the supporting library).
+
+  - We believe distributors can safely ship these plug-ins.
+  - People writing elements should base their code on these elements.
+ 
+- gst-plugins-ugly: a set of plug-ins that have good quality and correct
+  functionality, but distributing them might pose problems.  The license
+  on either the plug-ins or the supporting libraries might not be how we'd
+  like. The code might be widely known to present patent problems.
+
+  - Distributors should check if they want/can ship these plug-ins.
+  - People writing elements should base their code on these elements.
+
+- gst-plugins-bad: a set of plug-ins that aren't up to par compared to the
+  rest.  They might be close to being good quality, but they're missing
+  something - be it a good code review, some documentation, a set of tests,
+  a real live maintainer, or some actual wide use.
+  If the blanks are filled in they might be upgraded to become part of
+  either gst-plugins-good or gst-plugins-ugly, depending on the other factors.
+
+  - If the plug-ins break, you can't complain - instead, you can fix the
+    problem and send us a patch, or bribe someone into fixing them for you.
+  - New contributors can start here for things to work on.
+
+PLATFORMS
+---------
+
+- Linux is of course fully supported
+- FreeBSD is reported to work; other BSDs should work too
+- Solaris is reported to work; a specific sunaudiosink plugin has been written
+- MacOSX works, binary 1.x packages can be built using the cerbero build tool
+- Windows works; binary 1.x packages can be built using the cerbero build tool
+  - MSys/MinGW builds
+  - Microsoft Visual Studio builds are not yet available or supported
+- Android works, binary 1.x packages can be built using the cerbero build tool
+- iOS works
+
+INSTALLING FROM PACKAGES
+------------------------
+
+You should always prefer installing from packages first.  GStreamer is
+well-maintained for a number of distributions, including Fedora, Debian,
+Ubuntu, Mandrake, Gentoo, ...
+
+Only in cases where you:
+- want to hack on GStreamer
+- want to verify that a bug has been fixed
+- do not have a sane distribution
+should you choose to build from source tarballs or git.
+
+Find more information about the various packages at
+http://gstreamer.freedesktop.org/download/
+
+COMPILING FROM SOURCE TARBALLS
+------------------------------
+
+- again, make sure that you really need to install from source !
+  If GStreamer is one of your first projects ever that you build from source,
+  consider taking on an easier project.
+
+- check output of ./configure --help to see if any options apply to you
+- run
+  ./configure
+  make
+
+  to build GStreamer.
+- if you want to install it (not required, but what you usually want to do), run
+  make install
+
+- try out a simple test:
+  gst-launch -v fakesrc num_buffers=5 ! fakesink
+  (If you didn't install GStreamer, prefix gst-launch with tools/)
+
+  If it outputs a bunch of messages from fakesrc and fakesink, everything is
+  ok.
+
+  If it did not work, keep in mind that you might need to adjust the
+  PATH and/or LD_LIBRARY_PATH environment variables to make the system
+  find GStreamer in the prefix where you installed (by default that is /usr/local).
+
+- After this, you're ready to install gst-plugins, which will provide the
+  functionality you're probably looking for by now, so go on and read
+  that README.
+
+COMPILING FROM GIT
+------------------
+
+When building from git sources, you will need to run autogen.sh to generate
+the build system files.
+
+You will need a set of additional tools typical for building from git,
+including:
+- autoconf
+- automake
+- libtool
+
+autogen.sh will check for recent enough versions and complain if you don't have
+them.  You can also specify specific versions of automake and autoconf with
+--with-automake and --with-autoconf
+
+Check autogen.sh options by running autogen.sh --help
+
+autogen.sh can pass on arguments to configure
+
+When you have done this once, you can use autoregen.sh to re-autogen with
+the last passed options as a handy shortcut.  Use it.
+
+After the autogen.sh stage, you can follow the directions listed in
+"COMPILING FROM SOURCE"
+
+You can also run your whole git stack uninstalled in your home directory,
+so that you can quickly test changes without affecting your system setup or
+interfering with GStreamer installed from packages.  Many GStreamer developers
+use an uninstalled setup for their work.
+
+There is a 'create-uninstalled-setup.sh' script in
+
+  http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts/
+
+to easily create an uninstalled setup from scratch.
+
+
+PLUG-IN DEPENDENCIES AND LICENSES
+---------------------------------
+
+GStreamer is developed under the terms of the LGPL (see LICENSE file for
+details). Some of our plug-ins however rely on libraries which are available
+under other licenses. This means that if you are distributing an application
+which has a non-GPL compatible license (for instance a closed-source
+application) with GStreamer, you have to make sure not to distribute GPL-linked
+plug-ins.
+
+When using GPL-linked plug-ins, GStreamer is for all practical reasons
+under the GPL itself.
+
+HISTORY
+-------
+
+The fundamental design comes from the video pipeline at Oregon Graduate
+Institute, as well as some ideas from DirectMedia.  It's based on plug-ins that
+will provide the various codec and other functionality.  The interface
+hopefully is generic enough for various companies (ahem, Apple) to release
+binary codecs for Linux, until such time as they get a clue and release the
+source.
diff --git a/common/c-to-xml.py b/common/c-to-xml.py
index 397c112b8..7a7a35bca 100644
--- a/common/c-to-xml.py
+++ b/common/c-to-xml.py
@@ -5,6 +5,8 @@
 Convert a C program to valid XML to be included in docbook
 """
 
+from __future__ import print_function, unicode_literals
+
 import sys
 import os
 from xml.sax import saxutils
@@ -22,13 +24,13 @@ def main():
     content = open(source, "r").read()
 
     # print header
-    print '<?xml version="1.0"?>'
-    print '<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">'
-    print
-    print '<programlisting>'
+    print ('<?xml version="1.0"?>')
+    print ('<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">')
+    print ()
+    print ('<programlisting>')
 
     # print content
-    print saxutils.escape(content).encode('UTF-8')
-    print '</programlisting>'
+    print (saxutils.escape(content))
+    print ('</programlisting>')
 
 main()
diff --git a/common/check.mak b/common/check.mak
index 0aec84307..285876cb4 100644
--- a/common/check.mak
+++ b/common/check.mak
@@ -11,7 +11,7 @@ check-valgrind:
 	@true
 endif
 
-LOOPS = 10
+LOOPS ?= 10
 
 # run any given test by running make test.check
 # if the test fails, run it again at at least debug level 2
@@ -74,6 +74,17 @@ LOOPS = 10
 	--gen-suppressions=all					\
 	./$* 2>&1 | tee suppressions.log
 	
+# valgrind torture any given test
+%.valgrind-torture: %
+	@for i in `seq 1 $(LOOPS)`; do				\
+		$(MAKE) $*.valgrind ||				\
+		(echo "Failure after $$i runs"; exit 1) ||	\
+		exit 1;						\
+	done
+	@banner="All $(LOOPS) loops passed";			\
+	dashes=`echo "$$banner" | sed s/./=/g`;			\
+	echo $$dashes; echo $$banner; echo $$dashes
+
 # valgrind any given test until failure by running make test.valgrind-forever
 %.valgrind-forever: %
 	@while $(MAKE) $*.valgrind; do				\
@@ -86,9 +97,34 @@ LOOPS = 10
 	$(LIBTOOL) --mode=execute				\
 	gdb $*
 
+%.lcov-reset:
+	$(MAKE) $*.lcov-run
+	$(MAKE) $*.lcov-report
+
+%.lcov: %
+	$(MAKE) $*.lcov-reset
+
+if GST_GCOV_ENABLED
+%.lcov-clean:
+	$(MAKE) -C $(top_builddir) lcov-clean
+
+%.lcov-run:
+	$(MAKE) $*.lcov-clean
+	$(MAKE) $*.check
+
+%.lcov-report:
+	$(MAKE) -C $(top_builddir) lcov-report
+else
+%.lcov-run:
+	echo "Need to reconfigure with --enable-gcov"
+
+%.lcov-report:
+	echo "Need to reconfigure with --enable-gcov"
+endif
+
 # torture tests
 torture: $(TESTS)
-	-rm test-registry.xml
+	-rm test-registry.*
 	@echo "Torturing tests ..."
 	@for i in `seq 1 $(LOOPS)`; do				\
 		$(MAKE) check ||				\
@@ -101,7 +137,7 @@ torture: $(TESTS)
 
 # forever tests
 forever: $(TESTS)
-	-rm test-registry.xml
+	-rm test-registry.*
 	@echo "Forever tests ..."
 	@while true; do						\
 		$(MAKE) check ||				\
@@ -127,6 +163,29 @@ valgrind: $(TESTS)
 		false;							\
 	fi
 
+# valgrind all tests until failure
+valgrind-forever: $(TESTS)
+	-rm test-registry.*
+	@echo "Forever valgrinding tests ..."
+	@while true; do						\
+		$(MAKE) valgrind ||				\
+		(echo "Failure"; exit 1) ||			\
+		exit 1;						\
+	done
+
+# valgrind torture all tests
+valgrind-torture: $(TESTS)
+	-rm test-registry.*
+	@echo "Torturing and valgrinding tests ..."
+	@for i in `seq 1 $(LOOPS)`; do				\
+		$(MAKE) valgrind ||				\
+		(echo "Failure after $$i runs"; exit 1) ||	\
+		exit 1;						\
+	done
+	@banner="All $(LOOPS) loops passed";			\
+	dashes=`echo "$$banner" | sed s/./=/g`;			\
+	echo $$dashes; echo $$banner; echo $$dashes
+
 # valgrind all tests and generate suppressions
 valgrind.gen-suppressions: $(TESTS)
 	@echo "Valgrinding tests ..."
@@ -166,10 +225,13 @@ help:
 	@echo "make (dir)/(test).gdb              -- start up gdb for the given test"
 	@echo
 	@echo "make valgrind                      -- valgrind all tests"
+	@echo "make valgrind-forever              -- valgrind all tests forever"
+	@echo "make valgrind-torture              -- valgrind all tests $(LOOPS) times"
 	@echo "make valgrind.gen-suppressions     -- generate suppressions for all tests"
 	@echo "                                      and save to suppressions.log"
 	@echo "make (dir)/(test).valgrind         -- valgrind the given test"
 	@echo "make (dir)/(test).valgrind-forever -- valgrind the given test forever"
+	@echo "make (dir)/(test).valgrind-torture -- valgrind the given test $(LOOPS) times"
 	@echo "make (dir)/(test).valgrind.gen-suppressions -- generate suppressions"
 	@echo "                                               and save to suppressions.log"
 	@echo "make inspect                       -- inspect all plugin features"
diff --git a/common/coverage/coverage-report-entry.pl b/common/coverage/coverage-report-entry.pl
index 51c506c9c..d0036b328 100644
--- a/common/coverage/coverage-report-entry.pl
+++ b/common/coverage/coverage-report-entry.pl
@@ -14,7 +14,7 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 
 print <<EOF;
diff --git a/common/coverage/coverage-report.pl b/common/coverage/coverage-report.pl
index ed30f8d7b..18bd6f1ba 100644
--- a/common/coverage/coverage-report.pl
+++ b/common/coverage/coverage-report.pl
@@ -14,7 +14,7 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 use warnings;
 use strict;
diff --git a/common/coverage/coverage-report.xsl b/common/coverage/coverage-report.xsl
index b19ebb638..3fe124b5c 100644
--- a/common/coverage/coverage-report.xsl
+++ b/common/coverage/coverage-report.xsl
@@ -15,7 +15,7 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 -->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                 version="1.0">
diff --git a/common/coverage/lcov.mak b/common/coverage/lcov.mak
index fc1f6b297..b45728a13 100644
--- a/common/coverage/lcov.mak
+++ b/common/coverage/lcov.mak
@@ -1,5 +1,5 @@
 ## .PHONY so it always rebuilds it
-.PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload
+.PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload lcov-clean
 
 # run lcov from scratch, always
 lcov-reset:
@@ -11,10 +11,14 @@ lcov:
 	$(MAKE) lcov-reset
 
 if GST_GCOV_ENABLED
-# reset run coverage tests
-lcov-run:
+# reset lcov stats
+lcov-clean:
 	@-rm -rf lcov
 	lcov --directory . --zerocounters
+
+# reset run coverage tests
+lcov-run:
+	-$(MAKE) lcov-clean
 	-if test -d tests/check; then $(MAKE) -C tests/check inspect; fi
 	-$(MAKE) check
 
diff --git a/common/gst.supp b/common/gst.supp
index d7f896103..05ecbb9d6 100644
--- a/common/gst.supp
+++ b/common/gst.supp
@@ -3961,3 +3961,18 @@
    fun:gst_system_clock_init
 }
 
+{
+   <glib types are singletons>
+   Memcheck:Leak
+   fun:calloc
+   ...
+   fun:gobject_init_ctor
+}
+
+{
+   <quark table is leaked on purpose if it grows too big>
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:g_quark_from*_string
+}
diff --git a/common/gstdoc-scangobj b/common/gstdoc-scangobj
index 0d69a865c..09039a56c 100755
--- a/common/gstdoc-scangobj
+++ b/common/gstdoc-scangobj
@@ -16,7 +16,7 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 #
 
 #
@@ -307,10 +307,10 @@ get_object_types (void)
             /* output element data */
             fputs ("    <element>\\n", inspect);
             fputs (xmlprint(6, "name", gst_plugin_feature_get_name (feature)),inspect);
-            fputs (xmlprint(6, "longname", gst_element_factory_get_longname (factory)),inspect);
-            fputs (xmlprint(6, "class", gst_element_factory_get_klass (factory)),inspect);
-            fputs (xmlprint(6, "description", gst_element_factory_get_description (factory)),inspect);
-            fputs (xmlprint(6, "author", gst_element_factory_get_author (factory)),inspect);
+            fputs (xmlprint(6, "longname", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_LONGNAME)),inspect);
+            fputs (xmlprint(6, "class", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_KLASS)),inspect);
+            fputs (xmlprint(6, "description", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_DESCRIPTION)),inspect);
+            fputs (xmlprint(6, "author", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_AUTHOR)),inspect);
             fputs ("      <pads>\\n", inspect);
 
             /* output pad-template data */
@@ -354,11 +354,11 @@ get_object_types (void)
       factory = GST_ELEMENT_FACTORY (l->data);
       type = gst_element_factory_get_element_type (factory);
       if (type != 0) {
-        $debug_log ("adding type for factory %s", gst_element_factory_get_longname (factory));
+        $debug_log ("adding type for factory %s", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_LONGNAME));
         object_types[i++] = type;
       } else {
         g_message ("type info for factory %s not found",
-            gst_element_factory_get_longname (factory));
+            gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_LONGNAME));
       }
       l = g_list_next (l);
     }
diff --git a/common/gtk-doc-plugins.mak b/common/gtk-doc-plugins.mak
index 2468cb083..f19e7d7ed 100644
--- a/common/gtk-doc-plugins.mak
+++ b/common/gtk-doc-plugins.mak
@@ -94,9 +94,9 @@ all-local: html-build.stamp
 INSPECT_REGISTRY=$(top_builddir)/docs/plugins/inspect-registry.xml
 INSPECT_ENVIRONMENT=\
 	LC_ALL=C \
-	GST_PLUGIN_SYSTEM_PATH= \
-	GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \
-	GST_REGISTRY=$(INSPECT_REGISTRY) \
+	GST_PLUGIN_SYSTEM_PATH_1_0= \
+	GST_PLUGIN_PATH_1_0=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \
+	GST_REGISTRY_1_0=$(INSPECT_REGISTRY) \
 	PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
 	$(INSPECT_EXTRA_ENVIRONMENT)
 
@@ -222,10 +222,7 @@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
 	    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_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml
-	@rm -f html/index.sgml.bak
+	cd html && gtkdoc-mkhtml $$mkhtml_options $(DOC_MODULE)-@GST_API_VERSION@ $(DOC_MAIN_SGML_FILE)
 	@rm -f html/$(DOC_MAIN_SGML_FILE)
 	@rm -rf html/xml
 	@rm -f html/version.entities
@@ -289,9 +286,9 @@ install-data-local:
 	      $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
 	    done; \
 	  fi; \
-	  echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
-	  if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
-	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
+	  echo '-- Installing $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2' ; \
+	  if test -e $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; then \
+	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2 \
 	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \
 	  fi; \
 	  $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) || true ; \
diff --git a/common/gtk-doc.mak b/common/gtk-doc.mak
index a1e07dc88..9d76889e4 100644
--- a/common/gtk-doc.mak
+++ b/common/gtk-doc.mak
@@ -81,9 +81,9 @@ scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
 		--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				\
+	    GST_PLUGIN_SYSTEM_PATH_1_0=`cd $(top_builddir) && pwd`		\
+	    GST_PLUGIN_PATH_1_0=						\
+	    GST_REGISTRY_1_0=doc-registry.xml				\
 	    $(GTKDOC_EXTRA_ENVIRONMENT)					\
 	    CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)"				\
 	    CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)"				\
@@ -130,10 +130,7 @@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
 	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_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml
-	@rm -f html/index.sgml.bak
+	cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE)-@GST_API_VERSION@ ../$(DOC_MAIN_SGML_FILE)
 	@rm -rf html/xml
 	@rm -f version.entities
 	@test "x$(HTML_IMAGES)" = "x" ||  ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html )
@@ -189,9 +186,9 @@ install-data-local:
 	    echo '-- Installing '$$i ; \
 	    $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
 	  done; \
-	  echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
-	  if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
-	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
+	  echo '-- Installing $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2' ; \
+	  if test -e $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; then \
+	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2 \
 	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \
 	  fi; \
 	  $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) || true ; \
diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in
index b42ef2b03..03507ace2 100644
--- a/common/m4/Makefile.in
+++ b/common/m4/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,14 +79,13 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = common/m4
-DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README
 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-gcc-inline-assembly.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 \
@@ -95,12 +121,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -108,6 +140,7 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -274,6 +307,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -515,11 +549,11 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
+
+ctags CTAGS:
 
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -655,15 +689,16 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool 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-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool 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-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/common/m4/as-docbook.m4 b/common/m4/as-docbook.m4
index 8a1b32a99..2e270504b 100644
--- a/common/m4/as-docbook.m4
+++ b/common/m4/as-docbook.m4
@@ -14,7 +14,19 @@ AC_DEFUN([AS_DOCBOOK],
   TYPE_UC=XML
   DOCBOOK_VERSION=4.1.2
 
-  if test ! -f /etc/xml/catalog; then
+  if test -n "$XML_CATALOG_FILES"; then
+    oldIFS=$IFS
+    IFS=' '
+    for xml_catalog_file in $XML_CATALOG_FILES; do
+      if test -f $xml_catalog_file; then
+        XML_CATALOG=$xml_catalog_file
+        CAT_ENTRY_START='<!--'
+        CAT_ENTRY_END='-->'
+        break
+      fi
+    done
+    IFS=$oldIFS
+  elif test ! -f /etc/xml/catalog; then
     for i in /usr/share/sgml/docbook/stylesheet/xsl/nwalsh /usr/share/sgml/docbook/xsl-stylesheets/ /usr/local/share/xsl/docbook ;
     do
       if test -d "$i"; then
diff --git a/common/m4/gst-check.m4 b/common/m4/gst-check.m4
index cba7e96ef..42770532e 100644
--- a/common/m4/gst-check.m4
+++ b/common/m4/gst-check.m4
@@ -266,29 +266,29 @@ AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_BAD],
 ])
 
 dnl ===========================================================================
-dnl AG_GST_CHECK_GST_PLUGINS_FFMPEG([GST-API_VERSION], [MIN-VERSION])
+dnl AG_GST_CHECK_GST_PLUGINS_LIBAV([GST-API_VERSION], [MIN-VERSION])
 dnl
-dnl Will set GST_PLUGINS_FFMPEG_DIR for use in Makefile.am. Note that this will
-dnl only be set in an uninstalled setup, since -ffmpeg ships no .pc file and in
+dnl Will set GST_PLUGINS_LIBAV_DIR for use in Makefile.am. Note that this will
+dnl only be set in an uninstalled setup, since -libav ships no .pc file and in
 dnl an installed setup all plugins will be found in GST_PLUGINS_DIR anyway.
 dnl ===========================================================================
-AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_FFMPEG],
+AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_LIBAV],
 [
-  AG_GST_CHECK_MODULES(GST_PLUGINS_FFMPEG, gstreamer-plugins-ffmpeg-[$1], [$2],
-    [GStreamer FFmpeg Plugins], [no])
+  AG_GST_CHECK_MODULES(GST_PLUGINS_LIBAV, gstreamer-plugins-libav-[$1], [$2],
+    [GStreamer Libav Plugins], [no])
 
-  if test "x$HAVE_GST_PLUGINS_FFMPEG" = "xyes"; then
-    dnl check for where ffmpeg plugins got installed
+  if test "x$HAVE_GST_PLUGINS_LIBAV" = "xyes"; then
+    dnl check for where libav plugins got installed
     dnl this is used for unit tests
     dnl allow setting before calling this macro to override
-    if test -z $GST_PLUGINS_FFMPEG_DIR; then
-      GST_PLUGINS_FFMPEG_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-ffmpeg-[$1]`
-      if test -z $GST_PLUGINS_FFMPEG_DIR; then
-        AC_MSG_ERROR([no pluginsdir set in GStreamer FFmpeg Plugins pkg-config file])
+    if test -z $GST_PLUGINS_LIBAV_DIR; then
+      GST_PLUGINS_LIBAV_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-libav-[$1]`
+      if test -z $GST_PLUGINS_LIBAV_DIR; then
+        AC_MSG_ERROR([no pluginsdir set in GStreamer Libav Plugins pkg-config file])
       fi
     fi
-    GST_PLUGINS_FFMPEG_DIR="$GST_PLUGINS_FFMPEG_DIR/ext/ffmpeg"
-    AC_MSG_NOTICE([using GStreamer FFmpeg Plugins in $GST_PLUGINS_FFMPEG_DIR])
-    AC_SUBST(GST_PLUGINS_FFMPEG_DIR)
+    GST_PLUGINS_LIBAV_DIR="$GST_PLUGINS_LIBAV_DIR/ext/libav"
+    AC_MSG_NOTICE([using GStreamer Libav Plugins in $GST_PLUGINS_LIBAV_DIR])
+    AC_SUBST(GST_PLUGINS_LIBAV_DIR)
   fi
 ])
diff --git a/common/m4/gst-doc.m4 b/common/m4/gst-doc.m4
index 871c346e1..5d3f0fd8f 100644
--- a/common/m4/gst-doc.m4
+++ b/common/m4/gst-doc.m4
@@ -20,34 +20,10 @@ AC_DEFUN([AG_GST_DOCBOOK_CHECK],
 
     dnl check for docbook tools
     AC_CHECK_PROG(HAVE_DOCBOOK2PS, docbook2ps, yes, no)
-    AC_CHECK_PROG(HAVE_DOCBOOK2HTML, docbook2html, yes, no)
+    AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, yes, no)
     AC_CHECK_PROG(HAVE_JADETEX, jadetex, yes, no)
     AC_CHECK_PROG(HAVE_PS2PDF, ps2pdf, yes, no)
 
-    # -V option appeared in 0.6.10
-    docbook2html_min_version=0.6.10
-    if test "x$HAVE_DOCBOOK2HTML" != "xno"; then
-      docbook2html_version=`docbook2html --version`
-      AC_MSG_CHECKING([docbook2html version ($docbook2html_version) >= $docbook2html_min_version])
-      if perl -w <<EOF
-        (\$min_version_major, \$min_version_minor, \$min_version_micro ) = "$docbook2html_min_version" =~ /(\d+)\.(\d+)\.(\d+)/;
-        (\$docbook2html_version_major, \$docbook2html_version_minor, \$docbook2html_version_micro ) = "$docbook2html_version" =~ /(\d+)\.(\d+)\.(\d+)/;
-        exit (((\$docbook2html_version_major > \$min_version_major) ||
-  	     ((\$docbook2html_version_major == \$min_version_major) &&
-  	      (\$docbook2html_version_minor >= \$min_version_minor)) ||
-  	     ((\$docbook2html_version_major == \$min_version_major) &&
-  	      (\$docbook2html_version_minor >= \$min_version_minor) &&
-  	      (\$docbook2html_version_micro >= \$min_version_micro)))
-  	     ? 0 : 1);
-EOF
-      then
-        AC_MSG_RESULT(yes)
-      else
-        AC_MSG_RESULT(no)
-        HAVE_DOCBOOK2HTML=no
-      fi
-    fi
-
     dnl check if we can process docbook stuff
     AS_DOCBOOK(have_docbook=yes, have_docbook=no)
 
@@ -55,45 +31,14 @@ EOF
     AC_CHECK_PROG(HAVE_DVIPS, dvips, yes, no)
     AC_CHECK_PROG(HAVE_XMLLINT, xmllint, yes, no)
 
-    dnl check for image conversion tools
-    AC_CHECK_PROG(HAVE_FIG2DEV, fig2dev, yes, no)
-    if test "x$HAVE_FIG2DEV" = "xno" ; then
-      AC_MSG_WARN([Did not find fig2dev (from xfig), images will not be generated.])
-    fi
-
-    dnl The following is a hack: if fig2dev doesn't display an error message
-    dnl for the desired type, we assume it supports it.
-    HAVE_FIG2DEV_EPS=no
-    if test "x$HAVE_FIG2DEV" = "xyes" ; then
-      fig2dev_quiet=`fig2dev -L eps </dev/null 2>&1 >/dev/null`
-      if test "x$fig2dev_quiet" = "x" ; then
-        HAVE_FIG2DEV_EPS=yes
-      fi
-    fi
-    HAVE_FIG2DEV_PNG=no
-    if test "x$HAVE_FIG2DEV" = "xyes" ; then
-      fig2dev_quiet=`fig2dev -L png </dev/null 2>&1 >/dev/null`
-      if test "x$fig2dev_quiet" = "x" ; then
-        HAVE_FIG2DEV_PNG=yes
-      fi
-    fi
-    HAVE_FIG2DEV_PDF=no
-    if test "x$HAVE_FIG2DEV" = "xyes" ; then
-      fig2dev_quiet=`fig2dev -L pdf </dev/null 2>&1 >/dev/null`
-      if test "x$fig2dev_quiet" = "x" ; then
-        HAVE_FIG2DEV_PDF=yes
-      fi
-    fi
-
     AC_CHECK_PROG(HAVE_PNGTOPNM, pngtopnm, yes, no)
     AC_CHECK_PROG(HAVE_PNMTOPS,  pnmtops,  yes, no)
     AC_CHECK_PROG(HAVE_EPSTOPDF, epstopdf, yes, no)
 
     dnl check if we can generate HTML
-    if test "x$HAVE_DOCBOOK2HTML" = "xyes" && \
+    if test "x$HAVE_XSLTPROC" = "xyes" && \
        test "x$enable_docbook" = "xyes" && \
-       test "x$HAVE_XMLLINT" = "xyes" && \
-       test "x$HAVE_FIG2DEV_PNG" = "xyes"; then
+       test "x$HAVE_XMLLINT" = "xyes"; then
       DOC_HTML=yes
       AC_MSG_NOTICE(Will output HTML documentation)
      else
@@ -106,7 +51,6 @@ EOF
        test "x$enable_docbook" = "xyes" && \
        test "x$HAVE_XMLLINT" = "xyes" && \
        test "x$HAVE_JADETEX" = "xyes" && \
-       test "x$HAVE_FIG2DEV_EPS" = "xyes" && \
        test "x$HAVE_DVIPS" = "xyes" && \
        test "x$HAVE_PNGTOPNM" = "xyes" && \
        test "x$HAVE_PNMTOPS" = "xyes"; then
diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4
index 3f3d56562..9a3a92339 100644
--- a/common/m4/gst-glib2.m4
+++ b/common/m4/gst-glib2.m4
@@ -16,7 +16,7 @@ AC_DEFUN([AG_GST_GLIB_CHECK],
 
   dnl Check for glib with everything
   AG_GST_PKG_CHECK_MODULES(GLIB,
-    glib-2.0 >= $GLIB_REQ gobject-2.0 gthread-2.0 gmodule-no-export-2.0)
+    glib-2.0 >= $GLIB_REQ gobject-2.0 gmodule-no-export-2.0)
 
   if test "x$HAVE_GLIB" = "xno"; then
     AC_MSG_ERROR([This package requires GLib >= $GLIB_REQ to compile.])
@@ -28,7 +28,7 @@ AC_DEFUN([AG_GST_GLIB_CHECK],
   GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_THREADS_MANDATORY"
 
   dnl Define G_DISABLE_DEPRECATED for GIT versions
-  if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+  if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then
     GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_DISABLE_DEPRECATED"
   fi
 
@@ -39,7 +39,7 @@ AC_DEFUN([AG_GST_GLIB_CHECK],
 
   if test "x$enable_gobject_cast_checks" = "xauto"; then
     dnl For releases, turn off the cast checks
-    if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+    if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then
       enable_gobject_cast_checks=yes
     else
       enable_gobject_cast_checks=no
@@ -57,7 +57,7 @@ AC_DEFUN([AG_GST_GLIB_CHECK],
 
   if test "x$enable_glib_assertions" = "xauto"; then
     dnl For releases, turn off the assertions
-    if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+    if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then
       enable_glib_assertions=yes
     else
       enable_glib_assertions=no
diff --git a/common/m4/gst-plugin-docs.m4 b/common/m4/gst-plugin-docs.m4
index dcfd61d86..0e2ab6e3d 100644
--- a/common/m4/gst-plugin-docs.m4
+++ b/common/m4/gst-plugin-docs.m4
@@ -1,4 +1,4 @@
-dnl AG_GST_PLUGIN_DOCS([MINIMUM-GTK-DOC-VERSION],[MINIMUM-PYTHON-VERSION])
+dnl AG_GST_PLUGIN_DOCS([MINIMUM-GTK-DOC-VERSION])
 dnl
 dnl checks for prerequisites for the common/mangle-tmpl.py script
 dnl used when building the plugin documentation
@@ -6,13 +6,17 @@ dnl used when building the plugin documentation
 AC_DEFUN([AG_GST_PLUGIN_DOCS],
 [
   AC_BEFORE([GTK_DOC_CHECK],[$0])dnl check for gtk-doc first
-  AC_BEFORE([AS_PATH_PYTHON],[$1])dnl find python first
+  AC_REQUIRE([AM_PATH_PYTHON])dnl find python first
 
   build_plugin_docs=no
   AC_MSG_CHECKING([whether to build plugin documentation])
   if test x$enable_gtk_doc = xyes; then
-    build_plugin_docs=yes
-    AC_MSG_RESULT([yes])
+    if test x$PYTHON != x; then
+      build_plugin_docs=yes
+      AC_MSG_RESULT([yes])
+    else
+      AC_MSG_RESULT([no (python not found)])
+    fi
   else
     AC_MSG_RESULT([no (gtk-doc disabled or not available)])
   fi
diff --git a/common/mangle-tmpl.py b/common/mangle-tmpl.py
index bd4f948ed..51ea8c2e5 100644
--- a/common/mangle-tmpl.py
+++ b/common/mangle-tmpl.py
@@ -15,6 +15,8 @@ insert/overwrite Short Description and Long Description
 # read in inspect/*.xml
 # for every tmpl/element-(name).xml: mangle with details from element
 
+from __future__ import print_function, unicode_literals
+
 import glob
 import re
 import sys
diff --git a/common/scangobj-merge.py b/common/scangobj-merge.py
index 9a1cac90d..4a9f1fc76 100755
--- a/common/scangobj-merge.py
+++ b/common/scangobj-merge.py
@@ -6,6 +6,8 @@
 parse, merge and write gstdoc-scanobj files
 """
 
+from __future__ import print_function, unicode_literals
+
 import sys
 import os
 
@@ -76,13 +78,13 @@ class Object:
         return "<Object %s>" % self.name
 
     def add_signal(self, signal, overwrite=True):
-        if not overwrite and self._signals.has_key(signal.name):
-            raise IndexError, "signal %s already in %r" % (signal.name, self)
+        if not overwrite and signal.name in self._signals:
+            raise IndexError("signal %s already in %r" % (signal.name, self))
         self._signals[signal.name] = signal
 
     def add_arg(self, arg, overwrite=True):
-        if not overwrite and self._args.has_key(arg.name):
-            raise IndexError, "arg %s already in %r" % (arg.name, self)
+        if not overwrite and arg.name in self._args:
+            raise IndexError("arg %s already in %r" % (arg.name, self))
         self._args[arg.name] = arg
 
 class Docable:
@@ -106,7 +108,7 @@ class GDoc:
             lines = open(filename).readlines()
             self.load_data("".join(lines))
         except IOError:
-            print "WARNING - could not read from %s" % filename
+            print ("WARNING - could not read from %s" % filename)
 
     def save_file(self, filename, backup=False):
         """
@@ -117,7 +119,7 @@ class GDoc:
             lines = open(filename).readlines()
             olddata = "".join(lines)
         except IOError:
-            print "WARNING - could not read from %s" % filename
+            print ("WARNING - could not read from %s" % filename)
         newdata = self.get_data()
         if olddata and olddata == newdata:
             return
@@ -161,7 +163,7 @@ class Signals(GDoc):
                 o = nmatch.group('object')
                 debug("Found object", o)
                 debug("Found signal", nmatch.group('signal'))
-                if not self._objects.has_key(o):
+                if o not in self._objects:
                     object = Object(o)
                     self._objects[o] = object
 
@@ -222,7 +224,7 @@ class Args(GDoc):
                 o = nmatch.group('object')
                 debug("Found object", o)
                 debug("Found arg", nmatch.group('arg'))
-                if not self._objects.has_key(o):
+                if o not in self._objects:
                     object = Object(o)
                     self._objects[o] = object
 
@@ -233,7 +235,7 @@ class Args(GDoc):
                     arg = Arg(**dict)
                     self._objects[o].add_arg(arg)
                 else:
-                    print "ERROR: could not match arg from block %s" % block
+                    print ("ERROR: could not match arg from block %s" % block)
 
     def get_data(self):
         lines = []
diff --git a/common/win32.mak b/common/win32.mak
index c343a0495..30e347e0b 100644
--- a/common/win32.mak
+++ b/common/win32.mak
@@ -51,11 +51,17 @@ check-exports:
 	if test $$fail != 0; then \
 	  echo '-----------------------------------------------------------'; \
 	  echo 'Run this to update the .def files:'; \
-	  echo 'make check-exports 2>&1 | patch -p1'; \
+	  echo 'make update-exports'; \
 	  echo '-----------------------------------------------------------'; \
 	fi; \
 	exit $$fail
 
+update-exports:
+	make check-exports 2>&1 | patch -p1
+	git add win32/common/libgst*.def
+	git diff --cached -- win32/common/
+	echo '^^^--- updated and staged changes above'
+
 # complain about nonportable printf format strings (%lld, %llu, %zu etc.)
 check-nonportable-print-format:
 	@fail=0 ; \
diff --git a/compile b/compile
index 862a14e8c..b1f474915 100755
--- a/compile
+++ b/compile
@@ -1,7 +1,7 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2012-03-05.13; # UTC
+scriptversion=2012-01-04.17; # UTC
 
 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
 # Software Foundation, Inc.
@@ -79,48 +79,6 @@ func_file_conv ()
   esac
 }
 
-# func_cl_dashL linkdir
-# Make cl look for libraries in LINKDIR
-func_cl_dashL ()
-{
-  func_file_conv "$1"
-  if test -z "$lib_path"; then
-    lib_path=$file
-  else
-    lib_path="$lib_path;$file"
-  fi
-  linker_opts="$linker_opts -LIBPATH:$file"
-}
-
-# func_cl_dashl library
-# Do a library search-path lookup for cl
-func_cl_dashl ()
-{
-  lib=$1
-  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
-      lib=$dir/$lib.dll.lib
-      break
-    fi
-    if test -f "$dir/$lib.lib"; then
-      found=yes
-      lib=$dir/$lib.lib
-      break
-    fi
-  done
-  IFS=$save_IFS
-
-  if test "$found" != yes; then
-    lib=$lib.lib
-  fi
-}
-
 # func_cl_wrapper cl arg...
 # Adjust compile command to suit cl
 func_cl_wrapper ()
@@ -151,34 +109,43 @@ func_cl_wrapper ()
 	      ;;
 	  esac
 	  ;;
-	-I)
-	  eat=1
-	  func_file_conv "$2" mingw
-	  set x "$@" -I"$file"
-	  shift
-	  ;;
 	-I*)
 	  func_file_conv "${1#-I}" mingw
 	  set x "$@" -I"$file"
 	  shift
 	  ;;
-	-l)
-	  eat=1
-	  func_cl_dashl "$2"
-	  set x "$@" "$lib"
-	  shift
-	  ;;
 	-l*)
-	  func_cl_dashl "${1#-l}"
-	  set x "$@" "$lib"
+	  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)
-	  eat=1
-	  func_cl_dashL "$2"
-	  ;;
 	-L*)
-	  func_cl_dashL "${1#-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
diff --git a/config.h.in b/config.h.in
index 6dee8b5f2..d216d8d74 100644
--- a/config.h.in
+++ b/config.h.in
@@ -85,6 +85,9 @@
    the CoreFoundation framework. */
 #undef HAVE_CFPREFERENCESCOPYAPPVALUE
 
+/* Define to 1 if you have the `clock_gettime' function. */
+#undef HAVE_CLOCK_GETTIME
+
 /* Define to 1 if you have the `cosh' function. */
 #undef HAVE_COSH
 
@@ -134,6 +137,10 @@
    */
 #undef HAVE_DCGETTEXT
 
+/* Define to 1 if you have the declaration of `V4L2_MEMORY_DMABUF', and to 0
+   if you don't. */
+#undef HAVE_DECL_V4L2_MEMORY_DMABUF
+
 /* Define to enable DirectSound plug-in (used by directsoundsink). */
 #undef HAVE_DIRECTSOUND
 
@@ -221,9 +228,6 @@
 /* Define to enable Portable Network Graphics library (used by png). */
 #undef HAVE_LIBPNG
 
-/* soup gnome integration */
-#undef HAVE_LIBSOUP_GNOME
-
 /* Whether libv4l2 is available for video buffer conversion */
 #undef HAVE_LIBV4L2
 
@@ -329,6 +333,12 @@
 /* Defined if the VP8 encoder is available */
 #undef HAVE_VP8_ENCODER
 
+/* Defined if the VP9 decoder is available */
+#undef HAVE_VP9_DECODER
+
+/* Defined if the VP9 encoder is available */
+#undef HAVE_VP9_ENCODER
+
 /* Define to enable VPX decoder (used by vpx). */
 #undef HAVE_VPX
 
diff --git a/config.sub b/config.sub
index 6205f8423..c894da455 100755
--- a/config.sub
+++ b/config.sub
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
 #   2011, 2012 Free Software Foundation, Inc.
 
-timestamp='2012-04-18'
+timestamp='2012-02-10'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -225,12 +225,6 @@ case $os in
 	-isc*)
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
 		;;
-	-lynx*178)
-		os=-lynxos178
-		;;
-	-lynx*5)
-		os=-lynxos5
-		;;
 	-lynx*)
 		os=-lynxos
 		;;
@@ -1543,9 +1537,6 @@ case $basic_machine in
 	c4x-* | tic4x-*)
 		os=-coff
 		;;
-	hexagon-*)
-		os=-elf
-		;;
 	tic54x-*)
 		os=-coff
 		;;
diff --git a/configure b/configure
index 732fabd13..35ba04f53 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GStreamer Good Plug-ins 1.0.8.
+# Generated by GNU Autoconf 2.69 for GStreamer Good Plug-ins 1.1.2.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
 #
@@ -591,8 +591,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='GStreamer Good Plug-ins'
 PACKAGE_TARNAME='gst-plugins-good'
-PACKAGE_VERSION='1.0.8'
-PACKAGE_STRING='GStreamer Good Plug-ins 1.0.8'
+PACKAGE_VERSION='1.1.2'
+PACKAGE_STRING='GStreamer Good Plug-ins 1.1.2'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -847,6 +847,8 @@ USE_PLUGIN_EQUALIZER_FALSE
 USE_PLUGIN_EQUALIZER_TRUE
 USE_PLUGIN_EFFECTV_FALSE
 USE_PLUGIN_EFFECTV_TRUE
+USE_PLUGIN_DTMF_FALSE
+USE_PLUGIN_DTMF_TRUE
 USE_PLUGIN_DEINTERLACE_FALSE
 USE_PLUGIN_DEINTERLACE_TRUE
 USE_PLUGIN_DEBUGUTILS_FALSE
@@ -935,6 +937,7 @@ GST_HAVE_MMAP_FALSE
 GST_HAVE_MMAP_TRUE
 HAVE_GCC_ASM_FALSE
 HAVE_GCC_ASM_TRUE
+LIBRT
 LIBM
 ENABLE_PLUGIN_DOCS_FALSE
 ENABLE_PLUGIN_DOCS_TRUE
@@ -1101,10 +1104,6 @@ GST_AGE
 GST_REVISION
 GST_CURRENT
 GST_API_VERSION
-AM_BACKSLASH
-AM_DEFAULT_VERBOSITY
-AM_DEFAULT_V
-AM_V
 MAINT
 MAINTAINER_MODE_FALSE
 MAINTAINER_MODE_TRUE
@@ -1113,6 +1112,10 @@ PACKAGE_VERSION_NANO
 PACKAGE_VERSION_MICRO
 PACKAGE_VERSION_MINOR
 PACKAGE_VERSION_MAJOR
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
 am__untar
 am__tar
 AMTAR
@@ -1189,8 +1192,8 @@ SHELL'
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
-enable_maintainer_mode
 enable_silent_rules
+enable_maintainer_mode
 enable_static
 enable_shared
 with_pic
@@ -1242,6 +1245,7 @@ enable_avi
 enable_cutter
 enable_debugutils
 enable_deinterlace
+enable_dtmf
 enable_effectv
 enable_equalizer
 enable_flv
@@ -1334,6 +1338,7 @@ CCAS
 CCASFLAGS
 GTKDOC_DEPS_CFLAGS
 GTKDOC_DEPS_LIBS
+PYTHON
 GLIB_CFLAGS
 GLIB_LIBS
 GIO_CFLAGS
@@ -1941,7 +1946,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 Good Plug-ins 1.0.8 to adapt to many kinds of systems.
+\`configure' configures GStreamer Good Plug-ins 1.1.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -2017,7 +2022,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer Good Plug-ins 1.0.8:";;
+     short | recursive ) echo "Configuration of GStreamer Good Plug-ins 1.1.2:";;
    esac
   cat <<\_ACEOF
 
@@ -2025,16 +2030,19 @@ Optional Features:
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --disable-maintainer-mode  disable make rules and dependencies not useful
-			  (and sometimes confusing) to the casual installer
-  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')
+  --enable-silent-rules   less verbose build output (undo: "make V=1")
+  --disable-silent-rules  verbose build output (undo: "make V=0")
+  --disable-maintainer-mode
+                          disable make rules and dependencies not useful (and
+                          sometimes confusing) to the casual installer
   --enable-static[=PKGS]  build static libraries [default=no]
   --enable-shared[=PKGS]  build shared libraries [default=yes]
   --enable-fast-install[=PKGS]
                           optimize for fast installation [default=yes]
-  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors
+  --enable-dependency-tracking
+                          do not reject slow dependency extractors
+  --disable-dependency-tracking
+                          speeds up one-time build
   --disable-libtool-lock  avoid locking (might break parallel builds)
   --disable-nls           do not use Native Language Support
   --disable-rpath         do not hardcode runtime library paths
@@ -2067,6 +2075,7 @@ Optional Features:
   --disable-cutter        disable dependency-less cutter plugin
   --disable-debugutils    disable dependency-less debugutils plugin
   --disable-deinterlace   disable dependency-less deinterlace plugin
+  --disable-dtmf          disable dependency-less dtmf plugin
   --disable-effectv       disable dependency-less effectv plugin
   --disable-equalizer     disable dependency-less equalizer plugin
   --disable-flv           disable dependency-less flv plugin
@@ -2199,6 +2208,7 @@ Some influential environment variables:
               C compiler flags for GTKDOC_DEPS, overriding pkg-config
   GTKDOC_DEPS_LIBS
               linker flags for GTKDOC_DEPS, overriding pkg-config
+  PYTHON      the Python interpreter
   GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config
   GLIB_LIBS   linker flags for GLIB, overriding pkg-config
   GIO_CFLAGS  C compiler flags for GIO, overriding pkg-config
@@ -2372,7 +2382,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer Good Plug-ins configure 1.0.8
+GStreamer Good Plug-ins configure 1.1.2
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -3183,7 +3193,7 @@ 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 Good Plug-ins $as_me 1.0.8, which was
+It was created by GStreamer Good Plug-ins $as_me 1.1.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3679,7 +3689,7 @@ test -n "$target_alias" &&
 
 
 
-am__api_version='1.11'
+am__api_version='1.13'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -3776,9 +3786,6 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
 $as_echo_n "checking whether build environment is sane... " >&6; }
-# Just in case
-sleep 1
-echo timestamp > conftest.file
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
@@ -3789,32 +3796,40 @@ case `pwd` in
 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
+# Do 'set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$*" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$*" != "X $srcdir/configure conftest.file" \
-      && test "$*" != "X conftest.file $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" "$LINENO" 5
-   fi
-
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$*" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$*" != "X $srcdir/configure conftest.file" \
+	&& test "$*" != "X conftest.file $srcdir/configure"; then
+
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment" "$LINENO" 5
+     fi
+     if test "$2" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
    test "$2" = conftest.file
    )
 then
@@ -3826,6 +3841,16 @@ Check your system clock" "$LINENO" 5
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
 test "$program_prefix" != NONE &&
   program_transform_name="s&^&$program_prefix&;$program_transform_name"
 # Use a double $ so make ignores it.
@@ -3848,12 +3873,12 @@ if test x"${MISSING+set}" != xset; then
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
 fi
 
 if test x"${install_sh}" != xset; then
@@ -3865,10 +3890,10 @@ if test x"${install_sh}" != xset; then
   esac
 fi
 
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
 # tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
+# will honor the 'STRIP' environment variable to overrule this program.
 if test "$cross_compiling" != no; then
   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.
@@ -4007,12 +4032,6 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
 $as_echo "$MKDIR_P" >&6; }
 
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
-  [\\/$]* | ?:[\\/]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
 for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -4095,6 +4114,45 @@ else
 fi
 rmdir .tst 2>/dev/null
 
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+  enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=1;;
+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='\'
+
 if test "`cd $srcdir && pwd`" != "`pwd`"; then
   # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
   # is not polluted with repeated "-I."
@@ -4117,7 +4175,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gst-plugins-good'
- VERSION='1.0.8'
+ VERSION='1.1.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4145,6 +4203,12 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
 
 MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 # Always define AMTAR for backward compatibility.  Yes, it's still used
@@ -4152,86 +4216,125 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 AMTAR='$${TAR-tar}'
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5
-$as_echo_n "checking how to create a ustar tar archive... " >&6; }
-# Loop over all known methods to create a tar archive until one works.
+# We'll loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar plaintar pax cpio none'
-_am_tools=${am_cv_prog_tar_ustar-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      { echo "$as_me:$LINENO: $_am_tar --version" >&5
+
+# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5
+$as_echo_n "checking whether UID '$am_uid' is supported by ustar format... " >&6; }
+      if test $am_uid -le $am_max_uid; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+      else
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+         _am_tools=none
+      fi
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5
+$as_echo_n "checking whether GID '$am_gid' is supported by ustar format... " >&6; }
+      if test $am_gid -le $am_max_gid; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+        _am_tools=none
+      fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5
+$as_echo_n "checking how to create a ustar tar archive... " >&6; }
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_ustar-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        { echo "$as_me:$LINENO: $_am_tar --version" >&5
    ($_am_tar --version) >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); } && break
-    done
-    am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x ustar -w "$$tardir"'
-    am__tar_='pax -L -x ustar -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H ustar -L'
-    am__tar_='find "$tardir" -print | cpio -o -H ustar -L'
-    am__untar='cpio -i -H ustar -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
+      done
+      am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x ustar -w "$$tardir"'
+      am__tar_='pax -L -x ustar -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H ustar -L'
+      am__tar_='find "$tardir" -print | cpio -o -H ustar -L'
+      am__untar='cpio -i -H ustar -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_ustar}" && break
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_ustar}" && break
 
-  # tar/untar a dummy directory, and stop if the command works
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
    (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); }
-  rm -rf conftest.dir
-  if test -s conftest.tar; then
-    { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
    ($am__untar <conftest.tar) >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); }
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
+      { echo "$as_me:$LINENO: cat conftest.dir/file" >&5
+   (cat conftest.dir/file) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
+  rm -rf conftest.dir
 
-if ${am_cv_prog_tar_ustar+:} false; then :
+  if ${am_cv_prog_tar_ustar+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   am_cv_prog_tar_ustar=$_am_tool
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5
 $as_echo "$am_cv_prog_tar_ustar" >&6; }
 
 
@@ -4240,9 +4343,10 @@ $as_echo "$am_cv_prog_tar_ustar" >&6; }
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.0.8 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.0.8 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.0.8 | cut -d'.' -f3)
+
+  PACKAGE_VERSION_MAJOR=$(echo 1.1.2 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.1.2 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.1.2 | cut -d'.' -f3)
 
 
 
@@ -4253,7 +4357,7 @@ $as_echo "$am_cv_prog_tar_ustar" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.0.8 | cut -d'.' -f4)
+  NANO=$(echo 1.1.2 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -4312,10 +4416,10 @@ if test "${enable_silent_rules+set}" = set; then :
   enableval=$enable_silent_rules;
 fi
 
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=0;;
+case $enable_silent_rules in # (((
+  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
@@ -4475,7 +4579,7 @@ am__quote=
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
+# Ignore all kinds of additional output from 'make'.
 case `$am_make -s -f confmf 2> /dev/null` in #(
 *the\ am__doit\ target*)
   am__include=include
@@ -5319,8 +5423,8 @@ else
   # 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'.
+  # 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
@@ -5355,16 +5459,16 @@ else
     : > 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
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > 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"
+    # 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
+    # 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
@@ -5373,8 +5477,8 @@ else
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # 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
@@ -5382,7 +5486,7 @@ else
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # 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}
@@ -8844,10 +8948,10 @@ fi
 done
 
 
-  GST_CURRENT=7
+  GST_CURRENT=102
   GST_REVISION=0
-  GST_AGE=7
-  GST_LIBVERSION=7:0:7
+  GST_AGE=102
+  GST_LIBVERSION=102:0:102
 
 
 
@@ -13172,8 +13276,8 @@ CC="$lt_save_CC"
 
 
 
-GST_REQ=1.0.0
-GSTPB_REQ=1.0.0
+GST_REQ=1.1.2
+GSTPB_REQ=1.1.2
 
 
 
@@ -13239,6 +13343,13 @@ ACLOCAL_AMFLAGS="-I m4 -I common/m4"
 
 
 
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+  [\\/$]* | ?:[\\/]*) ;;
+  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
 $as_echo_n "checking whether NLS is requested... " >&6; }
     # Check whether --enable-nls was given.
@@ -17141,8 +17252,8 @@ else
   # 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'.
+  # 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
@@ -17177,16 +17288,16 @@ else
     : > 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
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > 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"
+    # 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
+    # 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
@@ -17195,8 +17306,8 @@ else
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # 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
@@ -17204,7 +17315,7 @@ else
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # 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}
@@ -17819,8 +17930,8 @@ else
   # 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'.
+  # 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
@@ -17855,16 +17966,16 @@ else
     : > 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
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > 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"
+    # 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
+    # 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
@@ -17873,8 +17984,8 @@ else
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # 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
@@ -17882,7 +17993,7 @@ else
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # 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}
@@ -21571,8 +21682,8 @@ else
   # 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'.
+  # 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
@@ -21605,16 +21716,16 @@ else
     : > 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
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > 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"
+    # 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
+    # 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
@@ -21623,8 +21734,8 @@ else
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # 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
@@ -21632,7 +21743,7 @@ else
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # 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}
@@ -21832,8 +21943,8 @@ else
   # 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'.
+  # 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
@@ -21866,16 +21977,16 @@ else
     : > 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
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > 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"
+    # 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
+    # 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
@@ -21884,8 +21995,8 @@ else
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # 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
@@ -21893,7 +22004,7 @@ else
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # 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}
@@ -22423,27 +22534,16 @@ fi
 
 
 
-    PYTHON_CANDIDATES="python python2.2 python2.1 python2.0 python2 \
-                     python1.6 python1.5"
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: Looking for Python version >= 2.1" >&5
-$as_echo "$as_me: Looking for Python version >= 2.1" >&6;}
-        prog="
-import sys, string
-minver = '2.1'
-# split string by '.' and convert to numeric
-minver_info = map(string.atoi, string.split(minver, '.'))
-# we can now do comparisons on the two lists:
-if sys.version_info >= tuple(minver_info):
-	sys.exit(0)
-else:
-	sys.exit(1)"
 
-    python_good=false
-    for python_candidate in $PYTHON_CANDIDATES; do
-      unset PYTHON
-      # Extract the first word of "$python_candidate", so it can be a program name with args.
-set dummy $python_candidate; ac_word=$2
+
+
+        # Find any Python interpreter.
+    if test -z "$PYTHON"; then
+      for ac_prog in python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7  python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0
+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_path_PYTHON+:} false; then :
@@ -22481,80 +22581,178 @@ else
 $as_echo "no" >&6; }
 fi
 
- 1> /dev/null 2> /dev/null
 
-      if test "x$PYTHON" = "x"; then continue; fi
+  test -n "$PYTHON" && break
+done
+test -n "$PYTHON" || PYTHON=":"
 
-      if $PYTHON -c "$prog" 1>&5 2>&5; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"$PYTHON\":" >&5
-$as_echo_n "checking \"$PYTHON\":... " >&6; }
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: okay" >&5
-$as_echo "okay" >&6; }
-        python_good=true
-        break;
-      else
-                unset ac_cv_path_PYTHON
-      fi
-    done
+    fi
+    am_display_PYTHON=python
 
 
-  if test "$python_good" != "true"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No suitable version of python found" >&5
-$as_echo "$as_me: WARNING: No suitable version of python found" >&2;}
-    PYTHON=
+  if test "$PYTHON" = :; then
+      as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5
   else
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking local Python configuration" >&5
-$as_echo_n "checking local Python configuration... " >&6; }
-
-
-
-    PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"`
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
+$as_echo_n "checking for $am_display_PYTHON version... " >&6; }
+if ${am_cv_python_version+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
+$as_echo "$am_cv_python_version" >&6; }
+  PYTHON_VERSION=$am_cv_python_version
 
 
 
   PYTHON_PREFIX='${prefix}'
 
-
   PYTHON_EXEC_PREFIX='${exec_prefix}'
 
 
 
-  PYTHON_PLATFORM=`$PYTHON -c "import sys; print sys.platform"`
-
-
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
+$as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
+if ${am_cv_python_platform+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
+$as_echo "$am_cv_python_platform" >&6; }
+  PYTHON_PLATFORM=$am_cv_python_platform
 
 
+  # Just factor out some code duplication.
+  am_python_setup_sysconfig="\
+import sys
+# Prefer sysconfig over distutils.sysconfig, for better compatibility
+# with python 3.x.  See automake bug#10227.
+try:
+    import sysconfig
+except ImportError:
+    can_use_sysconfig = 0
+else:
+    can_use_sysconfig = 1
+# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
+# <https://github.com/pypa/virtualenv/issues/118>
+try:
+    from platform import python_implementation
+    if python_implementation() == 'CPython' and sys.version[:3] == '2.7':
+        can_use_sysconfig = 0
+except ImportError:
+    pass"
+
+
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
+$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
+if ${am_cv_python_pythondir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$prefix" = xNONE
+     then
+       am_py_prefix=$ac_default_prefix
+     else
+       am_py_prefix=$prefix
+     fi
+     am_cv_python_pythondir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+     case $am_cv_python_pythondir in
+     $am_py_prefix*)
+       am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+       am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
+       ;;
+     *)
+       case $am_py_prefix in
+         /usr|/System*) ;;
+         *)
+	  am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+	  ;;
+       esac
+       ;;
+     esac
 
-  pythondir=$PYTHON_PREFIX"/lib/python"$PYTHON_VERSION/site-packages
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
+$as_echo "$am_cv_python_pythondir" >&6; }
+  pythondir=$am_cv_python_pythondir
 
 
 
   pkgpythondir=\${pythondir}/$PACKAGE
 
 
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
+$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
+if ${am_cv_python_pyexecdir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$exec_prefix" = xNONE
+     then
+       am_py_exec_prefix=$am_py_prefix
+     else
+       am_py_exec_prefix=$exec_prefix
+     fi
+     am_cv_python_pyexecdir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+     case $am_cv_python_pyexecdir in
+     $am_py_exec_prefix*)
+       am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+       am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
+       ;;
+     *)
+       case $am_py_exec_prefix in
+         /usr|/System*) ;;
+         *)
+	   am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+	   ;;
+       esac
+       ;;
+     esac
 
-  pyexecdir=$PYTHON_EXEC_PREFIX"/lib/python"$PYTHON_VERSION/site-packages
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
+$as_echo "$am_cv_python_pyexecdir" >&6; }
+  pyexecdir=$am_cv_python_pyexecdir
 
 
 
   pkgpyexecdir=\${pyexecdir}/$PACKAGE
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: looks good" >&5
-$as_echo "looks good" >&6; }
+
 
   fi
 
 
 
+
   build_plugin_docs=no
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build plugin documentation" >&5
 $as_echo_n "checking whether to build plugin documentation... " >&6; }
   if test x$enable_gtk_doc = xyes; then
-    build_plugin_docs=yes
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+    if test x$PYTHON != x; then
+      build_plugin_docs=yes
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (python not found)" >&5
+$as_echo "no (python not found)" >&6; }
+    fi
   else
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (gtk-doc disabled or not available)" >&5
 $as_echo "no (gtk-doc disabled or not available)" >&6; }
@@ -22705,6 +22903,66 @@ esac
 
 
 
+for ac_func in clock_gettime
+do :
+  ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime"
+if test "x$ac_cv_func_clock_gettime" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_CLOCK_GETTIME 1
+_ACEOF
+
+else
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5
+$as_echo_n "checking for clock_gettime in -lrt... " >&6; }
+if ${ac_cv_lib_rt_clock_gettime+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lrt  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* 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 clock_gettime ();
+int
+main ()
+{
+return clock_gettime ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_rt_clock_gettime=yes
+else
+  ac_cv_lib_rt_clock_gettime=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_rt_clock_gettime" >&5
+$as_echo "$ac_cv_lib_rt_clock_gettime" >&6; }
+if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then :
+
+    $as_echo "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
+
+    LIBRT="-lrt"
+
+
+fi
+
+
+fi
+done
+
+
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
@@ -23741,7 +23999,7 @@ GLIB_REQ=2.32.0
 
 
 
-  which="glib-2.0 >= $GLIB_REQ gobject-2.0 gthread-2.0 gmodule-no-export-2.0"
+  which="glib-2.0 >= $GLIB_REQ gobject-2.0 gmodule-no-export-2.0"
     required="no"
 
 
@@ -23842,7 +24100,7 @@ fi
 
         GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_THREADS_MANDATORY"
 
-    if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+    if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then
     GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_DISABLE_DEPRECATED"
   fi
 
@@ -23855,7 +24113,7 @@ fi
 
 
   if test "x$enable_gobject_cast_checks" = "xauto"; then
-        if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+        if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then
       enable_gobject_cast_checks=yes
     else
       enable_gobject_cast_checks=no
@@ -23875,7 +24133,7 @@ fi
 
 
   if test "x$enable_glib_assertions" = "xauto"; then
-        if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+        if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then
       enable_glib_assertions=yes
     else
       enable_glib_assertions=no
@@ -24089,7 +24347,7 @@ _ACEOF
 
 
 
-  ORC_REQ=0.4.16
+  ORC_REQ=0.4.17
 
   # Check whether --enable-orc was given.
 if test "${enable_orc+set}" = set; then :
@@ -27206,6 +27464,49 @@ fi
 
 
 
+  GST_PLUGINS_ALL="$GST_PLUGINS_ALL dtmf"
+
+
+
+  # Check whether --enable-dtmf was given.
+if test "${enable_dtmf+set}" = set; then :
+  enableval=$enable_dtmf;
+      case "${enableval}" in
+        yes) gst_use_dtmf=yes ;;
+        no) gst_use_dtmf=no ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-dtmf" "$LINENO" 5 ;;
+       esac
+
+else
+  gst_use_dtmf=yes
+fi
+
+  if test x$gst_use_dtmf = xno; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin dtmf" >&5
+$as_echo "$as_me: disabling dependency-less plugin dtmf" >&6;}
+    WITHOUT_PLUGINS="$WITHOUT_PLUGINS dtmf"
+  fi
+
+
+    if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " dtmf " > /dev/null; then
+    GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED dtmf"
+  fi
+    if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " dtmf " > /dev/null; then
+    GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ dtmf / /'`
+  fi
+    if echo " $GST_PLUGINS_NONPORTED " | tr , ' ' | grep -i " dtmf " > /dev/null; then
+    GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ dtmf / /'`
+  fi
+   if echo " $GST_PLUGINS_SELECTED " | grep -i " dtmf " > /dev/null; then
+  USE_PLUGIN_DTMF_TRUE=
+  USE_PLUGIN_DTMF_FALSE='#'
+else
+  USE_PLUGIN_DTMF_TRUE='#'
+  USE_PLUGIN_DTMF_FALSE=
+fi
+
+
+
   GST_PLUGINS_ALL="$GST_PLUGINS_ALL effectv"
 
 
@@ -29898,6 +30199,35 @@ fi
   fi
 fi
 
+# Check if v4l2 support dmabuf
+if test x$HAVE_GST_V4L2 = xyes; then
+	ac_fn_c_check_decl "$LINENO" "V4L2_MEMORY_DMABUF" "ac_cv_have_decl_V4L2_MEMORY_DMABUF" "
+					#include <sys/types.h>
+					#ifdef __sun /* Solaris */
+					#include <sys/types.h>
+					#include <sys/videodev2.h>
+					#elif __FreeBSD__
+					#include <linux/videodev2.h>
+					#else /* Linux */
+					#include <linux/types.h>
+					#define _LINUX_TIME_H
+					#define __user
+					#include <linux/videodev2.h>
+					#endif
+
+"
+if test "x$ac_cv_have_decl_V4L2_MEMORY_DMABUF" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_V4L2_MEMORY_DMABUF $ac_have_decl
+_ACEOF
+
+fi
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5
 $as_echo_n "checking for X... " >&6; }
 
@@ -33280,7 +33610,7 @@ done
 
 
 
-  which="libpulse >= 1.0"
+  which="libpulse >= 2.0"
     required="no"
 
 
@@ -34307,146 +34637,6 @@ if test x$USE_SOUP = xyes; then
   HAVE_SOUP=no
 
 
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUP" >&5
-$as_echo_n "checking for SOUP... " >&6; }
-
-if test -n "$PKG_CONFIG"; then
-    if test -n "$SOUP_CFLAGS"; then
-        pkg_cv_SOUP_CFLAGS="$SOUP_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-gnome-2.4 >= 2.3.2\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libsoup-gnome-2.4 >= 2.3.2") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_SOUP_CFLAGS=`$PKG_CONFIG --cflags "libsoup-gnome-2.4 >= 2.3.2" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
-    fi
-else
-	pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
-    if test -n "$SOUP_LIBS"; then
-        pkg_cv_SOUP_LIBS="$SOUP_LIBS"
-    else
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-gnome-2.4 >= 2.3.2\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libsoup-gnome-2.4 >= 2.3.2") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_SOUP_LIBS=`$PKG_CONFIG --libs "libsoup-gnome-2.4 >= 2.3.2" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
-    fi
-else
-	pkg_failed=untried
-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
-	        SOUP_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libsoup-gnome-2.4 >= 2.3.2"`
-        else
-	        SOUP_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libsoup-gnome-2.4 >= 2.3.2"`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$SOUP_PKG_ERRORS" >&5
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUP" >&5
-$as_echo_n "checking for SOUP... " >&6; }
-
-if test -n "$PKG_CONFIG"; then
-    if test -n "$SOUP_CFLAGS"; then
-        pkg_cv_SOUP_CFLAGS="$SOUP_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-2.4 >= 2.26.1\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libsoup-2.4 >= 2.26.1") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_SOUP_CFLAGS=`$PKG_CONFIG --cflags "libsoup-2.4 >= 2.26.1" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
-    fi
-else
-	pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
-    if test -n "$SOUP_LIBS"; then
-        pkg_cv_SOUP_LIBS="$SOUP_LIBS"
-    else
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-2.4 >= 2.26.1\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libsoup-2.4 >= 2.26.1") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_SOUP_LIBS=`$PKG_CONFIG --libs "libsoup-2.4 >= 2.26.1" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
-    fi
-else
-	pkg_failed=untried
-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
-	        SOUP_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libsoup-2.4 >= 2.26.1"`
-        else
-	        SOUP_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libsoup-2.4 >= 2.26.1"`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$SOUP_PKG_ERRORS" >&5
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-      HAVE_SOUP="no"
-
-elif test $pkg_failed = untried; then
-
-      HAVE_SOUP="no"
-
-else
-	SOUP_CFLAGS=$pkg_cv_SOUP_CFLAGS
-	SOUP_LIBS=$pkg_cv_SOUP_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-	HAVE_SOUP="yes"
-fi
-
-elif test $pkg_failed = untried; then
-
-
 pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUP" >&5
 $as_echo_n "checking for SOUP... " >&6; }
@@ -34507,13 +34697,9 @@ fi
 
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-
-      HAVE_SOUP="no"
-
+                HAVE_SOUP="no"
 elif test $pkg_failed = untried; then
-
-      HAVE_SOUP="no"
-
+	HAVE_SOUP="no"
 else
 	SOUP_CFLAGS=$pkg_cv_SOUP_CFLAGS
 	SOUP_LIBS=$pkg_cv_SOUP_LIBS
@@ -34522,19 +34708,6 @@ $as_echo "yes" >&6; }
 	HAVE_SOUP="yes"
 fi
 
-else
-	SOUP_CFLAGS=$pkg_cv_SOUP_CFLAGS
-	SOUP_LIBS=$pkg_cv_SOUP_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-    HAVE_SOUP="yes"
-
-$as_echo "#define HAVE_LIBSOUP_GNOME 1" >>confdefs.h
-
-
-fi
-
 
 
 
@@ -35299,6 +35472,8 @@ else
 $as_echo "yes" >&6; }
 	HAVE_VPX="yes"
 fi
+  HAVE_VP8=no
+  HAVE_VP9=no
 
   if test $HAVE_VPX = "yes"; then
     OLD_LIBS="$LIBS"
@@ -35395,6 +35570,98 @@ $as_echo "#define HAVE_VP8_DECODER 1" >>confdefs.h
 
 fi
 
+    if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vpx_codec_vp9_cx_algo in -lvpx" >&5
+$as_echo_n "checking for vpx_codec_vp9_cx_algo in -lvpx... " >&6; }
+if ${ac_cv_lib_vpx_vpx_codec_vp9_cx_algo+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lvpx  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* 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 vpx_codec_vp9_cx_algo ();
+int
+main ()
+{
+return vpx_codec_vp9_cx_algo ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_vpx_vpx_codec_vp9_cx_algo=yes
+else
+  ac_cv_lib_vpx_vpx_codec_vp9_cx_algo=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_vpx_vpx_codec_vp9_cx_algo" >&5
+$as_echo "$ac_cv_lib_vpx_vpx_codec_vp9_cx_algo" >&6; }
+if test "x$ac_cv_lib_vpx_vpx_codec_vp9_cx_algo" = xyes; then :
+
+        HAVE_VP9=yes
+
+$as_echo "#define HAVE_VP9_ENCODER 1" >>confdefs.h
+
+
+fi
+
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vpx_codec_vp9_dx_algo in -lvpx" >&5
+$as_echo_n "checking for vpx_codec_vp9_dx_algo in -lvpx... " >&6; }
+if ${ac_cv_lib_vpx_vpx_codec_vp9_dx_algo+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lvpx  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* 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 vpx_codec_vp9_dx_algo ();
+int
+main ()
+{
+return vpx_codec_vp9_dx_algo ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_vpx_vpx_codec_vp9_dx_algo=yes
+else
+  ac_cv_lib_vpx_vpx_codec_vp9_dx_algo=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_vpx_vpx_codec_vp9_dx_algo" >&5
+$as_echo "$ac_cv_lib_vpx_vpx_codec_vp9_dx_algo" >&6; }
+if test "x$ac_cv_lib_vpx_vpx_codec_vp9_dx_algo" = xyes; then :
+
+        HAVE_VP9=yes
+
+$as_echo "#define HAVE_VP9_DECODER 1" >>confdefs.h
+
+
+fi
+
+    fi
     LIBS="$OLD_LIBS"
     CFLAGS="$OLD_CFLAGS"
   fi
@@ -36358,7 +36625,7 @@ GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^_*gst_plugin_
 
 
 
-ac_config_files="$ac_config_files Makefile gst/Makefile gst/alpha/Makefile gst/apetag/Makefile gst/audiofx/Makefile gst/audioparsers/Makefile gst/auparse/Makefile gst/autodetect/Makefile gst/avi/Makefile gst/cutter/Makefile gst/deinterlace/Makefile gst/debugutils/Makefile gst/effectv/Makefile gst/equalizer/Makefile gst/flv/Makefile gst/goom/Makefile gst/goom2k1/Makefile gst/id3demux/Makefile gst/icydemux/Makefile gst/imagefreeze/Makefile gst/interleave/Makefile gst/isomp4/Makefile gst/law/Makefile gst/level/Makefile gst/matroska/Makefile gst/monoscope/Makefile gst/multifile/Makefile gst/multipart/Makefile gst/replaygain/Makefile gst/rtp/Makefile gst/rtpmanager/Makefile gst/rtsp/Makefile gst/shapewipe/Makefile gst/smpte/Makefile gst/spectrum/Makefile gst/udp/Makefile gst/videobox/Makefile gst/videocrop/Makefile gst/videofilter/Makefile gst/videomixer/Makefile gst/wavenc/Makefile gst/wavparse/Makefile gst/flx/Makefile gst/y4m/Makefile ext/Makefile ext/aalib/Makefile ext/cairo/Makefile ext/dv/Makefile ext/flac/Makefile ext/gdk_pixbuf/Makefile ext/jack/Makefile ext/jpeg/Makefile ext/libcaca/Makefile ext/libpng/Makefile ext/pulse/Makefile ext/raw1394/Makefile ext/shout2/Makefile ext/soup/Makefile ext/speex/Makefile ext/taglib/Makefile ext/vpx/Makefile ext/wavpack/Makefile sys/Makefile sys/directsound/Makefile sys/oss/Makefile sys/oss4/Makefile sys/osxaudio/Makefile sys/osxvideo/Makefile sys/sunaudio/Makefile sys/v4l2/Makefile sys/waveform/Makefile sys/ximage/Makefile po/Makefile.in tests/Makefile tests/check/Makefile tests/examples/Makefile tests/examples/audiofx/Makefile tests/examples/cairo/Makefile tests/examples/equalizer/Makefile tests/examples/jack/Makefile tests/examples/level/Makefile tests/examples/pulse/Makefile tests/examples/rtp/Makefile tests/examples/shapewipe/Makefile tests/examples/spectrum/Makefile tests/examples/v4l2/Makefile tests/files/Makefile tests/icles/Makefile common/Makefile common/m4/Makefile m4/Makefile docs/Makefile docs/plugins/Makefile docs/version.entities pkgconfig/Makefile pkgconfig/gstreamer-plugins-good-uninstalled.pc gst-plugins-good.spec"
+ac_config_files="$ac_config_files Makefile gst/Makefile gst/alpha/Makefile gst/apetag/Makefile gst/audiofx/Makefile gst/audioparsers/Makefile gst/auparse/Makefile gst/autodetect/Makefile gst/avi/Makefile gst/cutter/Makefile gst/deinterlace/Makefile gst/dtmf/Makefile gst/debugutils/Makefile gst/effectv/Makefile gst/equalizer/Makefile gst/flv/Makefile gst/goom/Makefile gst/goom2k1/Makefile gst/id3demux/Makefile gst/icydemux/Makefile gst/imagefreeze/Makefile gst/interleave/Makefile gst/isomp4/Makefile gst/law/Makefile gst/level/Makefile gst/matroska/Makefile gst/monoscope/Makefile gst/multifile/Makefile gst/multipart/Makefile gst/replaygain/Makefile gst/rtp/Makefile gst/rtpmanager/Makefile gst/rtsp/Makefile gst/shapewipe/Makefile gst/smpte/Makefile gst/spectrum/Makefile gst/udp/Makefile gst/videobox/Makefile gst/videocrop/Makefile gst/videofilter/Makefile gst/videomixer/Makefile gst/wavenc/Makefile gst/wavparse/Makefile gst/flx/Makefile gst/y4m/Makefile ext/Makefile ext/aalib/Makefile ext/cairo/Makefile ext/dv/Makefile ext/flac/Makefile ext/gdk_pixbuf/Makefile ext/jack/Makefile ext/jpeg/Makefile ext/libcaca/Makefile ext/libpng/Makefile ext/pulse/Makefile ext/raw1394/Makefile ext/shout2/Makefile ext/soup/Makefile ext/speex/Makefile ext/taglib/Makefile ext/vpx/Makefile ext/wavpack/Makefile sys/Makefile sys/directsound/Makefile sys/oss/Makefile sys/oss4/Makefile sys/osxaudio/Makefile sys/osxvideo/Makefile sys/sunaudio/Makefile sys/v4l2/Makefile sys/waveform/Makefile sys/ximage/Makefile po/Makefile.in tests/Makefile tests/check/Makefile tests/examples/Makefile tests/examples/audiofx/Makefile tests/examples/cairo/Makefile tests/examples/equalizer/Makefile tests/examples/jack/Makefile tests/examples/level/Makefile tests/examples/pulse/Makefile tests/examples/rtp/Makefile tests/examples/shapewipe/Makefile tests/examples/spectrum/Makefile tests/examples/v4l2/Makefile tests/files/Makefile tests/icles/Makefile common/Makefile common/m4/Makefile m4/Makefile docs/Makefile docs/plugins/Makefile docs/version.entities pkgconfig/Makefile pkgconfig/gstreamer-plugins-good-uninstalled.pc gst-plugins-good.spec"
 
 
 sed \
@@ -36508,6 +36775,14 @@ LIBOBJS=$ac_libobjs
 LTLIBOBJS=$ac_ltlibobjs
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
  if test -n "$EXEEXT"; then
   am__EXEEXT_TRUE=
   am__EXEEXT_FALSE='#'
@@ -36722,6 +36997,10 @@ if test -z "${USE_PLUGIN_DEINTERLACE_TRUE}" && test -z "${USE_PLUGIN_DEINTERLACE
   as_fn_error $? "conditional \"USE_PLUGIN_DEINTERLACE\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${USE_PLUGIN_DTMF_TRUE}" && test -z "${USE_PLUGIN_DTMF_FALSE}"; then
+  as_fn_error $? "conditional \"USE_PLUGIN_DTMF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_PLUGIN_EFFECTV_TRUE}" && test -z "${USE_PLUGIN_EFFECTV_FALSE}"; then
   as_fn_error $? "conditional \"USE_PLUGIN_EFFECTV\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -37503,7 +37782,7 @@ 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 Good Plug-ins $as_me 1.0.8, which was
+This file was extended by GStreamer Good Plug-ins $as_me 1.1.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -37569,7 +37848,7 @@ _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 Good Plug-ins config.status 1.0.8
+GStreamer Good Plug-ins config.status 1.1.2
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -38116,6 +38395,7 @@ do
     "gst/avi/Makefile") CONFIG_FILES="$CONFIG_FILES gst/avi/Makefile" ;;
     "gst/cutter/Makefile") CONFIG_FILES="$CONFIG_FILES gst/cutter/Makefile" ;;
     "gst/deinterlace/Makefile") CONFIG_FILES="$CONFIG_FILES gst/deinterlace/Makefile" ;;
+    "gst/dtmf/Makefile") CONFIG_FILES="$CONFIG_FILES gst/dtmf/Makefile" ;;
     "gst/debugutils/Makefile") CONFIG_FILES="$CONFIG_FILES gst/debugutils/Makefile" ;;
     "gst/effectv/Makefile") CONFIG_FILES="$CONFIG_FILES gst/effectv/Makefile" ;;
     "gst/equalizer/Makefile") CONFIG_FILES="$CONFIG_FILES gst/equalizer/Makefile" ;;
@@ -38798,7 +39078,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
 
   case $ac_file$ac_mode in
     "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -38811,7 +39091,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
     # Strip MF so we end up with the name of the file.
     mf=`echo "$mf" | sed -e 's/:.*$//'`
     # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
+    # We used to match only the files named 'Makefile.in', but
     # some people rename them; so instead we look at the file content.
     # Grep'ing the first line is not enough: some people post-process
     # each Makefile.in and add a new line on top of each file to say so.
@@ -38845,21 +39125,19 @@ $as_echo X"$mf" |
       continue
     fi
     # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
+    # from the Makefile without running 'make'.
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
     # simplest approach to changing $(DEPDIR) to its actual value in the
     # expansion.
     for file in `sed -n "
       s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
       # Make sure the directory exists.
       test -f "$dirpart/$file" && continue
       fdir=`$as_dirname -- "$file" ||
diff --git a/configure.ac b/configure.ac
index 45392efee..34234df47 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,13 +1,11 @@
-AC_PREREQ(2.62)
+AC_PREREQ([2.68])
 
 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/pre
-AC_INIT(GStreamer Good Plug-ins, 1.0.8,
-    http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
-    gst-plugins-good)
+AC_INIT([GStreamer Good Plug-ins],[1.1.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-good])
 
 AG_GST_INIT
 
@@ -45,11 +43,11 @@ AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
   [GStreamer API Version])
 
 AG_GST_LIBTOOL_PREPARE
-AS_LIBTOOL(GST, 7, 0, 7)
+AS_LIBTOOL(GST, 102, 0, 102)
 
 dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.0.0
-GSTPB_REQ=1.0.0
+GST_REQ=1.1.2
+GSTPB_REQ=1.1.2
 
 dnl *** autotools stuff ****
 
@@ -128,8 +126,7 @@ AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
 
 dnl check for documentation tools
 GTK_DOC_CHECK([1.12])
-AS_PATH_PYTHON([2.1])
-AG_GST_PLUGIN_DOCS([1.3],[2.1])
+AG_GST_PLUGIN_DOCS([1.12])
 
 dnl *** checks for libraries ***
 
@@ -137,6 +134,14 @@ dnl check for libm, for sin()
 LT_LIB_M
 AC_SUBST(LIBM)
 
+AC_CHECK_FUNCS(clock_gettime, [], [
+  AC_CHECK_LIB(rt, clock_gettime, [
+    AC_DEFINE(HAVE_CLOCK_GETTIME, 1)
+    LIBRT="-lrt"
+    AC_SUBST([LIBRT])
+  ])
+])
+
 dnl *** checks for header files ***
 
 dnl check if we have ANSI C header files
@@ -202,7 +207,7 @@ GLIB_REQ=2.32.0
 AG_GST_GLIB_CHECK([$GLIB_REQ])
 
 dnl Orc
-ORC_CHECK([0.4.16])
+ORC_CHECK([0.4.17])
 
 dnl checks for gstreamer
 dnl uninstalled is selected preferentially -- see pkg-config(1)
@@ -329,6 +334,7 @@ AG_GST_CHECK_PLUGIN(avi)
 AG_GST_CHECK_PLUGIN(cutter)
 AG_GST_CHECK_PLUGIN(debugutils)
 AG_GST_CHECK_PLUGIN(deinterlace)
+AG_GST_CHECK_PLUGIN(dtmf)
 AG_GST_CHECK_PLUGIN(effectv)
 AG_GST_CHECK_PLUGIN(equalizer)
 AG_GST_CHECK_PLUGIN(flv)
@@ -498,7 +504,7 @@ dnl renamed to GST_V4L2 because of some conflict with kernel headers
 translit(dnm, m, l) AM_CONDITIONAL(USE_GST_V4L2, true)
 AG_GST_CHECK_FEATURE(GST_V4L2, [Video 4 Linux 2], v4l2src, [
   AC_MSG_CHECKING([Checking for up to date v4l2 installation])
-  AC_TRY_COMPILE([
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 #include <sys/types.h>
 #ifdef __sun /* Solaris */
 #include <sys/types.h>
@@ -514,12 +520,12 @@ AG_GST_CHECK_FEATURE(GST_V4L2, [Video 4 Linux 2], v4l2src, [
 #if defined(V4L2_MAJOR_VERSION) || defined(V4L2_MINOR_VERSION)
 #error too early v4l2 version or no v4l2 at all
 #endif
-    ], [
+    ]], [[
 return 0;
-    ], [
+    ]])],[
       HAVE_GST_V4L2="yes"
       AC_MSG_RESULT(yes)
-    ], [
+    ],[
       HAVE_GST_V4L2="no"
       AC_MSG_RESULT(no)
 
@@ -541,7 +547,7 @@ return 0;
     dnl check for missing v4l2_buffer declaration (see #135919)
     MISSING_DECL=0
     AC_MSG_CHECKING(struct v4l2_buffer declaration)
-    AC_TRY_COMPILE([
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 #include <sys/types.h>
 #ifdef __sun /* Solaris */
 #include <sys/types.h>
@@ -554,11 +560,11 @@ return 0;
 #define __user
 #include <linux/videodev2.h>
 #endif
-    ],[
+    ]], [[
 struct v4l2_buffer buf;
 buf.index = 0;
 return 0;
-    ], [ AC_MSG_RESULT(yes) ], [ MISSING_DECL=1 && AC_MSG_RESULT(no) ])
+    ]])],[ AC_MSG_RESULT(yes) ],[ MISSING_DECL=1 && AC_MSG_RESULT(no) ])
     if [ test x$MISSING_DECL = x1 ]; then
       AC_DEFINE(GST_V4L2_MISSING_BUFDECL, 1, [struct v4l2_buffer missing])
     fi
@@ -570,8 +576,7 @@ return 0;
 
 # Optional gudev for device probing
 AC_ARG_WITH([gudev],
-  AC_HELP_STRING([--with-gudev],
-    [device detection with gudev]),
+  AS_HELP_STRING([--with-gudev],[device detection with gudev]),
   [],
   [with_gudev=check])
 if test x$HAVE_GST_V4L2 = xyes; then
@@ -593,8 +598,7 @@ AC_SUBST(GUDEV_LIBS)
 
 # Make libv4l2 non-automagic
 AC_ARG_WITH([libv4l2],
-  AC_HELP_STRING([--with-libv4l2],
-    [support video buffer conversion using libv4l2]),
+  AS_HELP_STRING([--with-libv4l2],[support video buffer conversion using libv4l2]),
   [],
   [with_libv4l2=check])
 if test x$HAVE_GST_V4L2 = xyes; then
@@ -611,6 +615,24 @@ if test x$HAVE_GST_V4L2 = xyes; then
   fi
 fi
 
+# Check if v4l2 support dmabuf
+if test x$HAVE_GST_V4L2 = xyes; then
+	AC_CHECK_DECLS(V4L2_MEMORY_DMABUF,,,[
+					#include <sys/types.h>
+					#ifdef __sun /* Solaris */
+					#include <sys/types.h>
+					#include <sys/videodev2.h>
+					#elif __FreeBSD__
+					#include <linux/videodev2.h>
+					#else /* Linux */
+					#include <linux/types.h>
+					#define _LINUX_TIME_H
+					#define __user
+					#include <linux/videodev2.h>
+					#endif
+					])
+fi
+
 dnl Check for X11
 translit(dnm, m, l) AM_CONDITIONAL(USE_X, true)
 AG_GST_CHECK_FEATURE(X, [X libraries and plugins],
@@ -790,7 +812,7 @@ AG_GST_CHECK_FEATURE(PULSE, [pulseaudio plug-in], pulseaudio, [
   dnl used in ext/pulse/pulseutil.c
   AC_CHECK_HEADERS([process.h])
 
-  AG_GST_PKG_CHECK_MODULES(PULSE, libpulse >= 1.0)
+  AG_GST_PKG_CHECK_MODULES(PULSE, libpulse >= 2.0)
 ])
 
 dnl *** dv1394 ***
@@ -853,14 +875,7 @@ AG_GST_CHECK_FEATURE(SHOUT2, [Shoutcast/Icecast client library], shout2, [
 dnl *** soup ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUP, true)
 AG_GST_CHECK_FEATURE(SOUP, [soup http client plugin (2.4)], souphttpsrc, [
-  PKG_CHECK_MODULES(SOUP, libsoup-gnome-2.4 >= 2.3.2, [
-    HAVE_SOUP="yes"
-    AC_DEFINE(HAVE_LIBSOUP_GNOME, 1, [soup gnome integration])
-  ],[
-    PKG_CHECK_MODULES(SOUP, libsoup-2.4 >= 2.26.1, HAVE_SOUP="yes", [
-      HAVE_SOUP="no"
-    ])
-  ])
+  PKG_CHECK_MODULES(SOUP, libsoup-2.4 >= 2.26.1, [HAVE_SOUP="yes"], [HAVE_SOUP="no"])
   AC_SUBST(SOUP_CFLAGS)
   AC_SUBST(SOUP_LIBS)
 ])
@@ -930,6 +945,8 @@ dnl *** vpx ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_VPX, vpx)
 AG_GST_CHECK_FEATURE(VPX, [VPX decoder], vpx, [
   PKG_CHECK_MODULES(VPX, vpx >= 1.1.0, [HAVE_VPX="yes"], [HAVE_VPX="no"])
+  HAVE_VP8=no
+  HAVE_VP9=no
 
   if test $HAVE_VPX = "yes"; then
     OLD_LIBS="$LIBS"
@@ -944,6 +961,16 @@ AG_GST_CHECK_FEATURE(VPX, [VPX decoder], vpx, [
       HAVE_VP8=yes
       AC_DEFINE(HAVE_VP8_DECODER, 1, [Defined if the VP8 decoder is available])
     ])
+    if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
+      AC_CHECK_LIB(vpx, vpx_codec_vp9_cx_algo, [
+        HAVE_VP9=yes
+        AC_DEFINE(HAVE_VP9_ENCODER, 1, [Defined if the VP9 encoder is available])
+      ])
+      AC_CHECK_LIB(vpx, vpx_codec_vp9_dx_algo, [
+        HAVE_VP9=yes
+        AC_DEFINE(HAVE_VP9_DECODER, 1, [Defined if the VP9 decoder is available])
+      ])
+    fi
     LIBS="$OLD_LIBS"
     CFLAGS="$OLD_CFLAGS"
   fi
@@ -1096,6 +1123,7 @@ gst/autodetect/Makefile
 gst/avi/Makefile
 gst/cutter/Makefile
 gst/deinterlace/Makefile
+gst/dtmf/Makefile
 gst/debugutils/Makefile
 gst/effectv/Makefile
 gst/equalizer/Makefile
diff --git a/depcomp b/depcomp
index 25a39e6cd..bd0ac0895 100755
--- a/depcomp
+++ b/depcomp
@@ -1,10 +1,10 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2012-03-27.16; # UTC
+scriptversion=2011-12-04.11; # UTC
 
 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
-# 2011, 2012 Free Software Foundation, Inc.
+# 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
@@ -28,7 +28,7 @@ scriptversion=2012-03-27.16; # UTC
 
 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*)
@@ -40,8 +40,8 @@ as side-effects.
 
 Environment variables:
   depmode     Dependency tracking mode.
-  source      Source file read by 'PROGRAMS ARGS'.
-  object      Object file output by 'PROGRAMS ARGS'.
+  source      Source file read by `PROGRAMS ARGS'.
+  object      Object file output by `PROGRAMS ARGS'.
   DEPDIR      directory where to store dependencies.
   depfile     Dependency file to output.
   tmpdepfile  Temporary file to use when outputting dependencies.
@@ -57,12 +57,6 @@ EOF
     ;;
 esac
 
-# A tabulation character.
-tab='	'
-# A newline character.
-nl='
-'
-
 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
   echo "depcomp: Variables source, object and depmode must be set" 1>&2
   exit 1
@@ -108,12 +102,6 @@ if test "$depmode" = msvc7msys; then
    depmode=msvc7
 fi
 
-if test "$depmode" = xlc; then
-   # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
-   gccflag=-qmakedep=gcc,-MF
-   depmode=gcc
-fi
-
 case "$depmode" in
 gcc3)
 ## gcc 3 implements dependency tracking that does exactly what
@@ -168,14 +156,15 @@ gcc)
 ## The second -e expression handles DOS-style file names with drive letters.
   sed -e 's/^[^:]*: / /' \
       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the "deleted header file" problem.
+## This next piece of magic avoids the `deleted header file' problem.
 ## The problem is that when a header file which appears in a .P file
 ## is deleted, the dependency causes make to die (because there is
 ## typically no way to rebuild the header).  We avoid this by adding
 ## dummy dependencies for each header file.  Too bad gcc doesn't do
 ## this for us directly.
-  tr ' ' "$nl" < "$tmpdepfile" |
-## Some versions of gcc put a space before the ':'.  On the theory
+  tr ' ' '
+' < "$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.  hp depmode also adds that space, but also prefixes the VPATH
 ## to the object.  Take care to not repeat it in the output.
@@ -214,15 +203,18 @@ sgi)
     # clever and replace this with sed code, as IRIX sed won't handle
     # lines with more than a fixed number of characters (4096 in
     # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
-    # the IRIX cc adds comments like '#:fec' to the end of the
+    # the IRIX cc adds comments like `#:fec' to the end of the
     # dependency line.
-    tr ' ' "$nl" < "$tmpdepfile" \
+    tr ' ' '
+' < "$tmpdepfile" \
     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
-    tr "$nl" ' ' >> "$depfile"
+    tr '
+' ' ' >> "$depfile"
     echo >> "$depfile"
 
     # The second pass generates a dummy entry for each header file.
-    tr ' ' "$nl" < "$tmpdepfile" \
+    tr ' ' '
+' < "$tmpdepfile" \
    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
    >> "$depfile"
   else
@@ -234,17 +226,10 @@ sgi)
   rm -f "$tmpdepfile"
   ;;
 
-xlc)
-  # 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
-  ;;
-
 aix)
   # The C for AIX Compiler uses -M and outputs the dependencies
   # in a .u file.  In older versions, this file always lives in the
-  # current directory.  Also, the AIX compiler puts '$object:' at the
+  # current directory.  Also, the AIX compiler puts `$object:' at the
   # start of each line; $object doesn't have directory information.
   # Version 6 uses the directory in both cases.
   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
@@ -274,11 +259,12 @@ aix)
     test -f "$tmpdepfile" && break
   done
   if test -f "$tmpdepfile"; then
-    # Each line is of the form 'foo.o: dependent.h'.
+    # Each line is of the form `foo.o: dependent.h'.
     # Do two passes, one to just change these to
-    # '$object: dependent.h' and one to simply 'dependent.h:'.
+    # `$object: dependent.h' and one to simply `dependent.h:'.
     sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-    sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+    # That's a tab and a space in the [].
+    sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
   else
     # The sourcefile does not contain any dependencies, so just
     # store a dummy comment line, to avoid errors with the Makefile
@@ -289,26 +275,23 @@ aix)
   ;;
 
 icc)
-  # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
-  # However on
-  #    $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+  # Intel's C compiler understands `-MD -MF file'.  However on
+  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
   # ICC 7.0 will fill foo.d with something like
   #    foo.o: sub/foo.c
   #    foo.o: sub/foo.h
-  # which is wrong.  We want
+  # which is wrong.  We want:
   #    sub/foo.o: sub/foo.c
   #    sub/foo.o: sub/foo.h
   #    sub/foo.c:
   #    sub/foo.h:
   # ICC 7.1 will output
   #    foo.o: sub/foo.c sub/foo.h
-  # and will wrap long lines using '\':
+  # and will wrap long lines using \ :
   #    foo.o: sub/foo.c ... \
   #     sub/foo.h ... \
   #     ...
-  # tcc 0.9.26 (FIXME still under development at the moment of writing)
-  # will emit a similar output, but also prepend the continuation lines
-  # with horizontal tabulation characters.
+
   "$@" -MD -MF "$tmpdepfile"
   stat=$?
   if test $stat -eq 0; then :
@@ -317,21 +300,15 @@ icc)
     exit $stat
   fi
   rm -f "$depfile"
-  # Each line is of the form 'foo.o: dependent.h',
-  # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
+  # Each line is of the form `foo.o: dependent.h',
+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
   # Do two passes, one to just change these to
-  # '$object: dependent.h' and one to simply 'dependent.h:'.
-  sed -e "s/^[ $tab][ $tab]*/  /" -e "s,^[^:]*:,$object :," \
-    < "$tmpdepfile" > "$depfile"
-  sed '
-    s/[ '"$tab"'][ '"$tab"']*/ /g
-    s/^ *//
-    s/ *\\*$//
-    s/^[^:]*: *//
-    /^$/d
-    /:$/d
-    s/$/ :/
-  ' < "$tmpdepfile" >> "$depfile"
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+    sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -367,7 +344,7 @@ hp2)
   done
   if test -f "$tmpdepfile"; then
     sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
-    # Add 'dependent.h:' lines.
+    # Add `dependent.h:' lines.
     sed -ne '2,${
 	       s/^ *//
 	       s/ \\*$//
@@ -382,9 +359,9 @@ hp2)
 
 tru64)
    # The Tru64 compiler uses -MD to generate dependencies as a side
-   # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
    # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
-   # dependencies in 'foo.d' instead, so we check for that too.
+   # dependencies in `foo.d' instead, so we check for that too.
    # Subdirectories are respected.
    dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
    test "x$dir" = "x$object" && dir=
@@ -430,7 +407,8 @@ tru64)
    done
    if test -f "$tmpdepfile"; then
       sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-      sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+      # That's a tab and a space in the [].
+      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
    else
       echo "#dummy" > "$depfile"
    fi
@@ -465,11 +443,11 @@ msvc7)
   p
 }' | $cygpath_u | sort -u | sed -n '
 s/ /\\ /g
-s/\(.*\)/'"$tab"'\1 \\/p
+s/\(.*\)/	\1 \\/p
 s/.\(.*\) \\/\1:/
 H
 $ {
-  s/.*/'"$tab"'/
+  s/.*/	/
   G
   p
 }' >> "$depfile"
@@ -500,7 +478,7 @@ dashmstdout)
     shift
   fi
 
-  # Remove '-o $object'.
+  # Remove `-o $object'.
   IFS=" "
   for arg
   do
@@ -520,14 +498,15 @@ dashmstdout)
   done
 
   test -z "$dashmflag" && dashmflag=-M
-  # Require at least two characters before searching for ':'
+  # Require at least two characters before searching for `:'
   # in the target name.  This is to cope with DOS-style filenames:
-  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
+  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
   "$@" $dashmflag |
-    sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
+    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
   rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"
-  tr ' ' "$nl" < "$tmpdepfile" | \
+  tr ' ' '
+' < "$tmpdepfile" | \
 ## 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"
@@ -583,7 +562,8 @@ makedepend)
   # 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 ' ' "$nl" | \
+  sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
 ## 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"
@@ -603,7 +583,7 @@ cpp)
     shift
   fi
 
-  # Remove '-o $object'.
+  # Remove `-o $object'.
   IFS=" "
   for arg
   do
@@ -672,8 +652,8 @@ msvisualcpp)
   sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
-  echo "$tab" >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
+  echo "	" >> "$depfile"
   sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 15a6c71b2..93b4e6fff 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,7 +79,7 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = docs
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(srcdir)/version.entities.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -60,7 +87,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-gcc-inline-assembly.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 \
@@ -96,21 +122,28 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = version.entities
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -118,9 +151,29 @@ am__can_run_installinfo = \
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -314,6 +367,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -525,22 +579,25 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -555,57 +612,12 @@ $(RECURSIVE_TARGETS):
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-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: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -621,12 +633,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -638,15 +645,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -655,6 +658,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -815,22 +833,20 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean 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 installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean 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 \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 upload:
diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am
index dbfdd00de..379074c0d 100644
--- a/docs/plugins/Makefile.am
+++ b/docs/plugins/Makefile.am
@@ -95,6 +95,7 @@ EXTRA_HFILES = \
 	$(top_srcdir)/gst/audiofx/audiowsincband.h \
 	$(top_srcdir)/gst/audiofx/audiowsinclimit.h \
 	$(top_srcdir)/gst/audiofx/audiofirfilter.h \
+	$(top_srcdir)/gst/audiofx/gstscaletempo.h \
 	$(top_srcdir)/gst/audioparsers/gstaacparse.h \
 	$(top_srcdir)/gst/audioparsers/gstac3parse.h \
 	$(top_srcdir)/gst/audioparsers/gstamrparse.h \
@@ -114,6 +115,9 @@ EXTRA_HFILES = \
 	$(top_srcdir)/gst/debugutils/gsttaginject.h \
 	$(top_srcdir)/gst/debugutils/progressreport.h \
 	$(top_srcdir)/gst/deinterlace/gstdeinterlace.h \
+	$(top_srcdir)/gst/dtmf/gstdtmfsrc.h \
+	$(top_srcdir)/gst/dtmf/gstrtpdtmfsrc.h \
+	$(top_srcdir)/gst/dtmf/gstrtpdtmfdepay.h \
 	$(top_srcdir)/gst/effectv/gstaging.h \
 	$(top_srcdir)/gst/effectv/gstdice.h \
 	$(top_srcdir)/gst/effectv/gstedge.h \
@@ -167,6 +171,8 @@ EXTRA_HFILES = \
 	$(top_srcdir)/gst/rtpmanager/gstrtpptdemux.h \
 	$(top_srcdir)/gst/rtpmanager/gstrtpsession.h \
 	$(top_srcdir)/gst/rtpmanager/gstrtpssrcdemux.h \
+	$(top_srcdir)/gst/rtpmanager/gstrtpmux.h \
+	$(top_srcdir)/gst/rtpmanager/gstrtpdtmfmux.h \
 	$(top_srcdir)/gst/rtsp/gstrtpdec.h \
 	$(top_srcdir)/gst/rtsp/gstrtspsrc.h \
 	$(top_srcdir)/gst/shapewipe/gstshapewipe.h \
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index 493e732f4..b2158c8cf 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -32,23 +31,51 @@
 # This is an include file specifically tuned for building documentation
 # for GStreamer plug-ins
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -68,9 +95,9 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/gtk-doc-plugins.mak \
-	$(top_srcdir)/common/upload-doc.mak
+DIST_COMMON = $(top_srcdir)/common/upload-doc.mak \
+	$(top_srcdir)/common/gtk-doc-plugins.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am
 subdir = docs/plugins
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -78,7 +105,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-gcc-inline-assembly.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 \
@@ -114,12 +140,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -127,6 +159,7 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -293,6 +326,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -553,6 +587,7 @@ EXTRA_HFILES = \
 	$(top_srcdir)/gst/audiofx/audiowsincband.h \
 	$(top_srcdir)/gst/audiofx/audiowsinclimit.h \
 	$(top_srcdir)/gst/audiofx/audiofirfilter.h \
+	$(top_srcdir)/gst/audiofx/gstscaletempo.h \
 	$(top_srcdir)/gst/audioparsers/gstaacparse.h \
 	$(top_srcdir)/gst/audioparsers/gstac3parse.h \
 	$(top_srcdir)/gst/audioparsers/gstamrparse.h \
@@ -572,6 +607,9 @@ EXTRA_HFILES = \
 	$(top_srcdir)/gst/debugutils/gsttaginject.h \
 	$(top_srcdir)/gst/debugutils/progressreport.h \
 	$(top_srcdir)/gst/deinterlace/gstdeinterlace.h \
+	$(top_srcdir)/gst/dtmf/gstdtmfsrc.h \
+	$(top_srcdir)/gst/dtmf/gstrtpdtmfsrc.h \
+	$(top_srcdir)/gst/dtmf/gstrtpdtmfdepay.h \
 	$(top_srcdir)/gst/effectv/gstaging.h \
 	$(top_srcdir)/gst/effectv/gstdice.h \
 	$(top_srcdir)/gst/effectv/gstedge.h \
@@ -625,6 +663,8 @@ EXTRA_HFILES = \
 	$(top_srcdir)/gst/rtpmanager/gstrtpptdemux.h \
 	$(top_srcdir)/gst/rtpmanager/gstrtpsession.h \
 	$(top_srcdir)/gst/rtpmanager/gstrtpssrcdemux.h \
+	$(top_srcdir)/gst/rtpmanager/gstrtpmux.h \
+	$(top_srcdir)/gst/rtpmanager/gstrtpdtmfmux.h \
 	$(top_srcdir)/gst/rtsp/gstrtpdec.h \
 	$(top_srcdir)/gst/rtsp/gstrtspsrc.h \
 	$(top_srcdir)/gst/shapewipe/gstshapewipe.h \
@@ -765,9 +805,9 @@ INSPECT_DIR = inspect
 @ENABLE_GTK_DOC_TRUE@INSPECT_REGISTRY = $(top_builddir)/docs/plugins/inspect-registry.xml
 @ENABLE_GTK_DOC_TRUE@INSPECT_ENVIRONMENT = \
 @ENABLE_GTK_DOC_TRUE@	LC_ALL=C \
-@ENABLE_GTK_DOC_TRUE@	GST_PLUGIN_SYSTEM_PATH= \
-@ENABLE_GTK_DOC_TRUE@	GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \
-@ENABLE_GTK_DOC_TRUE@	GST_REGISTRY=$(INSPECT_REGISTRY) \
+@ENABLE_GTK_DOC_TRUE@	GST_PLUGIN_SYSTEM_PATH_1_0= \
+@ENABLE_GTK_DOC_TRUE@	GST_PLUGIN_PATH_1_0=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \
+@ENABLE_GTK_DOC_TRUE@	GST_REGISTRY_1_0=$(INSPECT_REGISTRY) \
 @ENABLE_GTK_DOC_TRUE@	PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
 @ENABLE_GTK_DOC_TRUE@	$(INSPECT_EXTRA_ENVIRONMENT)
 
@@ -815,11 +855,11 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
+
+ctags CTAGS:
 
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -958,17 +998,17 @@ uninstall-am: uninstall-local
 .MAKE: install-am install-strip
 
 .PHONY: all all-am all-local check check-am clean clean-generic \
-	clean-libtool clean-local dist-hook distclean \
-	distclean-generic distclean-libtool distclean-local distdir \
-	dvi dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-data-local 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-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	uninstall uninstall-am uninstall-local
+	clean-libtool clean-local cscopelist-am ctags-am dist-hook \
+	distclean distclean-generic distclean-libtool distclean-local \
+	distdir dvi dvi-am html html-am info info-am install \
+	install-am install-data install-data-am install-data-local \
+	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-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags-am uninstall uninstall-am uninstall-local
 
 html: html-build.stamp
 
@@ -1157,10 +1197,7 @@ update: scanobj-update
 @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_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml
-@ENABLE_GTK_DOC_TRUE@	@rm -f html/index.sgml.bak
+@ENABLE_GTK_DOC_TRUE@	cd html && gtkdoc-mkhtml $$mkhtml_options $(DOC_MODULE)-@GST_API_VERSION@ $(DOC_MAIN_SGML_FILE)
 @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
@@ -1220,9 +1257,9 @@ install-data-local:
 	      $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
 	    done; \
 	  fi; \
-	  echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
-	  if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
-	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
+	  echo '-- Installing $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2' ; \
+	  if test -e $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; then \
+	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2 \
 	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \
 	  fi; \
 	  $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) || true ; \
diff --git a/docs/plugins/gst-plugins-good-plugins-docs.sgml b/docs/plugins/gst-plugins-good-plugins-docs.sgml
index 724dd4adc..148c6390a 100644
--- a/docs/plugins/gst-plugins-good-plugins-docs.sgml
+++ b/docs/plugins/gst-plugins-good-plugins-docs.sgml
@@ -60,6 +60,7 @@
     <xi:include href="xml/element-deinterleave.xml" />
     <xi:include href="xml/element-dicetv.xml" />
     <xi:include href="xml/element-directsoundsink.xml" />
+    <xi:include href="xml/element-dtmfsrc.xml" />
     <xi:include href="xml/element-dv1394src.xml" />
     <xi:include href="xml/element-dvdec.xml" />
     <xi:include href="xml/element-dvdemux.xml" />
@@ -75,7 +76,6 @@
     <xi:include href="xml/element-flvmux.xml" />
     <xi:include href="xml/element-flxdec.xml" />
     <xi:include href="xml/element-gamma.xml" />
-    <xi:include href="xml/element-gdkpixbufoverlay.xml" />
     <xi:include href="xml/element-gdkpixbufsink.xml" />
     <xi:include href="xml/element-goom.xml" />
     <xi:include href="xml/element-goom2k1.xml" />
@@ -128,14 +128,28 @@
     <xi:include href="xml/element-rgvolume.xml" />
     <xi:include href="xml/element-rippletv.xml" />
     <xi:include href="xml/element-rtpdec.xml" />
+    <xi:include href="xml/element-rtpac3depay.xml" />
+    <xi:include href="xml/element-rtpac3pay.xml" />
+    <xi:include href="xml/element-rtpamrdepay.xml" />
+    <xi:include href="xml/element-rtpamrpay.xml" />
+    <xi:include href="xml/element-rtpbvdepay.xml" />
+    <xi:include href="xml/element-rtpbvpay.xml" />
+    <xi:include href="xml/element-rtpL16depay.xml" />
+    <xi:include href="xml/element-rtpL16pay.xml" />
     <xi:include href="xml/element-rtpj2kpay.xml" />
     <xi:include href="xml/element-rtpjpegpay.xml" />
+    <xi:include href="xml/element-rtpsbcpay.xml" />
     <xi:include href="xml/element-rtspsrc.xml" />
     <xi:include href="xml/element-rtpbin.xml" />
+    <xi:include href="xml/element-rtpdtmfmux.xml" />
+    <xi:include href="xml/element-rtpdtmfsrc.xml" />
     <xi:include href="xml/element-rtpjitterbuffer.xml" />
+    <xi:include href="xml/element-rtpmux.xml" />
     <xi:include href="xml/element-rtpptdemux.xml" />
     <xi:include href="xml/element-rtpsession.xml" />
     <xi:include href="xml/element-rtpssrcdemux.xml" />
+    <xi:include href="xml/element-sbcparse.xml" />
+    <xi:include href="xml/element-scaletempo.xml" />
     <xi:include href="xml/element-shagadelictv.xml" />
     <xi:include href="xml/element-shapewipe.xml" />
     <xi:include href="xml/element-smpte.xml" />
@@ -190,6 +204,7 @@
     <xi:include href="xml/plugin-debug.xml" />
     <xi:include href="xml/plugin-deinterlace.xml" />
     <xi:include href="xml/plugin-directsound.xml" />
+    <xi:include href="xml/plugin-dtmf.xml" />
     <xi:include href="xml/plugin-dv.xml" />
     <xi:include href="xml/plugin-equalizer.xml" />
     <xi:include href="xml/plugin-effectv.xml" />
diff --git a/docs/plugins/gst-plugins-good-plugins-sections.txt b/docs/plugins/gst-plugins-good-plugins-sections.txt
index 07e50c754..86ecacb56 100644
--- a/docs/plugins/gst-plugins-good-plugins-sections.txt
+++ b/docs/plugins/gst-plugins-good-plugins-sections.txt
@@ -603,6 +603,25 @@ GST_DSOUND_LOCK
 GST_DSOUND_UNLOCK
 </SECTION>
 
+<SECTION>
+<FILE>element-dtmfsrc</FILE>
+<TITLE>dtmfsrc</TITLE>
+GstDTMFSrc
+<SUBSECTION Standard>
+GstDTMFEventType
+GstDTMFSrcEvent
+GstDTMFSrcClass
+GST_TYPE_DTMF_SRC
+GST_DTMF_SRC
+GST_DTMF_SRC_CAST
+GST_DTMF_SRC_CLASS
+GST_DTMF_SRC_GET_CLASS
+GST_IS_DTMF_SRC
+GST_IS_DTMF_SRC_CLASS
+gst_dtmf_src_get_type
+gst_dtmf_src_plugin_init
+</SECTION>
+
 <SECTION>
 <FILE>element-dv1394src</FILE>
 <TITLE>dv1394src</TITLE>
@@ -838,20 +857,6 @@ GST_IS_GAMMA_CLASS
 gst_gamma_get_type
 </SECTION>
 
-<SECTION>
-<FILE>element-gdkpixbufoverlay</FILE>
-<TITLE>gdkpixbufoverlay</TITLE>
-GstGdkPixbufOverlay
-<SUBSECTION Standard>
-GstGdkPixbufOverlayClass
-GST_TYPE_GDK_PIXBUF_OVERLAY
-GST_GDK_PIXBUF_OVERLAY
-GST_GDK_PIXBUF_OVERLAY_CLASS
-GST_IS_GDK_PIXBUF_OVERLAY
-GST_IS_GDK_PIXBUF_OVERLAY_CLASS
-gst_gdk_pixbuf_overlay_get_type
-</SECTION>
-
 <SECTION>
 <FILE>element-gdkpixbufsink</FILE>
 <TITLE>gdkpixbufsink</TITLE>
@@ -1585,6 +1590,160 @@ GST_IS_RTP_DEC_CLASS
 gst_rtp_dec_get_type
 </SECTION>
 
+<SECTION>
+<FILE>element-rtpdtmfdepay</FILE>
+<TITLE>rtpdtmfdepay</TITLE>
+GstRtpDTMFDepay
+<SUBSECTION Standard>
+GstRtpDTMFDepayClass
+GST_TYPE_RTP_DTMF_DEPAY
+GST_IS_RTP_DTMF_DEPAY
+GST_IS_RTP_DTMF_DEPAY_CLASS
+GST_RTP_DTMF_DEPAY
+GST_RTP_DTMF_DEPAY_CLASS
+gst_rtp_dtmf_depay_plugin_init
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpdtmfsrc</FILE>
+<TITLE>rtpdtmfsrc</TITLE>
+GstRTPDTMFSrc
+<SUBSECTION Standard>
+GstRTPDTMFSrcClass
+GST_TYPE_RTP_DTMF_SRC
+GST_IS_RTP_DTMF_SRC
+GST_IS_RTP_DTMF_SRC_CLASS
+GST_RTP_DTMF_SRC
+GST_RTP_DTMF_SRC_CAST
+GST_RTP_DTMF_SRC_CLASS
+GST_RTP_DTMF_SRC_GET_CLASS
+gst_rtp_dtmf_src_get_type
+gst_rtp_dtmf_src_plugin_init
+GstRTPDTMFPayload
+GstRTPDTMFSrcEvent
+GstRTPDTMFEventType
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpac3depay</FILE>
+<TITLE>rtpac3depay</TITLE>
+GstRtpAC3Depay
+<SUBSECTION Standard>
+GstRtpAC3DepayClass
+GST_RTP_AC3_DEPAY
+GST_IS_RTP_AC3_DEPAY
+GST_TYPE_RTP_AC3_DEPAY
+GST_RTP_AC3_DEPAY_CLASS
+GST_IS_RTP_AC3_DEPAY_CLASS
+gst_rtp_ac3_depay_plugin_init
+gst_rtp_ac3_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpac3pay</FILE>
+<TITLE>rtpac3pay</TITLE>
+GstRtpAC3Pay
+<SUBSECTION Standard>
+GstRtpAC3PayClass
+GST_RTP_AC3_PAY
+GST_IS_RTP_AC3_PAY
+GST_TYPE_RTP_AC3_PAY
+GST_RTP_AC3_PAY_CLASS
+GST_IS_RTP_AC3_PAY_CLASS
+gst_rtp_ac3_pay_plugin_init
+gst_rtp_ac3_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpamrdepay</FILE>
+<TITLE>rtpamrdepay</TITLE>
+GstRtpAMRDepay
+<SUBSECTION Standard>
+GstRtpAMRDepayClass
+GST_RTP_AMR_DEPAY
+GST_IS_RTP_AMR_DEPAY
+GST_TYPE_RTP_AMR_DEPAY
+GST_RTP_AMR_DEPAY_CLASS
+GST_IS_RTP_AMR_DEPAY_CLASS
+gst_rtp_amr_depay_plugin_init
+gst_rtp_amr_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpamrpay</FILE>
+<TITLE>rtpamrpay</TITLE>
+GstRtpAMRPay
+<SUBSECTION Standard>
+GstRtpAMRPayClass
+GST_RTP_AMR_PAY
+GST_IS_RTP_AMR_PAY
+GST_TYPE_RTP_AMR_PAY
+GST_RTP_AMR_PAY_CLASS
+GST_IS_RTP_AMR_PAY_CLASS
+gst_rtp_amr_pay_plugin_init
+gst_rtp_amr_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpbvdepay</FILE>
+<TITLE>rtpbvdepay</TITLE>
+GstRtpBVDepay
+<SUBSECTION Standard>
+GstRtpBVDepayClass
+GST_RTP_BV_DEPAY
+GST_IS_RTP_BV_DEPAY
+GST_TYPE_RTP_BV_DEPAY
+GST_RTP_BV_DEPAY_CLASS
+GST_IS_RTP_BV_DEPAY_CLASS
+gst_rtp_bv_depay_plugin_init
+gst_rtp_bv_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpbvpay</FILE>
+<TITLE>rtpbvpay</TITLE>
+GstRtpBVPay
+<SUBSECTION Standard>
+GstRtpBVPayClass
+GST_RTP_BV_PAY
+GST_IS_RTP_BV_PAY
+GST_TYPE_RTP_BV_PAY
+GST_RTP_BV_PAY_CLASS
+GST_IS_RTP_BV_PAY_CLASS
+gst_rtp_bv_pay_plugin_init
+gst_rtp_bv_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpL16depay</FILE>
+<TITLE>rtpL16depay</TITLE>
+GstRtpL16Depay
+<SUBSECTION Standard>
+GstRtpL16DepayClass
+GST_RTP_L16_DEPAY
+GST_IS_RTP_L16_DEPAY
+GST_TYPE_RTP_L16_DEPAY
+GST_RTP_L16_DEPAY_CLASS
+GST_IS_RTP_L16_DEPAY_CLASS
+gst_rtp_L16_depay_plugin_init
+gst_rtp_L16_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpL16pay</FILE>
+<TITLE>rtpL16pay</TITLE>
+GstRtpL16Pay
+<SUBSECTION Standard>
+GstRtpL16PayClass
+GST_RTP_L16_PAY
+GST_IS_RTP_L16_PAY
+GST_TYPE_RTP_L16_PAY
+GST_RTP_L16_PAY_CLASS
+GST_IS_RTP_L16_PAY_CLASS
+gst_rtp_L16_pay_plugin_init
+gst_rtp_L16_pay_get_type
+</SECTION>
+
 <SECTION>
 <FILE>element-rtpj2kpay</FILE>
 <TITLE>rtpj2kpay</TITLE>
@@ -1615,6 +1774,20 @@ gst_rtp_jpeg_pay_plugin_init
 gst_rtp_jpeg_pay_get_type
 </SECTION>
 
+<SECTION>
+<FILE>element-rtpsbcpay</FILE>
+<TITLE>rtpsbcpay</TITLE>
+GstRtpSBCPay
+<SUBSECTION Standard>
+GstRtpSBCPayClass
+GST_RTP_SBC_PAY
+GST_RTP_SBC_PAY_CLASS
+GST_IS_RTP_SBC_PAY
+GST_IS_RTP_SBC_PAY_CLASS
+GST_TYPE_RTP_SBC_PAY
+gst_rtp_sbc_pay_get_type
+</SECTION>
+
 <SECTION>
 <FILE>element-rtspsrc</FILE>
 <TITLE>rtspsrc</TITLE>
@@ -1641,6 +1814,20 @@ GST_RTSP_STREAM_UNLOCK
 gst_rtspsrc_get_type
 </SECTION>
 
+<SECTION>
+<FILE>element-sbcparse</FILE>
+<TITLE>sbcparse</TITLE>
+GstSbcParse
+<SUBSECTION Standard>
+GstSbcParseClass
+GST_SBC_PARSE
+GST_SBC_PARSE_CLASS
+GST_IS_SBC_PARSE
+GST_IS_SBC_PARSE_CLASS
+GST_TYPE_SBC_PARSE
+gst_sbc_parse_get_type
+</SECTION>
+
 <SECTION>
 <FILE>element-shapewipe</FILE>
 <TITLE>shapewipe</TITLE>
@@ -2239,6 +2426,51 @@ GST_TYPE_RIPPLETV
 gst_rippletv_get_type
 </SECTION>
 
+<SECTION>
+<FILE>element-rtpdtmfmux</FILE>
+<TITLE>rtpdtmfmux</TITLE>
+GstRTPDTMFMux
+<SUBSECTION Standard>
+GST_IS_RTP_DTMF_MUX
+GST_IS_RTP_DTMF_MUX_CLASS
+GST_TYPE_RTP_DTMF_MUX
+GstRTPDTMFMuxClass
+GST_RTP_DTMF_MUX
+GST_RTP_DTMF_MUX_CLASS
+gst_rtp_dtmf_mux_get_type
+gst_rtp_dtmf_mux_plugin_init
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpmux</FILE>
+<TITLE>rtpmux</TITLE>
+GstRTPMux
+<SUBSECTION Standard>
+GST_IS_RTP_MUX
+GST_IS_RTP_MUX_CLASS
+GST_RTP_MUX
+GST_RTP_MUX_CLASS
+GST_RTP_MUX_GET_CLASS
+GST_TYPE_RTP_MUX
+GstRTPMuxClass
+gst_rtp_mux_get_type
+gst_rtp_mux_plugin_init
+</SECTION>
+
+<SECTION>
+<FILE>element-scaletempo</FILE>
+<TITLE>scaletempo</TITLE>
+GstScaletempo
+<SUBSECTION Standard>
+GstScaletempoClass
+GST_IS_SCALETEMPO
+GST_IS_SCALETEMPO_CLASS
+GST_SCALETEMPO
+GST_SCALETEMPO_CLASS
+GST_TYPE_SCALETEMPO
+gst_scaletempo_get_type
+</SECTION>
+
 <SECTION>
 <FILE>element-shagadelictv</FILE>
 <TITLE>shagadelictv</TITLE>
diff --git a/docs/plugins/gst-plugins-good-plugins.args b/docs/plugins/gst-plugins-good-plugins.args
index 6220344ad..48e1b8949 100644
--- a/docs/plugins/gst-plugins-good-plugins.args
+++ b/docs/plugins/gst-plugins-good-plugins.args
@@ -253,7 +253,7 @@
 <TYPE>gint</TYPE>
 <RANGE>>= G_MAXULONG</RANGE>
 <FLAGS>rw</FLAGS>
-<NICK>Start Index</NICK>
+<NICK>Stop Index</NICK>
 <BLURB>Stop value of index.  The special value -1 means no stop.</BLURB>
 <DEFAULT>0</DEFAULT>
 </ARG>
@@ -628,6 +628,16 @@
 <DEFAULT></DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstUDPSrc::bind-address</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Bind Address</NICK>
+<BLURB>Address to bind the socket to. This is equivalent to the multicast-group property.</BLURB>
+<DEFAULT>"0.0.0.0"</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstSMPTE::border</NAME>
 <TYPE>gint</TYPE>
@@ -898,6 +908,66 @@
 <DEFAULT>2</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstRTSPSrc::udp-reconnect</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Reconnect to the server</NICK>
+<BLURB>Reconnect to the server if RTSP connection is closed when doing UDP.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTSPSrc::proxy-id</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>proxy-id</NICK>
+<BLURB>HTTP proxy URI user id for authentication.</BLURB>
+<DEFAULT>""</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTSPSrc::proxy-pw</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>proxy-pw</NICK>
+<BLURB>HTTP proxy URI user password for authentication.</BLURB>
+<DEFAULT>""</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTSPSrc::multicast-iface</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Multicast Interface</NICK>
+<BLURB>The network interface on which to join the multicast group.</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTSPSrc::ntp-sync</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sync on NTP clock</NICK>
+<BLURB>Synchronize received streams to the NTP clock.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTSPSrc::use-pipeline-clock</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Use pipeline clock</NICK>
+<BLURB>Use the pipeline running-time to set the NTP time in the RTCP SR messages.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstRTPDec::skip</NAME>
 <TYPE>gint</TYPE>
@@ -934,7 +1004,7 @@
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>message</NICK>
-<BLURB>Post a level message for each passed interval.</BLURB>
+<BLURB>Post a 'level' message for each passed interval (deprecated).</BLURB>
 <DEFAULT>TRUE</DEFAULT>
 </ARG>
 
@@ -958,6 +1028,16 @@
 <DEFAULT>300000000</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstLevel::post-messages</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Post Messages</NICK>
+<BLURB>Whether to post a 'level' element message on the bus for each passed interval.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstDiceTV::square-bits</NAME>
 <TYPE>gint</TYPE>
@@ -1084,7 +1164,7 @@
 <RANGE><= 255</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Target Blue</NICK>
-<BLURB>The Blue target.</BLURB>
+<BLURB>The blue color value for custom RGB chroma keying.</BLURB>
 <DEFAULT>0</DEFAULT>
 </ARG>
 
@@ -1094,7 +1174,7 @@
 <RANGE><= 255</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Target Green</NICK>
-<BLURB>The Green target.</BLURB>
+<BLURB>The green color value for custom RGB chroma keying.</BLURB>
 <DEFAULT>255</DEFAULT>
 </ARG>
 
@@ -1104,7 +1184,7 @@
 <RANGE><= 255</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Target Red</NICK>
-<BLURB>The Red target.</BLURB>
+<BLURB>The red color value for custom RGB chroma keying.</BLURB>
 <DEFAULT>0</DEFAULT>
 </ARG>
 
@@ -1123,7 +1203,7 @@
 <TYPE>guint</TYPE>
 <RANGE><= 128</RANGE>
 <FLAGS>rw</FLAGS>
-<NICK>Sensitivity</NICK>
+<NICK>White Sensitivity</NICK>
 <BLURB>Sensitivity to bright colors.</BLURB>
 <DEFAULT>100</DEFAULT>
 </ARG>
@@ -2558,6 +2638,36 @@
 <DEFAULT></DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstDynUDPSink::bind-address</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Bind Address</NICK>
+<BLURB>Address to bind the socket to.</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstDynUDPSink::bind-port</NAME>
+<TYPE>gint</TYPE>
+<RANGE>[0,65535]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Bind Port</NICK>
+<BLURB>Port to bind the socket to.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstDynUDPSink::socket-v6</NAME>
+<TYPE>GSocket*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Socket IPv6</NICK>
+<BLURB>Socket to use for UDPv6 sending. (NULL == allocate).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstCdioCddaSrc::read-speed</NAME>
 <TYPE>gint</TYPE>
@@ -2734,7 +2844,7 @@
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Force IPv4</NICK>
-<BLURB>Forcing the use of an IPv4 socket.</BLURB>
+<BLURB>Forcing the use of an IPv4 socket (DEPRECATED, has no effect anymore).</BLURB>
 <DEFAULT>FALSE</DEFAULT>
 </ARG>
 
@@ -2748,6 +2858,46 @@
 <DEFAULT>NULL</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstMultiUDPSink::bind-address</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Bind Address</NICK>
+<BLURB>Address to bind the socket to.</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstMultiUDPSink::bind-port</NAME>
+<TYPE>gint</TYPE>
+<RANGE>[0,65535]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Bind Port</NICK>
+<BLURB>Port to bind the socket to.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstMultiUDPSink::socket-v6</NAME>
+<TYPE>GSocket*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Socket Handle IPv6</NICK>
+<BLURB>Socket to use for UDPv6 sending. (NULL == allocate).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstMultiUDPSink::used-socket-v6</NAME>
+<TYPE>GSocket*</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Used Socket Handle IPv6</NICK>
+<BLURB>Socket currently in use for UDPv6 sending. (NULL == no socket).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstCmmlDec::wait-clip-end-time</NAME>
 <TYPE>gboolean</TYPE>
@@ -3261,40 +3411,40 @@
 <ARG>
 <NAME>GstVideoCrop::bottom</NAME>
 <TYPE>gint</TYPE>
-<RANGE>>= 0</RANGE>
+<RANGE>>= G_MAXULONG</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Bottom</NICK>
-<BLURB>Pixels to crop at bottom.</BLURB>
+<BLURB>Pixels to crop at bottom (-1 to auto-crop).</BLURB>
 <DEFAULT>0</DEFAULT>
 </ARG>
 
 <ARG>
 <NAME>GstVideoCrop::left</NAME>
 <TYPE>gint</TYPE>
-<RANGE>>= 0</RANGE>
+<RANGE>>= G_MAXULONG</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Left</NICK>
-<BLURB>Pixels to crop at left.</BLURB>
+<BLURB>Pixels to crop at left (-1 to auto-crop).</BLURB>
 <DEFAULT>0</DEFAULT>
 </ARG>
 
 <ARG>
 <NAME>GstVideoCrop::right</NAME>
 <TYPE>gint</TYPE>
-<RANGE>>= 0</RANGE>
+<RANGE>>= G_MAXULONG</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Right</NICK>
-<BLURB>Pixels to crop at right.</BLURB>
+<BLURB>Pixels to crop at right (-1 to auto-crop).</BLURB>
 <DEFAULT>0</DEFAULT>
 </ARG>
 
 <ARG>
 <NAME>GstVideoCrop::top</NAME>
 <TYPE>gint</TYPE>
-<RANGE>>= 0</RANGE>
+<RANGE>>= G_MAXULONG</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Top</NICK>
-<BLURB>Pixels to crop at top.</BLURB>
+<BLURB>Pixels to crop at top (-1 to auto-crop).</BLURB>
 <DEFAULT>0</DEFAULT>
 </ARG>
 
@@ -3428,6 +3578,36 @@
 <DEFAULT>GST_V4L2_IO_AUTO</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstV4l2Src::extra-controls</NAME>
+<TYPE>GstStructure*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Extra Controls</NICK>
+<BLURB>Extra v4l2 controls (CIDs) for the device.</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstV4l2Src::force-aspect-ratio</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Force aspect ratio</NICK>
+<BLURB>When enabled, the pixel aspect ratio will be enforced.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstV4l2Src::pixel-aspect-ratio</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Pixel Aspect Ratio</NICK>
+<BLURB>Overwrite the pixel aspect ratio of the device.</BLURB>
+<DEFAULT>"1/1"</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstAudioChebBand::lower-frequency</NAME>
 <TYPE>gfloat</TYPE>
@@ -20125,7 +20305,7 @@
 <FLAGS>rw</FLAGS>
 <NICK>Client Name</NICK>
 <BLURB>The PulseAudio client name to use.</BLURB>
-<DEFAULT>"lt-gst-plugins-good-plugins-scan"</DEFAULT>
+<DEFAULT>"gst-plugins-good-plugins-scan"</DEFAULT>
 </ARG>
 
 <ARG>
@@ -20215,7 +20395,7 @@
 <FLAGS>rw</FLAGS>
 <NICK>Client Name</NICK>
 <BLURB>The PulseAudio client_name_to_use.</BLURB>
-<DEFAULT>"lt-gst-plugins-good-plugins-scan"</DEFAULT>
+<DEFAULT>"gst-plugins-good-plugins-scan"</DEFAULT>
 </ARG>
 
 <ARG>
@@ -21378,6 +21558,36 @@
 <DEFAULT>none</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstV4l2Sink::extra-controls</NAME>
+<TYPE>GstStructure*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Extra Controls</NICK>
+<BLURB>Extra v4l2 controls (CIDs) for the device.</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstV4l2Sink::force-aspect-ratio</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Force aspect ratio</NICK>
+<BLURB>When enabled, the pixel aspect ratio will be enforced.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstV4l2Sink::pixel-aspect-ratio</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Pixel Aspect Ratio</NICK>
+<BLURB>Overwrite the pixel aspect ratio of the device.</BLURB>
+<DEFAULT>"1/1"</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstShapeWipe::border</NAME>
 <TYPE>gfloat</TYPE>
@@ -21704,7 +21914,7 @@
 <RANGE></RANGE>
 <FLAGS>rwx</FLAGS>
 <NICK>dts-method</NICK>
-<BLURB>Method to determine DTS time.</BLURB>
+<BLURB>(DEPRECATED) Method to determine DTS time.</BLURB>
 <DEFAULT>reorder</DEFAULT>
 </ARG>
 
@@ -21834,7 +22044,7 @@
 <RANGE></RANGE>
 <FLAGS>rwx</FLAGS>
 <NICK>dts-method</NICK>
-<BLURB>Method to determine DTS time.</BLURB>
+<BLURB>(DEPRECATED) Method to determine DTS time.</BLURB>
 <DEFAULT>reorder</DEFAULT>
 </ARG>
 
@@ -21924,7 +22134,7 @@
 <RANGE></RANGE>
 <FLAGS>rwx</FLAGS>
 <NICK>dts-method</NICK>
-<BLURB>Method to determine DTS time.</BLURB>
+<BLURB>(DEPRECATED) Method to determine DTS time.</BLURB>
 <DEFAULT>reorder</DEFAULT>
 </ARG>
 
@@ -22014,7 +22224,7 @@
 <RANGE></RANGE>
 <FLAGS>rwx</FLAGS>
 <NICK>dts-method</NICK>
-<BLURB>Method to determine DTS time.</BLURB>
+<BLURB>(DEPRECATED) Method to determine DTS time.</BLURB>
 <DEFAULT>reorder</DEFAULT>
 </ARG>
 
@@ -22194,7 +22404,7 @@
 <RANGE></RANGE>
 <FLAGS>rwx</FLAGS>
 <NICK>dts-method</NICK>
-<BLURB>Method to determine DTS time.</BLURB>
+<BLURB>(DEPRECATED) Method to determine DTS time.</BLURB>
 <DEFAULT>reorder</DEFAULT>
 </ARG>
 
@@ -22684,7 +22894,7 @@
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>X Offset</NICK>
-<BLURB>Horizontal offset of overlay image in pixels from top-left corner of video image.</BLURB>
+<BLURB>For positive value, horizontal offset of overlay image in pixels from left of video image. For negative value, horizontal offset of overlay image in pixels from right of video image.</BLURB>
 <DEFAULT>0</DEFAULT>
 </ARG>
 
@@ -22694,7 +22904,7 @@
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Y Offset</NICK>
-<BLURB>Vertical offset of overlay image in pixels from top-left corner of video image.</BLURB>
+<BLURB>For positive value, vertical offset of overlay image in pixels from top of video image. For negative value, vertical offset of overlay image in pixels from bottom of video image.</BLURB>
 <DEFAULT>0</DEFAULT>
 </ARG>
 
@@ -23328,6 +23538,16 @@
 <DEFAULT>Normal</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstVP8Enc::timebase</NAME>
+<TYPE>GstFraction</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Shortest interframe time</NICK>
+<BLURB>Fraction of one second that is the shortest interframe time - normally left as zero which will default to the framerate.</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstVP8Dec::deblocking-level</NAME>
 <TYPE>guint</TYPE>
@@ -23398,3 +23618,213 @@
 <DEFAULT>TRUE</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstScaletempo::overlap</NAME>
+<TYPE>gdouble</TYPE>
+<RANGE>[0,1]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Overlap Length</NICK>
+<BLURB>Percentage of stride to overlap.</BLURB>
+<DEFAULT>0.2</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstScaletempo::rate</NAME>
+<TYPE>gdouble</TYPE>
+<RANGE>[-2.14748e+09,2.14748e+09]</RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Playback Rate</NICK>
+<BLURB>Current playback rate.</BLURB>
+<DEFAULT>1</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstScaletempo::search</NAME>
+<TYPE>guint</TYPE>
+<RANGE><= 500</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Search Length</NICK>
+<BLURB>Length in milliseconds to search for best overlap position.</BLURB>
+<DEFAULT>14</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstScaletempo::stride</NAME>
+<TYPE>guint</TYPE>
+<RANGE>[1,5000]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Stride Length</NICK>
+<BLURB>Length in milliseconds to output each stride.</BLURB>
+<DEFAULT>30</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTPMux::seqnum</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Sequence number</NICK>
+<BLURB>The RTP sequence number of the last processed packet.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTPMux::seqnum-offset</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= G_MAXULONG</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sequence number Offset</NICK>
+<BLURB>Offset to add to all outgoing seqnum (-1 = random).</BLURB>
+<DEFAULT>-1</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTPMux::ssrc</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>SSRC</NICK>
+<BLURB>The SSRC of the packets (-1 == random).</BLURB>
+<DEFAULT>4294967295</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTPMux::timestamp-offset</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= G_MAXULONG</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Timestamp Offset</NICK>
+<BLURB>Offset to add to all outgoing timestamps (-1 = random).</BLURB>
+<DEFAULT>-1</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRtpSBCPay::min-frames</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= G_MAXULONG</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>minimum frame number</NICK>
+<BLURB>Minimum quantity of frames to send in one packet (-1 for maximum allowed by the mtu).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTPDTMFSrc::clock-rate</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>clockrate</NICK>
+<BLURB>The clock-rate at which to generate the dtmf packets.</BLURB>
+<DEFAULT>8000</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTPDTMFSrc::packet-redundancy</NAME>
+<TYPE>guint</TYPE>
+<RANGE>[1,5]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Packet Redundancy</NICK>
+<BLURB>Number of packets to send to indicate start and stop dtmf events.</BLURB>
+<DEFAULT>1</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTPDTMFSrc::pt</NAME>
+<TYPE>guint</TYPE>
+<RANGE><= 128</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>payload type</NICK>
+<BLURB>The payload type of the packets.</BLURB>
+<DEFAULT>96</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTPDTMFSrc::seqnum</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Sequence number</NICK>
+<BLURB>The RTP sequence number of the last processed packet.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTPDTMFSrc::seqnum-offset</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= G_MAXULONG</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sequence number Offset</NICK>
+<BLURB>Offset to add to all outgoing seqnum (-1 = random).</BLURB>
+<DEFAULT>-1</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTPDTMFSrc::ssrc</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>SSRC</NICK>
+<BLURB>The SSRC of the packets (-1 == random).</BLURB>
+<DEFAULT>4294967295</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTPDTMFSrc::timestamp</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Timestamp</NICK>
+<BLURB>The RTP timestamp of the last processed packet.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTPDTMFSrc::timestamp-offset</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= G_MAXULONG</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Timestamp Offset</NICK>
+<BLURB>Offset to add to all outgoing timestamps (-1 = random).</BLURB>
+<DEFAULT>-1</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRtpDTMFDepay::max-duration</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Maximum duration</NICK>
+<BLURB>The maxumimum duration (ms) of the outgoing soundpacket. (0 = no limit).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRtpDTMFDepay::unit-time</NAME>
+<TYPE>guint</TYPE>
+<RANGE><= 1000</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Duration unittime</NICK>
+<BLURB>The smallest unit (ms) the duration must be a multiple of (0 disables it).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstDTMFSrc::interval</NAME>
+<TYPE>guint</TYPE>
+<RANGE>[10,50]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Interval between tone packets</NICK>
+<BLURB>Interval in ms between two tone packets.</BLURB>
+<DEFAULT>50</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRtpVorbisPay::config-interval</NAME>
+<TYPE>guint</TYPE>
+<RANGE><= 3600</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Config Send Interval</NICK>
+<BLURB>Send Config Insertion Interval in seconds (configuration headers will be multiplexed in the data stream when detected.) (0 = disabled).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
diff --git a/docs/plugins/gst-plugins-good-plugins.hierarchy b/docs/plugins/gst-plugins-good-plugins.hierarchy
index 22f85a5ec..7a044994f 100644
--- a/docs/plugins/gst-plugins-good-plugins.hierarchy
+++ b/docs/plugins/gst-plugins-good-plugins.hierarchy
@@ -2,7 +2,7 @@ GObject
   GInitiallyUnowned
     GstObject
       GstAllocator
-        GstDefaultAllocator
+        GstAllocatorSysmem
       GstAudioRingBuffer
         GstAudioSinkRingBuffer
         GstAudioSrcRingBuffer
@@ -22,10 +22,12 @@ GObject
         GstAuParse
         GstAudioDecoder
           GstFlacDec
+          GstMuLawDec
           GstSpeexDec
           GstWavpackDec
         GstAudioEncoder
           GstFlacEnc
+          GstMuLawEnc
           GstSpeexEnc
           GstWavpackEnc
         GstAviDemux
@@ -38,6 +40,7 @@ GObject
           GstDcaParse
           GstFlacParse
           GstMpegAudioParse
+          GstSbcParse
           GstWavpackParse
         GstBaseSink
           GstAudioBaseSink
@@ -59,6 +62,7 @@ GObject
             GstGdkPixbufSink
             GstV4l2Sink
         GstBaseSrc
+          GstDTMFSrc
           GstPushSrc
             GstAudioBaseSrc
               GstAudioSrc
@@ -73,6 +77,7 @@ GObject
             GstUDPSrc
             GstV4l2Src
             GstXImageSrc
+          GstRTPDTMFSrc
           GstSplitFileSrc
         GstBaseTransform
           GstAudioFilter
@@ -103,6 +108,7 @@ GObject
           GstProgressReport
           GstRgAnalysis
           GstRgLimiter
+          GstScaletempo
           GstTagInject
           GstVideoFilter
             GstAgingTV
@@ -163,8 +169,7 @@ GObject
         GstMatroskaMux
           GstWebMMux
         GstMatroskaParse
-        GstMuLawDec
-        GstMuLawEnc
+        GstMonoscope
         GstMultipartDemux
         GstMultipartMux
         GstQTDemux
@@ -178,6 +183,7 @@ GObject
           GstRtpAC3Depay
           GstRtpAMRDepay
           GstRtpCELTDepay
+          GstRtpDTMFDepay
           GstRtpG722Depay
           GstRtpG723Depay
           GstRtpG726Depay
@@ -203,7 +209,9 @@ GObject
           GstRtpQDM2Depay
           GstRtpSPEEXDepay
           GstRtpSV3VDepay
+          GstRtpSbcDepay
           GstRtpTheoraDepay
+          GstRtpVP8Depay
           GstRtpVRawDepay
           GstRtpVorbisDepay
           GstRtpXQTDepay
@@ -236,11 +244,15 @@ GObject
           GstRtpMP4GPay
           GstRtpMP4VPay
           GstRtpMPAPay
+          GstRtpSBCPay
           GstRtpSPEEXPay
           GstRtpTheoraPay
+          GstRtpVP8Pay
           GstRtpVRawPay
           GstRtpVorbisPay
         GstRTPDec
+        GstRTPMux
+          GstRTPDTMFMux
         GstRndBufferSize
         GstRtpJitterBuffer
         GstRtpPtDemux
diff --git a/docs/plugins/gst-plugins-good-plugins.interfaces b/docs/plugins/gst-plugins-good-plugins.interfaces
index 4ef1b614e..e976d4cae 100644
--- a/docs/plugins/gst-plugins-good-plugins.interfaces
+++ b/docs/plugins/gst-plugins-good-plugins.interfaces
@@ -40,6 +40,7 @@ GstMJ2Mux GstTagSetter GstTagXmpWriter
 GstMP4Mux GstTagSetter GstTagXmpWriter
 GstMatroskaMux GstTagSetter
 GstMatroskaMux GstTagSetter GstTocSetter
+GstMuLawEnc GstPreset
 GstOss4Mixer GstImplementsInterface GstMixer GstPropertyProbe
 GstOss4Sink GstStreamVolume
 GstOss4Sink GstStreamVolume GstPropertyProbe
@@ -86,6 +87,7 @@ GstVideoBalance GstImplementsInterface GstColorBalance
 GstVideoEncoder GstPreset
 GstVideoMixer GstChildProxy
 GstVideoMixer2 GstChildProxy
+GstWavEnc GstTagSetter GstTocSetter
 GstWavpackEnc GstPreset
 GstWebMMux GstTagSetter
 GstWebMMux GstTagSetter GstTocSetter
diff --git a/docs/plugins/gst-plugins-good-plugins.signals b/docs/plugins/gst-plugins-good-plugins.signals
index 605c082dc..794622b8e 100644
--- a/docs/plugins/gst-plugins-good-plugins.signals
+++ b/docs/plugins/gst-plugins-good-plugins.signals
@@ -686,8 +686,32 @@ guint64  arg3
 <FLAGS>l</FLAGS>
 GstV4l2Src *gstv4l2src
 gint  arg1
-guint  arg2
-guint  arg3
-guint  arg4
+GstCaps *arg2
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstRTSPSrc::handle-request</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS></FLAGS>
+GstRTSPSrc *gstrtspsrc
+gpointer  arg1
+gpointer  arg2
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstRTSPSrc::on-sdp</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS></FLAGS>
+GstRTSPSrc *gstrtspsrc
+GstSDPMessage *arg1
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstRTSPSrc::select-stream</NAME>
+<RETURNS>gboolean</RETURNS>
+<FLAGS>fc</FLAGS>
+GstRTSPSrc *gstrtspsrc
+guint  arg1
+GstCaps *arg2
 </SIGNAL>
 
diff --git a/docs/plugins/html/GstIirEqualizer.html b/docs/plugins/html/GstIirEqualizer.html
index 0d1b17e30..6eb74c25a 100644
--- a/docs/plugins/html/GstIirEqualizer.html
+++ b/docs/plugins/html/GstIirEqualizer.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstIirEqualizer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch03.html" title="gst-plugins-good Base Classes">
 <link rel="prev" href="ch03.html" title="gst-plugins-good Base Classes">
diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html
index 4414d40c4..6b726b4a1 100644
--- a/docs/plugins/html/ch01.html
+++ b/docs/plugins/html/ch01.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gst-plugins-good Elements</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="prev" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
@@ -20,9 +20,9 @@
 <td><a accesskey="n" href="gst-plugins-good-plugins-3gppmux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="idp2211408"></a>gst-plugins-good Elements</h2></div></div></div>
-<div class="toc"><dl>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="idp3810112"></a>gst-plugins-good Elements</h1></div></div></div>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-3gppmux.html">3gppmux</a></span><span class="refpurpose"> — Muxer for 3GPP (.3gp) files</span>
 </dt>
@@ -150,6 +150,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-directsoundsink.html">directsoundsink</a></span><span class="refpurpose"> — DirectSound audio sink</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-dtmfsrc.html">dtmfsrc</a></span><span class="refpurpose"> — Generates DTMF tones</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-dv1394src.html">dv1394src</a></span><span class="refpurpose"> — Source for DV video data from firewire port</span>
 </dt>
 <dt>
@@ -195,9 +198,6 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-gamma.html">gamma</a></span><span class="refpurpose"> — Adjusts gamma on a video stream</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-gdkpixbufoverlay.html">gdkpixbufoverlay</a></span><span class="refpurpose"> — Overlay an image onto a video stream</span>
-</dt>
-<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-gdkpixbufsink.html">gdkpixbufsink</a></span><span class="refpurpose"> — Output images as GdkPixbuf objects in bus messages</span>
 </dt>
 <dt>
@@ -354,21 +354,57 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdec.html">rtpdec</a></span><span class="refpurpose"> — Accepts raw RTP and RTCP packets and sends them forward</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpac3depay.html">rtpac3depay</a></span><span class="refpurpose"> — Extracts AC3 audio from RTP packets (RFC 4184)</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpac3pay.html">rtpac3pay</a></span><span class="refpurpose"> — Payload AC3 audio as RTP packets (RFC 4184)</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpamrdepay.html">rtpamrdepay</a></span><span class="refpurpose"> — Extracts AMR or AMR-WB audio from RTP packets (RFC 3267)</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpamrpay.html">rtpamrpay</a></span><span class="refpurpose"> — Payload-encode AMR or AMR-WB audio into RTP packets (RFC 3267)</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbvdepay.html">rtpbvdepay</a></span><span class="refpurpose"> — Extracts BroadcomVoice audio from RTP packets (RFC 4298)</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbvpay.html">rtpbvpay</a></span><span class="refpurpose"> — Packetize BroadcomVoice audio streams into RTP packets (RFC 4298)</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL16depay.html">rtpL16depay</a></span><span class="refpurpose"> — Extracts raw audio from RTP packets</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL16pay.html">rtpL16pay</a></span><span class="refpurpose"> — Payload-encode Raw audio into RTP packets (RFC 3551)</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpj2kpay.html">rtpj2kpay</a></span><span class="refpurpose"> — Payload-encodes JPEG 2000 pictures into RTP packets (RFC 5371)</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpjpegpay.html">rtpjpegpay</a></span><span class="refpurpose"> — Payload-encodes JPEG pictures into RTP packets (RFC 2435)</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpsbcpay.html">rtpsbcpay</a></span><span class="refpurpose"> — Payload SBC audio as RTP packets</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtspsrc.html">rtspsrc</a></span><span class="refpurpose"> — Receive data over the network via RTSP (RFC 2326)</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbin.html">rtpbin</a></span><span class="refpurpose"> — Real-Time Transport Protocol bin</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdtmfmux.html">rtpdtmfmux</a></span><span class="refpurpose"> — mixes RTP DTMF streams into other RTP streams</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdtmfsrc.html">rtpdtmfsrc</a></span><span class="refpurpose"> — Generates RTP DTMF packets</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpjitterbuffer.html">rtpjitterbuffer</a></span><span class="refpurpose"> — A buffer that deals with network jitter and other transmission faults</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmux.html">rtpmux</a></span><span class="refpurpose"> — multiplex N rtp streams into one</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpptdemux.html">rtpptdemux</a></span><span class="refpurpose"> — Parses codec streams transmitted in the same RTP session</span>
 </dt>
 <dt>
@@ -378,6 +414,12 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpssrcdemux.html">rtpssrcdemux</a></span><span class="refpurpose"> — Splits RTP streams based on the SSRC</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-sbcparse.html">sbcparse</a></span><span class="refpurpose"> — Parses an SBC bluetooth audio stream</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-scaletempo.html">scaletempo</a></span><span class="refpurpose"> — Sync audio tempo with playback rate</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-shagadelictv.html">shagadelictv</a></span><span class="refpurpose"> — Oh behave, ShagedelicTV makes images shagadelic!</span>
 </dt>
 <dt>
diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html
index 8a7d8f82a..8546648b8 100644
--- a/docs/plugins/html/ch02.html
+++ b/docs/plugins/html/ch02.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gst-plugins-good Plugins</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="prev" href="gst-plugins-good-plugins-y4menc.html" title="y4menc">
@@ -20,215 +20,218 @@
 <td><a accesskey="n" href="gst-plugins-good-plugins-plugin-1394.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="idp75168"></a>gst-plugins-good Plugins</h2></div></div></div>
-<div class="toc"><dl>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="idp280352"></a>gst-plugins-good Plugins</h1></div></div></div>
+<div class="toc"><dl class="toc">
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-1394.html">1394</a></span><span class="refpurpose"> — <a name="plugin-1394"></a>Source for video data via IEEE1394 interface</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-1394.html">1394</a></span><span class="refpurpose">Source for video data via IEEE1394 interface</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-aasink.html">aasink</a></span><span class="refpurpose"> — <a name="plugin-aasink"></a>ASCII Art video sink</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-aasink.html">aasink</a></span><span class="refpurpose">ASCII Art video sink</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alaw.html">alaw</a></span><span class="refpurpose"> — <a name="plugin-alaw"></a>ALaw audio conversion routines</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alaw.html">alaw</a></span><span class="refpurpose">ALaw audio conversion routines</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alpha.html">alpha</a></span><span class="refpurpose"> — <a name="plugin-alpha"></a>adds an alpha channel to video - constant or via chroma-keying</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alpha.html">alpha</a></span><span class="refpurpose">adds an alpha channel to video - constant or via chroma-keying</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alphacolor.html">alphacolor</a></span><span class="refpurpose"> — <a name="plugin-alphacolor"></a>RGBA from/to AYUV colorspace conversion preserving the alpha channel</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alphacolor.html">alphacolor</a></span><span class="refpurpose">RGBA from/to AYUV colorspace conversion preserving the alpha channel</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-apetag.html">apetag</a></span><span class="refpurpose"> — <a name="plugin-apetag"></a>APEv1/2 tag reader</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-apetag.html">apetag</a></span><span class="refpurpose">APEv1/2 tag reader</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-audiofx.html">audiofx</a></span><span class="refpurpose"> — <a name="plugin-audiofx"></a>Audio effects plugin</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-audiofx.html">audiofx</a></span><span class="refpurpose">Audio effects plugin</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-auparse.html">auparse</a></span><span class="refpurpose"> — <a name="plugin-auparse"></a>parses au streams</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-auparse.html">auparse</a></span><span class="refpurpose">parses au streams</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-autodetect.html">autodetect</a></span><span class="refpurpose"> — <a name="plugin-autodetect"></a>Plugin contains auto-detection plugins for video/audio in- and outputs</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-autodetect.html">autodetect</a></span><span class="refpurpose">Plugin contains auto-detection plugins for video/audio in- and outputs</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-avi.html">avi</a></span><span class="refpurpose"> — <a name="plugin-avi"></a>AVI stream handling</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-avi.html">avi</a></span><span class="refpurpose">AVI stream handling</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cacasink.html">cacasink</a></span><span class="refpurpose"> — <a name="plugin-cacasink"></a>Colored ASCII Art video sink</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cacasink.html">cacasink</a></span><span class="refpurpose">Colored ASCII Art video sink</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cairo.html">cairo</a></span><span class="refpurpose"> — <a name="plugin-cairo"></a>Cairo-based elements</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cairo.html">cairo</a></span><span class="refpurpose">Cairo-based elements</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cutter.html">cutter</a></span><span class="refpurpose"> — <a name="plugin-cutter"></a>Audio Cutter to split audio into non-silent bits</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cutter.html">cutter</a></span><span class="refpurpose">Audio Cutter to split audio into non-silent bits</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-debug.html">debug</a></span><span class="refpurpose"> — <a name="plugin-debug"></a>elements for testing and debugging</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-debug.html">debug</a></span><span class="refpurpose">elements for testing and debugging</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-deinterlace.html">deinterlace</a></span><span class="refpurpose"> — <a name="plugin-deinterlace"></a>Deinterlacer</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-deinterlace.html">deinterlace</a></span><span class="refpurpose">Deinterlacer</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-directsound.html">directsound</a></span><span class="refpurpose"> — <a name="plugin-directsound"></a>DirectSound plugin</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-directsound.html">directsound</a></span><span class="refpurpose">DirectSound plugin</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-dv.html">dv</a></span><span class="refpurpose"> — <a name="plugin-dv"></a>DV demuxer and decoder based on libdv (libdv.sf.net)</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-dtmf.html">dtmf</a></span><span class="refpurpose">DTMF plugins</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-equalizer.html">equalizer</a></span><span class="refpurpose"> — <a name="plugin-equalizer"></a>GStreamer audio equalizers</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-dv.html">dv</a></span><span class="refpurpose">DV demuxer and decoder based on libdv (libdv.sf.net)</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-effectv.html">effectv</a></span><span class="refpurpose"> — <a name="plugin-effectv"></a>effect plugins from the effectv project</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-equalizer.html">equalizer</a></span><span class="refpurpose">GStreamer audio equalizers</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flac.html">flac</a></span><span class="refpurpose"> — <a name="plugin-flac"></a>The FLAC Lossless compressor Codec</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-effectv.html">effectv</a></span><span class="refpurpose">effect plugins from the effectv project</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flv.html">flv</a></span><span class="refpurpose"> — <a name="plugin-flv"></a>FLV muxing and demuxing plugin</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flac.html">flac</a></span><span class="refpurpose">The FLAC Lossless compressor Codec</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flxdec.html">flxdec</a></span><span class="refpurpose"> — <a name="plugin-flxdec"></a>FLC/FLI/FLX video decoder</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flv.html">flv</a></span><span class="refpurpose">FLV muxing and demuxing plugin</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-gdkpixbuf.html">gdkpixbuf</a></span><span class="refpurpose"> — <a name="plugin-gdkpixbuf"></a>GdkPixbuf-based image decoder, overlay and sink</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flxdec.html">flxdec</a></span><span class="refpurpose">FLC/FLI/FLX video decoder</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom.html">goom</a></span><span class="refpurpose"> — <a name="plugin-goom"></a>GOOM visualization filter</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-gdkpixbuf.html">gdkpixbuf</a></span><span class="refpurpose">GdkPixbuf-based image decoder, overlay and sink</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom2k1.html">goom2k1</a></span><span class="refpurpose"> — <a name="plugin-goom2k1"></a>GOOM 2k1 visualization filter</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom.html">goom</a></span><span class="refpurpose">GOOM visualization filter</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-icydemux.html">icydemux</a></span><span class="refpurpose"> — <a name="plugin-icydemux"></a>Demux ICY tags from a stream</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom2k1.html">goom2k1</a></span><span class="refpurpose">GOOM 2k1 visualization filter</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-id3demux.html">id3demux</a></span><span class="refpurpose"> — <a name="plugin-id3demux"></a>Demux ID3v1 and ID3v2 tags from a file</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-icydemux.html">icydemux</a></span><span class="refpurpose">Demux ICY tags from a stream</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-imagefreeze.html">imagefreeze</a></span><span class="refpurpose"> — <a name="plugin-imagefreeze"></a>Still frame stream generator</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-id3demux.html">id3demux</a></span><span class="refpurpose">Demux ID3v1 and ID3v2 tags from a file</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-interleave.html">interleave</a></span><span class="refpurpose"> — <a name="plugin-interleave"></a>Audio interleaver/deinterleaver</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-imagefreeze.html">imagefreeze</a></span><span class="refpurpose">Still frame stream generator</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-isomp4.html">isomp4</a></span><span class="refpurpose"> — <a name="plugin-isomp4"></a>ISO base media file format support (mp4, 3gpp, qt, mj2)</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-interleave.html">interleave</a></span><span class="refpurpose">Audio interleaver/deinterleaver</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-jack.html">jack</a></span><span class="refpurpose"> — <a name="plugin-jack"></a>JACK audio elements</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-isomp4.html">isomp4</a></span><span class="refpurpose">ISO base media file format support (mp4, 3gpp, qt, mj2)</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-jpeg.html">jpeg</a></span><span class="refpurpose"> — <a name="plugin-jpeg"></a>JPeg plugin library</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-jack.html">jack</a></span><span class="refpurpose">JACK audio elements</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-level.html">level</a></span><span class="refpurpose"> — <a name="plugin-level"></a>Audio level plugin</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-jpeg.html">jpeg</a></span><span class="refpurpose">JPeg plugin library</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-matroska.html">matroska</a></span><span class="refpurpose"> — <a name="plugin-matroska"></a>Matroska and WebM stream handling</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-level.html">level</a></span><span class="refpurpose">Audio level plugin</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-monoscope.html">monoscope</a></span><span class="refpurpose"> — <a name="plugin-monoscope"></a>Monoscope visualization</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-matroska.html">matroska</a></span><span class="refpurpose">Matroska and WebM stream handling</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-mulaw.html">mulaw</a></span><span class="refpurpose"> — <a name="plugin-mulaw"></a>MuLaw audio conversion routines</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-monoscope.html">monoscope</a></span><span class="refpurpose">Monoscope visualization</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-multifile.html">multifile</a></span><span class="refpurpose"> — <a name="plugin-multifile"></a>Reads/Writes buffers from/to sequentially named files</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-mulaw.html">mulaw</a></span><span class="refpurpose">MuLaw audio conversion routines</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-multipart.html">multipart</a></span><span class="refpurpose"> — <a name="plugin-multipart"></a>multipart stream manipulation</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-multifile.html">multifile</a></span><span class="refpurpose">Reads/Writes buffers from/to sequentially named files</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-navigationtest.html">navigationtest</a></span><span class="refpurpose"> — <a name="plugin-navigationtest"></a>Template for a video filter</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-multipart.html">multipart</a></span><span class="refpurpose">multipart stream manipulation</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-oss4.html">oss4</a></span><span class="refpurpose"> — <a name="plugin-oss4"></a>Open Sound System (OSS) version 4 support for GStreamer</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-navigationtest.html">navigationtest</a></span><span class="refpurpose">Template for a video filter</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-ossaudio.html">ossaudio</a></span><span class="refpurpose"> — <a name="plugin-ossaudio"></a>OSS (Open Sound System) support for GStreamer</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-oss4.html">oss4</a></span><span class="refpurpose">Open Sound System (OSS) version 4 support for GStreamer</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-osxaudio.html">osxaudio</a></span><span class="refpurpose"> — <a name="plugin-osxaudio"></a>OSX (Mac OS X) audio support for GStreamer</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-ossaudio.html">ossaudio</a></span><span class="refpurpose">OSS (Open Sound System) support for GStreamer</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-osxvideo.html">osxvideo</a></span><span class="refpurpose"> — <a name="plugin-osxvideo"></a>OSX native video output plugin</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-osxaudio.html">osxaudio</a></span><span class="refpurpose">OSX (Mac OS X) audio support for GStreamer</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-png.html">png</a></span><span class="refpurpose"> — <a name="plugin-png"></a>PNG plugin library</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-osxvideo.html">osxvideo</a></span><span class="refpurpose">OSX native video output plugin</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-pulseaudio.html">pulseaudio</a></span><span class="refpurpose"> — <a name="plugin-pulseaudio"></a>PulseAudio plugin library</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-png.html">png</a></span><span class="refpurpose">PNG plugin library</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-replaygain.html">replaygain</a></span><span class="refpurpose"> — <a name="plugin-replaygain"></a>ReplayGain volume normalization</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-pulseaudio.html">pulseaudio</a></span><span class="refpurpose">PulseAudio plugin library</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtp.html">rtp</a></span><span class="refpurpose"> — <a name="plugin-rtp"></a>Real-time protocol plugins</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-replaygain.html">replaygain</a></span><span class="refpurpose">ReplayGain volume normalization</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtpmanager.html">rtpmanager</a></span><span class="refpurpose"> — <a name="plugin-rtpmanager"></a>RTP session management plugin library</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtp.html">rtp</a></span><span class="refpurpose">Real-time protocol plugins</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtsp.html">rtsp</a></span><span class="refpurpose"> — <a name="plugin-rtsp"></a>transfer data via RTSP</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtpmanager.html">rtpmanager</a></span><span class="refpurpose">RTP session management plugin library</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-shapewipe.html">shapewipe</a></span><span class="refpurpose"> — <a name="plugin-shapewipe"></a>Shape Wipe transition filter</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtsp.html">rtsp</a></span><span class="refpurpose">transfer data via RTSP</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-shout2send.html">shout2send</a></span><span class="refpurpose"> — <a name="plugin-shout2send"></a>Sends data to an icecast server using libshout2</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-shapewipe.html">shapewipe</a></span><span class="refpurpose">Shape Wipe transition filter</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-smpte.html">smpte</a></span><span class="refpurpose"> — <a name="plugin-smpte"></a>Apply the standard SMPTE transitions on video images</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-shout2send.html">shout2send</a></span><span class="refpurpose">Sends data to an icecast server using libshout2</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-soup.html">soup</a></span><span class="refpurpose"> — <a name="plugin-soup"></a>libsoup HTTP client src/sink</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-smpte.html">smpte</a></span><span class="refpurpose">Apply the standard SMPTE transitions on video images</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-spectrum.html">spectrum</a></span><span class="refpurpose"> — <a name="plugin-spectrum"></a>Run an FFT on the audio signal, output spectrum data</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-soup.html">soup</a></span><span class="refpurpose">libsoup HTTP client src/sink</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-speex.html">speex</a></span><span class="refpurpose"> — <a name="plugin-speex"></a>Speex plugin library</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-spectrum.html">spectrum</a></span><span class="refpurpose">Run an FFT on the audio signal, output spectrum data</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-taglib.html">taglib</a></span><span class="refpurpose"> — <a name="plugin-taglib"></a>Tag writing plug-in based on taglib</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-speex.html">speex</a></span><span class="refpurpose">Speex plugin library</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-udp.html">udp</a></span><span class="refpurpose"> — <a name="plugin-udp"></a>transfer data via UDP</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-taglib.html">taglib</a></span><span class="refpurpose">Tag writing plug-in based on taglib</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-video4linux2.html">video4linux2</a></span><span class="refpurpose"> — <a name="plugin-video4linux2"></a>elements for Video 4 Linux</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-udp.html">udp</a></span><span class="refpurpose">transfer data via UDP</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videobox.html">videobox</a></span><span class="refpurpose"> — <a name="plugin-videobox"></a>resizes a video by adding borders or cropping</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-video4linux2.html">video4linux2</a></span><span class="refpurpose">elements for Video 4 Linux</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videocrop.html">videocrop</a></span><span class="refpurpose"> — <a name="plugin-videocrop"></a>Crops video into a user-defined region</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videobox.html">videobox</a></span><span class="refpurpose">resizes a video by adding borders or cropping</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videofilter.html">videofilter</a></span><span class="refpurpose"> — <a name="plugin-videofilter"></a>Video filters plugin</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videocrop.html">videocrop</a></span><span class="refpurpose">Crops video into a user-defined region</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videomixer.html">videomixer</a></span><span class="refpurpose"> — <a name="plugin-videomixer"></a>Video mixer</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videofilter.html">videofilter</a></span><span class="refpurpose">Video filters plugin</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-vpx.html">vpx</a></span><span class="refpurpose"> — <a name="plugin-vpx"></a>VP8 plugin</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videomixer.html">videomixer</a></span><span class="refpurpose">Video mixer</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-waveform.html">waveform</a></span><span class="refpurpose"> — <a name="plugin-waveform"></a>WaveForm API based plugin</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-vpx.html">vpx</a></span><span class="refpurpose">VP8 plugin</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavenc.html">wavenc</a></span><span class="refpurpose"> — <a name="plugin-wavenc"></a>Encode raw audio into WAV</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-waveform.html">waveform</a></span><span class="refpurpose">WaveForm API based plugin</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavpack.html">wavpack</a></span><span class="refpurpose"> — <a name="plugin-wavpack"></a>Wavpack lossless/lossy audio format handling</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavenc.html">wavenc</a></span><span class="refpurpose">Encode raw audio into WAV</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavparse.html">wavparse</a></span><span class="refpurpose"> — <a name="plugin-wavparse"></a>Parse a .wav file into raw audio</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavpack.html">wavpack</a></span><span class="refpurpose">Wavpack lossless/lossy audio format handling</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-ximagesrc.html">ximagesrc</a></span><span class="refpurpose"> — <a name="plugin-ximagesrc"></a>X11 video input plugin using standard Xlib calls</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavparse.html">wavparse</a></span><span class="refpurpose">Parse a .wav file into raw audio</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-y4menc.html">y4menc</a></span><span class="refpurpose"> — <a name="plugin-y4menc"></a>Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-ximagesrc.html">ximagesrc</a></span><span class="refpurpose">X11 video input plugin using standard Xlib calls</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-y4menc.html">y4menc</a></span><span class="refpurpose">Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</span>
 </dt>
 </dl></div>
 </div>
diff --git a/docs/plugins/html/ch03.html b/docs/plugins/html/ch03.html
index 4dfa220b0..a813f39db 100644
--- a/docs/plugins/html/ch03.html
+++ b/docs/plugins/html/ch03.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gst-plugins-good Base Classes</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-y4menc.html" title="y4menc">
@@ -20,9 +20,9 @@
 <td><a accesskey="n" href="GstIirEqualizer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="idp4779248"></a>gst-plugins-good Base Classes</h2></div></div></div>
-<div class="toc"><dl>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="idp86112"></a>gst-plugins-good Base Classes</h1></div></div></div>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="GstIirEqualizer.html">GstIirEqualizer</a></span><span class="refpurpose"></span>
 </dt>
diff --git a/docs/plugins/html/gst-plugins-good-plugins.devhelp2 b/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2
similarity index 84%
rename from docs/plugins/html/gst-plugins-good-plugins.devhelp2
rename to docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2
index caf8b67a5..ae187ac40 100644
--- a/docs/plugins/html/gst-plugins-good-plugins.devhelp2
+++ b/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2
@@ -1,6 +1,6 @@
 <?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 Good Plugins 1.0 Plugins Reference Manual" link="index.html" author="" name="gst-plugins-good-plugins" version="2" language="c">
+<book xmlns="http://www.devhelp.net/book" title="GStreamer Good Plugins 1.0 Plugins Reference Manual" link="index.html" author="" name="gst-plugins-good-plugins-1.0" version="2" language="c">
   <chapters>
     <sub name="gst-plugins-good Elements" link="ch01.html">
       <sub name="3gppmux" link="gst-plugins-good-plugins-3gppmux.html"/>
@@ -45,6 +45,7 @@
       <sub name="deinterleave" link="gst-plugins-good-plugins-deinterleave.html"/>
       <sub name="dicetv" link="gst-plugins-good-plugins-dicetv.html"/>
       <sub name="directsoundsink" link="gst-plugins-good-plugins-directsoundsink.html"/>
+      <sub name="dtmfsrc" link="gst-plugins-good-plugins-dtmfsrc.html"/>
       <sub name="dv1394src" link="gst-plugins-good-plugins-dv1394src.html"/>
       <sub name="dvdec" link="gst-plugins-good-plugins-dvdec.html"/>
       <sub name="dvdemux" link="gst-plugins-good-plugins-dvdemux.html"/>
@@ -60,7 +61,6 @@
       <sub name="flvmux" link="gst-plugins-good-plugins-flvmux.html"/>
       <sub name="flxdec" link="gst-plugins-good-plugins-flxdec.html"/>
       <sub name="gamma" link="gst-plugins-good-plugins-gamma.html"/>
-      <sub name="gdkpixbufoverlay" link="gst-plugins-good-plugins-gdkpixbufoverlay.html"/>
       <sub name="gdkpixbufsink" link="gst-plugins-good-plugins-gdkpixbufsink.html"/>
       <sub name="goom" link="gst-plugins-good-plugins-goom.html"/>
       <sub name="goom2k1" link="gst-plugins-good-plugins-goom2k1.html"/>
@@ -113,14 +113,28 @@
       <sub name="rgvolume" link="gst-plugins-good-plugins-rgvolume.html"/>
       <sub name="rippletv" link="gst-plugins-good-plugins-rippletv.html"/>
       <sub name="rtpdec" link="gst-plugins-good-plugins-rtpdec.html"/>
+      <sub name="rtpac3depay" link="gst-plugins-good-plugins-rtpac3depay.html"/>
+      <sub name="rtpac3pay" link="gst-plugins-good-plugins-rtpac3pay.html"/>
+      <sub name="rtpamrdepay" link="gst-plugins-good-plugins-rtpamrdepay.html"/>
+      <sub name="rtpamrpay" link="gst-plugins-good-plugins-rtpamrpay.html"/>
+      <sub name="rtpbvdepay" link="gst-plugins-good-plugins-rtpbvdepay.html"/>
+      <sub name="rtpbvpay" link="gst-plugins-good-plugins-rtpbvpay.html"/>
+      <sub name="rtpL16depay" link="gst-plugins-good-plugins-rtpL16depay.html"/>
+      <sub name="rtpL16pay" link="gst-plugins-good-plugins-rtpL16pay.html"/>
       <sub name="rtpj2kpay" link="gst-plugins-good-plugins-rtpj2kpay.html"/>
       <sub name="rtpjpegpay" link="gst-plugins-good-plugins-rtpjpegpay.html"/>
+      <sub name="rtpsbcpay" link="gst-plugins-good-plugins-rtpsbcpay.html"/>
       <sub name="rtspsrc" link="gst-plugins-good-plugins-rtspsrc.html"/>
       <sub name="rtpbin" link="gst-plugins-good-plugins-rtpbin.html"/>
+      <sub name="rtpdtmfmux" link="gst-plugins-good-plugins-rtpdtmfmux.html"/>
+      <sub name="rtpdtmfsrc" link="gst-plugins-good-plugins-rtpdtmfsrc.html"/>
       <sub name="rtpjitterbuffer" link="gst-plugins-good-plugins-rtpjitterbuffer.html"/>
+      <sub name="rtpmux" link="gst-plugins-good-plugins-rtpmux.html"/>
       <sub name="rtpptdemux" link="gst-plugins-good-plugins-rtpptdemux.html"/>
       <sub name="rtpsession" link="gst-plugins-good-plugins-rtpsession.html"/>
       <sub name="rtpssrcdemux" link="gst-plugins-good-plugins-rtpssrcdemux.html"/>
+      <sub name="sbcparse" link="gst-plugins-good-plugins-sbcparse.html"/>
+      <sub name="scaletempo" link="gst-plugins-good-plugins-scaletempo.html"/>
       <sub name="shagadelictv" link="gst-plugins-good-plugins-shagadelictv.html"/>
       <sub name="shapewipe" link="gst-plugins-good-plugins-shapewipe.html"/>
       <sub name="smpte" link="gst-plugins-good-plugins-smpte.html"/>
@@ -173,6 +187,7 @@
       <sub name="debug" link="gst-plugins-good-plugins-plugin-debug.html"/>
       <sub name="deinterlace" link="gst-plugins-good-plugins-plugin-deinterlace.html"/>
       <sub name="directsound" link="gst-plugins-good-plugins-plugin-directsound.html"/>
+      <sub name="dtmf" link="gst-plugins-good-plugins-plugin-dtmf.html"/>
       <sub name="dv" link="gst-plugins-good-plugins-plugin-dv.html"/>
       <sub name="equalizer" link="gst-plugins-good-plugins-plugin-equalizer.html"/>
       <sub name="effectv" link="gst-plugins-good-plugins-plugin-effectv.html"/>
@@ -233,15 +248,15 @@
     </sub>
   </chapters>
   <functions>
-    <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-3gppmux.html#idp5897104"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-3gppmux.html#idp5560000"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-3gppmux.html#idp8034544"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-aacparse.html#idp8511120"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aacparse.html#idp8039664"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aacparse.html#idp6788592"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-3gppmux.html#idp6113488"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-3gppmux.html#idp9144864"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-3gppmux.html#idp6311024"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-aacparse.html#idp2950000"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aacparse.html#idp5578864"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aacparse.html#idp7021072"/>
     <keyword type="struct" name="struct GstAacParse" link="gst-plugins-good-plugins-aacparse.html#GstAacParse-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aasink.html#idp7550848"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aasink.html#idp9686608"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aasink.html#idp9493872"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aasink.html#idp8910368"/>
     <keyword type="struct" name="struct GstAASink" link="gst-plugins-good-plugins-aasink.html#GstAASink-struct"/>
     <keyword type="property" name="The &quot;brightness&quot; property" link="gst-plugins-good-plugins-aasink.html#GstAASink--brightness"/>
     <keyword type="property" name="The &quot;contrast&quot; property" link="gst-plugins-good-plugins-aasink.html#GstAASink--contrast"/>
@@ -256,20 +271,20 @@
     <keyword type="property" name="The &quot;width&quot; property" link="gst-plugins-good-plugins-aasink.html#GstAASink--width"/>
     <keyword type="signal" name="The &quot;frame-displayed&quot; signal" link="gst-plugins-good-plugins-aasink.html#GstAASink-frame-displayed"/>
     <keyword type="signal" name="The &quot;have-size&quot; signal" link="gst-plugins-good-plugins-aasink.html#GstAASink-have-size"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-ac3parse.html#idp8534944"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ac3parse.html#idp8729040"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ac3parse.html#idp4996480"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-ac3parse.html#idp9031760"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ac3parse.html#idp6596512"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ac3parse.html#idp8013712"/>
     <keyword type="struct" name="struct GstAc3Parse" link="gst-plugins-good-plugins-ac3parse.html#GstAc3Parse-struct"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-agingtv.html#idp6588304"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-agingtv.html#idp4944256"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-agingtv.html#idp5796816"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-agingtv.html#idp6143968"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-agingtv.html#idp5767920"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-agingtv.html#idp5807664"/>
     <keyword type="struct" name="struct GstAgingTV" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV-struct"/>
     <keyword type="property" name="The &quot;color-aging&quot; property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--color-aging"/>
     <keyword type="property" name="The &quot;dusts&quot; property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--dusts"/>
     <keyword type="property" name="The &quot;pits&quot; property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--pits"/>
     <keyword type="property" name="The &quot;scratch-lines&quot; property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--scratch-lines"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alpha.html#idp9320896"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alpha.html#idp8758864"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alpha.html#idp6082352"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alpha.html#idp5463632"/>
     <keyword type="struct" name="struct GstAlpha" link="gst-plugins-good-plugins-alpha.html#GstAlpha-struct"/>
     <keyword type="enum" name="enum GstAlphaMethod" link="gst-plugins-good-plugins-alpha.html#GstAlphaMethod"/>
     <keyword type="property" name="The &quot;alpha&quot; property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--alpha"/>
@@ -282,41 +297,41 @@
     <keyword type="property" name="The &quot;black-sensitivity&quot; property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--black-sensitivity"/>
     <keyword type="property" name="The &quot;white-sensitivity&quot; property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--white-sensitivity"/>
     <keyword type="property" name="The &quot;prefer-passthrough&quot; property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--prefer-passthrough"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alphacolor.html#idp7961536"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alphacolor.html#idp8479376"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alphacolor.html#idp9405456"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alphacolor.html#idp7048096"/>
     <keyword type="struct" name="struct GstAlphaColor" link="gst-plugins-good-plugins-alphacolor.html#GstAlphaColor-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alawdec.html#idp8768368"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alawdec.html#idp9490512"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alawdec.html#idp6826464"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alawdec.html#idp9772352"/>
     <keyword type="struct" name="struct GstALawDec" link="gst-plugins-good-plugins-alawdec.html#GstALawDec-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alawenc.html#idp7009168"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alawenc.html#idp6085760"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alawenc.html#idp6619840"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alawenc.html#idp9450112"/>
     <keyword type="struct" name="struct GstALawDec" link="gst-plugins-good-plugins-alawenc.html#GstALawDec-struct"/>
     <keyword type="struct" name="struct GstALawEnc" link="gst-plugins-good-plugins-alawenc.html#GstALawEnc"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-amrparse.html#idp6831200"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-amrparse.html#idp6784240"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-amrparse.html#idp7301456"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-amrparse.html#idp7779712"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-amrparse.html#idp8942016"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-amrparse.html#idp5623776"/>
     <keyword type="struct" name="struct GstAmrParse" link="gst-plugins-good-plugins-amrparse.html#GstAmrParse-struct"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-apedemux.html#idp7879440"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-apedemux.html#idp7679136"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-apedemux.html#idp10028064"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-apedemux.html#idp5795760"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-apedemux.html#idp1531392"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-apedemux.html#idp6644736"/>
     <keyword type="struct" name="struct GstApeDemux" link="gst-plugins-good-plugins-apedemux.html#GstApeDemux-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-apev2mux.html#idp7608704"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-apev2mux.html#idp5168992"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-apev2mux.html#idp6518416"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-apev2mux.html#idp8450720"/>
     <keyword type="struct" name="struct GstApev2Mux" link="gst-plugins-good-plugins-apev2mux.html#GstApev2Mux-struct"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-aspectratiocrop.html#idp9682640"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aspectratiocrop.html#idp9283408"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aspectratiocrop.html#idp5076464"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-aspectratiocrop.html#idp9647744"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aspectratiocrop.html#idp5724416"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aspectratiocrop.html#idp8195472"/>
     <keyword type="struct" name="struct GstAspectRatioCrop" link="gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop-struct"/>
     <keyword type="property" name="The &quot;aspect-ratio&quot; property" link="gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop--aspect-ratio"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioamplify.html#idp8415536"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioamplify.html#idp9042144"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioamplify.html#idp9664656"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioamplify.html#idp8526960"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioamplify.html#idp2988576"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioamplify.html#idp7125360"/>
     <keyword type="struct" name="struct GstAudioAmplify" link="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify-struct"/>
     <keyword type="property" name="The &quot;amplification&quot; property" link="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify--amplification"/>
     <keyword type="property" name="The &quot;clipping-method&quot; property" link="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify--clipping-method"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiochebband.html#idp7927952"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiochebband.html#idp8004864"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiochebband.html#idp5792464"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiochebband.html#idp6140608"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiochebband.html#idp10187200"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiochebband.html#idp8821472"/>
     <keyword type="struct" name="struct GstAudioChebBand" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand-struct"/>
     <keyword type="property" name="The &quot;lower-frequency&quot; property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--lower-frequency"/>
     <keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--mode"/>
@@ -324,155 +339,155 @@
     <keyword type="property" name="The &quot;ripple&quot; property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--ripple"/>
     <keyword type="property" name="The &quot;type&quot; property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--type"/>
     <keyword type="property" name="The &quot;upper-frequency&quot; property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--upper-frequency"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiocheblimit.html#idp6577120"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiocheblimit.html#idm9120"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiocheblimit.html#idp7659936"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiocheblimit.html#idp8331104"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiocheblimit.html#idp5477056"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiocheblimit.html#idp5606368"/>
     <keyword type="struct" name="struct GstAudioChebLimit" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit-struct"/>
     <keyword type="property" name="The &quot;cutoff&quot; property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--cutoff"/>
     <keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--mode"/>
     <keyword type="property" name="The &quot;poles&quot; property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--poles"/>
     <keyword type="property" name="The &quot;ripple&quot; property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--ripple"/>
     <keyword type="property" name="The &quot;type&quot; property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--type"/>
-    <keyword type="" name="Example application" link="gst-plugins-good-plugins-audiofirfilter.html#idp8477488"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiofirfilter.html#idp5956976"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiofirfilter.html#idp9251552"/>
+    <keyword type="" name="Example application" link="gst-plugins-good-plugins-audiofirfilter.html#idp9199184"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiofirfilter.html#idp7991472"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiofirfilter.html#idp10261952"/>
     <keyword type="struct" name="struct GstAudioFIRFilter" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter-struct"/>
     <keyword type="property" name="The &quot;kernel&quot; property" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter--kernel"/>
     <keyword type="property" name="The &quot;latency&quot; property" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter--latency"/>
     <keyword type="signal" name="The &quot;rate-changed&quot; signal" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter-rate-changed"/>
-    <keyword type="" name="Example application" link="gst-plugins-good-plugins-audioiirfilter.html#idp4910688"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioiirfilter.html#idp10393392"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioiirfilter.html#idp5693552"/>
+    <keyword type="" name="Example application" link="gst-plugins-good-plugins-audioiirfilter.html#idp6404928"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioiirfilter.html#idp8145488"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioiirfilter.html#idp9189216"/>
     <keyword type="struct" name="struct GstAudioIIRFilter" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter-struct"/>
     <keyword type="property" name="The &quot;a&quot; property" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter--a"/>
     <keyword type="property" name="The &quot;b&quot; property" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter--b"/>
     <keyword type="signal" name="The &quot;rate-changed&quot; signal" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter-rate-changed"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiowsincband.html#idp5244672"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiowsincband.html#idp8579952"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiowsincband.html#idp9508512"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiowsincband.html#idp7302048"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiowsincband.html#idp10726912"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiowsincband.html#idp6534160"/>
     <keyword type="struct" name="struct GstAudioWSincBand" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand-struct"/>
     <keyword type="property" name="The &quot;lower-frequency&quot; property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--lower-frequency"/>
     <keyword type="property" name="The &quot;upper-frequency&quot; property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--upper-frequency"/>
     <keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--mode"/>
     <keyword type="property" name="The &quot;window&quot; property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--window"/>
     <keyword type="property" name="The &quot;length&quot; property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--length"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiowsinclimit.html#idp6342304"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiowsinclimit.html#idm30832"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiowsinclimit.html#idp5339824"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiowsinclimit.html#idp6291792"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiowsinclimit.html#idp5754672"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiowsinclimit.html#idp7033856"/>
     <keyword type="struct" name="struct GstAudioWSincLimit" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit-struct"/>
     <keyword type="property" name="The &quot;frequency&quot; property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--frequency"/>
     <keyword type="property" name="The &quot;length&quot; property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--length"/>
     <keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--mode"/>
     <keyword type="property" name="The &quot;window&quot; property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--window"/>
     <keyword type="property" name="The &quot;cutoff&quot; property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--cutoff"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioecho.html#idp6077184"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioecho.html#idp5749168"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioecho.html#idp6029888"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioecho.html#idp6028784"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioecho.html#idp8851296"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioecho.html#idp6008928"/>
     <keyword type="struct" name="struct GstAudioEcho" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho-struct"/>
     <keyword type="property" name="The &quot;delay&quot; property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--delay"/>
     <keyword type="property" name="The &quot;feedback&quot; property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--feedback"/>
     <keyword type="property" name="The &quot;intensity&quot; property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--intensity"/>
     <keyword type="property" name="The &quot;max-delay&quot; property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--max-delay"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiodynamic.html#idp6030816"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiodynamic.html#idp6497904"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiodynamic.html#idp8507408"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiodynamic.html#idp7655024"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiodynamic.html#idp4774688"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiodynamic.html#idp6403648"/>
     <keyword type="struct" name="struct GstAudioDynamic" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic-struct"/>
     <keyword type="property" name="The &quot;characteristics&quot; property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--characteristics"/>
     <keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--mode"/>
     <keyword type="property" name="The &quot;ratio&quot; property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--ratio"/>
     <keyword type="property" name="The &quot;threshold&quot; property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--threshold"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioinvert.html#idp8563776"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioinvert.html#idp5154176"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioinvert.html#idp6566272"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioinvert.html#idp5762816"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioinvert.html#idp9076528"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioinvert.html#idp5218224"/>
     <keyword type="struct" name="struct GstAudioInvert" link="gst-plugins-good-plugins-audioinvert.html#GstAudioInvert-struct"/>
     <keyword type="property" name="The &quot;degree&quot; property" link="gst-plugins-good-plugins-audioinvert.html#GstAudioInvert--degree"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiopanorama.html#idp8410144"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiopanorama.html#idp5566016"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiopanorama.html#idp6929344"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiopanorama.html#idm11888"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiopanorama.html#idp2876928"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiopanorama.html#idp11457312"/>
     <keyword type="struct" name="struct GstAudioPanorama" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama-struct"/>
     <keyword type="property" name="The &quot;panorama&quot; property" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--panorama"/>
     <keyword type="property" name="The &quot;method&quot; property" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--method"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiokaraoke.html#idp7106688"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiokaraoke.html#idp7811584"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiokaraoke.html#idp5109584"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiokaraoke.html#idp5419792"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiokaraoke.html#idp9252656"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiokaraoke.html#idp10378896"/>
     <keyword type="struct" name="struct GstAudioKaraoke" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke-struct"/>
     <keyword type="property" name="The &quot;filter-band&quot; property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-band"/>
     <keyword type="property" name="The &quot;filter-width&quot; property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-width"/>
     <keyword type="property" name="The &quot;level&quot; property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--level"/>
     <keyword type="property" name="The &quot;mono-level&quot; property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--mono-level"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-auparse.html#idp9714160"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-auparse.html#idp9822992"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-auparse.html#idp8715792"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-auparse.html#idp9070240"/>
     <keyword type="struct" name="struct GstAuParse" link="gst-plugins-good-plugins-auparse.html#GstAuParse-struct"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autoaudiosink.html#idp5756432"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autoaudiosink.html#idp11028320"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autoaudiosink.html#idp10099616"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autoaudiosink.html#idp8750000"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autoaudiosink.html#idp8879536"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autoaudiosink.html#idp9085088"/>
     <keyword type="struct" name="GstAutoAudioSink" link="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink-struct"/>
     <keyword type="property" name="The &quot;filter-caps&quot; property" link="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--filter-caps"/>
     <keyword type="property" name="The &quot;ts-offset&quot; property" link="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--ts-offset"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autoaudiosrc.html#idp10447440"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autoaudiosrc.html#idp5559200"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autoaudiosrc.html#idp7640272"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autoaudiosrc.html#idp9138832"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autoaudiosrc.html#idp5345888"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autoaudiosrc.html#idp10553360"/>
     <keyword type="struct" name="GstAutoAudioSrc" link="gst-plugins-good-plugins-autoaudiosrc.html#GstAutoAudioSrc-struct"/>
     <keyword type="property" name="The &quot;filter-caps&quot; property" link="gst-plugins-good-plugins-autoaudiosrc.html#GstAutoAudioSrc--filter-caps"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autovideosink.html#idp10697584"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autovideosink.html#idp6525888"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autovideosink.html#idp5018176"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autovideosink.html#idp6701440"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autovideosink.html#idp3260992"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autovideosink.html#idp10730080"/>
     <keyword type="struct" name="GstAutoVideoSink" link="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink-struct"/>
     <keyword type="property" name="The &quot;filter-caps&quot; property" link="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--filter-caps"/>
     <keyword type="property" name="The &quot;ts-offset&quot; property" link="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--ts-offset"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autovideosrc.html#idp6896304"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autovideosrc.html#idp6764640"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autovideosrc.html#idp5343072"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autovideosrc.html#idp7064416"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autovideosrc.html#idp6356896"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autovideosrc.html#idp8468768"/>
     <keyword type="struct" name="GstAutoVideoSrc" link="gst-plugins-good-plugins-autovideosrc.html#GstAutoVideoSrc-struct"/>
     <keyword type="property" name="The &quot;filter-caps&quot; property" link="gst-plugins-good-plugins-autovideosrc.html#GstAutoVideoSrc--filter-caps"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-avidemux.html#idp11487216"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avidemux.html#idp11484016"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avidemux.html#idp11478240"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-avidemux.html#idp11160144"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avidemux.html#idp11157712"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avidemux.html#idp11151040"/>
     <keyword type="struct" name="GstAviDemux" link="gst-plugins-good-plugins-avidemux.html#GstAviDemux-struct"/>
-    <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-avimux.html#idp6591376"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avimux.html#idp11660240"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avimux.html#idp8881488"/>
+    <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-avimux.html#idp5273808"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avimux.html#idp5375904"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avimux.html#idp10974672"/>
     <keyword type="struct" name="struct GstAviMux" link="gst-plugins-good-plugins-avimux.html#GstAviMux-struct"/>
     <keyword type="property" name="The &quot;bigfile&quot; property" link="gst-plugins-good-plugins-avimux.html#GstAviMux--bigfile"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-avisubtitle.html#idp4891232"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avisubtitle.html#idp8992208"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avisubtitle.html#idp10442128"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-avisubtitle.html#idp7552048"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avisubtitle.html#idp5563312"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avisubtitle.html#idp9055968"/>
     <keyword type="struct" name="struct GstAviSubtitle" link="gst-plugins-good-plugins-avisubtitle.html#GstAviSubtitle-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cacasink.html#idp11117168"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cacasink.html#idp7605936"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cacasink.html#idp6840112"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cacasink.html#idp5432784"/>
     <keyword type="struct" name="struct GstCACASink" link="gst-plugins-good-plugins-cacasink.html#GstCACASink-struct"/>
     <keyword type="property" name="The &quot;anti-aliasing&quot; property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--anti-aliasing"/>
     <keyword type="property" name="The &quot;dither&quot; property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--dither"/>
     <keyword type="property" name="The &quot;screen-height&quot; property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--screen-height"/>
     <keyword type="property" name="The &quot;screen-width&quot; property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--screen-width"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cairooverlay.html#idp10694080"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cairooverlay.html#idp5589152"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cairooverlay.html#idp12083040"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cairooverlay.html#idp8612080"/>
     <keyword type="struct" name="struct GstCairoOverlay" link="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-struct"/>
     <keyword type="signal" name="The &quot;caps-changed&quot; signal" link="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-caps-changed"/>
     <keyword type="signal" name="The &quot;draw&quot; signal" link="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-draw"/>
-    <keyword type="" name="" link="gst-plugins-good-plugins-capssetter.html#idp6441952"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-capssetter.html#idp11185184"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-capssetter.html#idp7152864"/>
+    <keyword type="" name="" link="gst-plugins-good-plugins-capssetter.html#idp5938384"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-capssetter.html#idp7467344"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-capssetter.html#idp11516288"/>
     <keyword type="struct" name="struct GstCapsSetter" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter-struct"/>
     <keyword type="property" name="The &quot;caps&quot; property" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--caps"/>
     <keyword type="property" name="The &quot;join&quot; property" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--join"/>
     <keyword type="property" name="The &quot;replace&quot; property" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--replace"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-cutter.html#idp12095840"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cutter.html#idp10082784"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cutter.html#idp10208496"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-cutter.html#idp7650192"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cutter.html#idp5415856"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cutter.html#idp11312080"/>
     <keyword type="struct" name="struct GstCutter" link="gst-plugins-good-plugins-cutter.html#GstCutter-struct"/>
     <keyword type="property" name="The &quot;leaky&quot; property" link="gst-plugins-good-plugins-cutter.html#GstCutter--leaky"/>
     <keyword type="property" name="The &quot;pre-length&quot; property" link="gst-plugins-good-plugins-cutter.html#GstCutter--pre-length"/>
     <keyword type="property" name="The &quot;run-length&quot; property" link="gst-plugins-good-plugins-cutter.html#GstCutter--run-length"/>
     <keyword type="property" name="The &quot;threshold&quot; property" link="gst-plugins-good-plugins-cutter.html#GstCutter--threshold"/>
     <keyword type="property" name="The &quot;threshold-dB&quot; property" link="gst-plugins-good-plugins-cutter.html#GstCutter--threshold-dB"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-dcaparse.html#idp7561104"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dcaparse.html#idp10031984"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dcaparse.html#idp7268512"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-dcaparse.html#idp8826816"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dcaparse.html#idp11910560"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dcaparse.html#idp12608576"/>
     <keyword type="struct" name="struct GstDcaParse" link="gst-plugins-good-plugins-dcaparse.html#GstDcaParse-struct"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-deinterlace.html#idp10271408"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-deinterlace.html#idp10539760"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-deinterlace.html#idp8797088"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-deinterlace.html#idp7050240"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-deinterlace.html#idp7026704"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-deinterlace.html#idp11438208"/>
     <keyword type="struct" name="struct GstDeinterlace" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace-struct"/>
     <keyword type="property" name="The &quot;fields&quot; property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--fields"/>
     <keyword type="property" name="The &quot;method&quot; property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--method"/>
@@ -481,22 +496,26 @@
     <keyword type="property" name="The &quot;drop-orphans&quot; property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--drop-orphans"/>
     <keyword type="property" name="The &quot;ignore-obscure&quot; property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--ignore-obscure"/>
     <keyword type="property" name="The &quot;locking&quot; property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--locking"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-deinterleave.html#idp6903024"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-deinterleave.html#idp8225520"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-deinterleave.html#idp11340160"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-deinterleave.html#idp9390448"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-deinterleave.html#idp6460992"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-deinterleave.html#idp7416272"/>
     <keyword type="struct" name="struct GstDeinterleave" link="gst-plugins-good-plugins-deinterleave.html#GstDeinterleave-struct"/>
     <keyword type="property" name="The &quot;keep-positions&quot; property" link="gst-plugins-good-plugins-deinterleave.html#GstDeinterleave--keep-positions"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-dicetv.html#idp7340912"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dicetv.html#idp6547792"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dicetv.html#idp9061872"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-dicetv.html#idp11683280"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dicetv.html#idp12679024"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dicetv.html#idp2830736"/>
     <keyword type="struct" name="struct GstDiceTV" link="gst-plugins-good-plugins-dicetv.html#GstDiceTV-struct"/>
     <keyword type="property" name="The &quot;square-bits&quot; property" link="gst-plugins-good-plugins-dicetv.html#GstDiceTV--square-bits"/>
     <keyword type="signal" name="The &quot;reset&quot; signal" link="gst-plugins-good-plugins-dicetv.html#GstDiceTV-reset"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-directsoundsink.html#idp8123472"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-directsoundsink.html#idp10796912"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-directsoundsink.html#idp7641248"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-directsoundsink.html#idp6939312"/>
     <keyword type="struct" name="struct GstDirectSoundSink" link="gst-plugins-good-plugins-directsoundsink.html#GstDirectSoundSink"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dv1394src.html#idp11860048"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dv1394src.html#idp12289536"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dtmfsrc.html#idp8551232"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dtmfsrc.html#idp1524480"/>
+    <keyword type="struct" name="struct GstDTMFSrc" link="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc-struct"/>
+    <keyword type="property" name="The &quot;interval&quot; property" link="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc--interval"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dv1394src.html#idp12835888"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dv1394src.html#idp10187328"/>
     <keyword type="struct" name="struct GstDV1394Src" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src-struct"/>
     <keyword type="property" name="The &quot;channel&quot; property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--channel"/>
     <keyword type="property" name="The &quot;consecutive&quot; property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--consecutive"/>
@@ -507,23 +526,23 @@
     <keyword type="property" name="The &quot;use-avc&quot; property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--use-avc"/>
     <keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--device-name"/>
     <keyword type="signal" name="The &quot;frame-dropped&quot; signal" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src-frame-dropped"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dvdec.html#idp7097840"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dvdec.html#idp6806096"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dvdec.html#idp7706496"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dvdec.html#idp11012640"/>
     <keyword type="struct" name="struct GstDVDec" link="gst-plugins-good-plugins-dvdec.html#GstDVDec-struct"/>
     <keyword type="property" name="The &quot;clamp-chroma&quot; property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--clamp-chroma"/>
     <keyword type="property" name="The &quot;clamp-luma&quot; property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--clamp-luma"/>
     <keyword type="property" name="The &quot;drop-factor&quot; property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--drop-factor"/>
     <keyword type="property" name="The &quot;quality&quot; property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--quality"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dvdemux.html#idp6014704"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dvdemux.html#idp8210192"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dvdemux.html#idp6693648"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dvdemux.html#idp2905680"/>
     <keyword type="struct" name="struct GstDVDemux" link="gst-plugins-good-plugins-dvdemux.html#GstDVDemux-struct"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-edgetv.html#idp10149312"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-edgetv.html#idp6451872"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-edgetv.html#idp9435168"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-edgetv.html#idp3237120"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-edgetv.html#idp5831616"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-edgetv.html#idp2972464"/>
     <keyword type="struct" name="struct GstEdgeTV" link="gst-plugins-good-plugins-edgetv.html#GstEdgeTV-struct"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-10bands.html#idp13534352"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-10bands.html#idp6623344"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-10bands.html#idp10595952"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-10bands.html#idp6001760"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-10bands.html#idp12779712"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-10bands.html#idp8770448"/>
     <keyword type="struct" name="struct GstIirEqualizer10Bands" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands-struct"/>
     <keyword type="property" name="The &quot;band0&quot; property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band0"/>
     <keyword type="property" name="The &quot;band1&quot; property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band1"/>
@@ -535,24 +554,24 @@
     <keyword type="property" name="The &quot;band7&quot; property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band7"/>
     <keyword type="property" name="The &quot;band8&quot; property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band8"/>
     <keyword type="property" name="The &quot;band9&quot; property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band9"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-3bands.html#idp8977312"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-3bands.html#idp7613712"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-3bands.html#idp10507152"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-3bands.html#idp7224000"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-3bands.html#idp7630416"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-3bands.html#idp13362720"/>
     <keyword type="struct" name="struct GstIirEqualizer3Bands" link="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands-struct"/>
     <keyword type="property" name="The &quot;band0&quot; property" link="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band0"/>
     <keyword type="property" name="The &quot;band1&quot; property" link="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band1"/>
     <keyword type="property" name="The &quot;band2&quot; property" link="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band2"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-nbands.html#idp8715136"/>
-    <keyword type="" name="Example code" link="gst-plugins-good-plugins-equalizer-nbands.html#idp11969120"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-nbands.html#idp13549776"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-nbands.html#idp8585888"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-nbands.html#idp13123008"/>
+    <keyword type="" name="Example code" link="gst-plugins-good-plugins-equalizer-nbands.html#idp6721888"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-nbands.html#idp13858176"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-nbands.html#idp9036928"/>
     <keyword type="struct" name="struct GstIirEqualizerNBands" link="gst-plugins-good-plugins-equalizer-nbands.html#GstIirEqualizerNBands-struct"/>
     <keyword type="property" name="The &quot;num-bands&quot; property" link="gst-plugins-good-plugins-equalizer-nbands.html#GstIirEqualizerNBands--num-bands"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacdec.html#idp5748032"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacdec.html#idp5491696"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacdec.html#idp5857840"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacdec.html#idp7924768"/>
     <keyword type="struct" name="struct GstFlacDec" link="gst-plugins-good-plugins-flacdec.html#GstFlacDec-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacenc.html#idp11678144"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacenc.html#idp10601536"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacenc.html#idp6488240"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacenc.html#idp12478368"/>
     <keyword type="struct" name="struct GstFlacEnc" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc-struct"/>
     <keyword type="property" name="The &quot;blocksize&quot; property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--blocksize"/>
     <keyword type="property" name="The &quot;escape-coding&quot; property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--escape-coding"/>
@@ -569,141 +588,131 @@
     <keyword type="property" name="The &quot;streamable-subset&quot; property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--streamable-subset"/>
     <keyword type="property" name="The &quot;padding&quot; property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--padding"/>
     <keyword type="property" name="The &quot;seekpoints&quot; property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--seekpoints"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-flacparse.html#idp5519264"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacparse.html#idp5708976"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacparse.html#idp6401344"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-flacparse.html#idp8029600"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacparse.html#idp10572208"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacparse.html#idp7222768"/>
     <keyword type="struct" name="struct GstFlacParse" link="gst-plugins-good-plugins-flacparse.html#GstFlacParse-struct"/>
     <keyword type="property" name="The &quot;check-frame-checksums&quot; property" link="gst-plugins-good-plugins-flacparse.html#GstFlacParse--check-frame-checksums"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flactag.html#idp11324016"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flactag.html#idp4943664"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flactag.html#idp10581568"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flactag.html#idp5290368"/>
     <keyword type="struct" name="struct GstFlacTag" link="gst-plugins-good-plugins-flactag.html#GstFlacTag-struct"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-flvdemux.html#idp10202880"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flvdemux.html#idp4946496"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flvdemux.html#idp9647008"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-flvdemux.html#idp8004272"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flvdemux.html#idp10670784"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flvdemux.html#idp11370464"/>
     <keyword type="struct" name="struct GstFlvDemux" link="gst-plugins-good-plugins-flvdemux.html#GstFlvDemux-struct"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-flvmux.html#idp11059808"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flvmux.html#idp10884992"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flvmux.html#idp8050880"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-flvmux.html#idp9551008"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flvmux.html#idp9844640"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flvmux.html#idp7407392"/>
     <keyword type="struct" name="GstFlvMux" link="gst-plugins-good-plugins-flvmux.html#GstFlvMux-struct"/>
     <keyword type="property" name="The &quot;is-live&quot; property" link="gst-plugins-good-plugins-flvmux.html#GstFlvMux--is-live"/>
     <keyword type="property" name="The &quot;streamable&quot; property" link="gst-plugins-good-plugins-flvmux.html#GstFlvMux--streamable"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flxdec.html#idp6132928"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flxdec.html#idp9956224"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flxdec.html#idp5747920"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flxdec.html#idp12874384"/>
     <keyword type="struct" name="struct GstFlxDec" link="gst-plugins-good-plugins-flxdec.html#GstFlxDec-struct"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-gamma.html#idp11177984"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-gamma.html#idp10169584"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-gamma.html#idp8107280"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-gamma.html#idp8112064"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-gamma.html#idp13238736"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-gamma.html#idp11657680"/>
     <keyword type="struct" name="struct GstGamma" link="gst-plugins-good-plugins-gamma.html#GstGamma-struct"/>
     <keyword type="property" name="The &quot;gamma&quot; property" link="gst-plugins-good-plugins-gamma.html#GstGamma--gamma"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#idp6937424"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#idp6829104"/>
-    <keyword type="struct" name="struct GstGdkPixbufOverlay" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay-struct"/>
-    <keyword type="property" name="The &quot;location&quot; property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--location"/>
-    <keyword type="property" name="The &quot;offset-x&quot; property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--offset-x"/>
-    <keyword type="property" name="The &quot;offset-y&quot; property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--offset-y"/>
-    <keyword type="property" name="The &quot;overlay-height&quot; property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--overlay-height"/>
-    <keyword type="property" name="The &quot;overlay-width&quot; property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--overlay-width"/>
-    <keyword type="property" name="The &quot;relative-x&quot; property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--relative-x"/>
-    <keyword type="property" name="The &quot;relative-y&quot; property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--relative-y"/>
-    <keyword type="property" name="The &quot;alpha&quot; property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--alpha"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-gdkpixbufsink.html#idp9785856"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-gdkpixbufsink.html#idp8501904"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-gdkpixbufsink.html#idp14327136"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-gdkpixbufsink.html#idp13834800"/>
     <keyword type="struct" name="struct GstGdkPixbufSink" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink-struct"/>
     <keyword type="property" name="The &quot;last-pixbuf&quot; property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--last-pixbuf"/>
     <keyword type="property" name="The &quot;send-messages&quot; property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--send-messages"/>
     <keyword type="property" name="The &quot;post-messages&quot; property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--post-messages"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-goom.html#idp4958320"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-goom.html#idp7429952"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-goom.html#idp7878288"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-goom.html#idp8075696"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-goom.html#idp12777376"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-goom.html#idp10800704"/>
     <keyword type="struct" name="struct GstGoom" link="gst-plugins-good-plugins-goom.html#GstGoom-struct"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-goom2k1.html#idp13606816"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-goom2k1.html#idp12728480"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-goom2k1.html#idp12643216"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-goom2k1.html#idp7213136"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-goom2k1.html#idp10733168"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-goom2k1.html#idp7664208"/>
     <keyword type="struct" name="struct GstGoom" link="gst-plugins-good-plugins-goom2k1.html#GstGoom-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-hdv1394src.html#idp7639936"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-hdv1394src.html#idp8174608"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-hdv1394src.html#idp11067264"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-hdv1394src.html#idp12878352"/>
     <keyword type="struct" name="struct GstHDV1394Src" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src-struct"/>
     <keyword type="property" name="The &quot;channel&quot; property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--channel"/>
     <keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--device-name"/>
     <keyword type="property" name="The &quot;guid&quot; property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--guid"/>
     <keyword type="property" name="The &quot;port&quot; property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--port"/>
     <keyword type="property" name="The &quot;use-avc&quot; property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--use-avc"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-icydemux.html#idp7139136"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-icydemux.html#idp7666848"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-icydemux.html#idp6475520"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-icydemux.html#idp6004736"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-icydemux.html#idp12253680"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-icydemux.html#idp10512640"/>
     <keyword type="struct" name="struct GstICYDemux" link="gst-plugins-good-plugins-icydemux.html#GstICYDemux-struct"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-id3demux.html#idp7493360"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-id3demux.html#idp10613856"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-id3demux.html#idp10493200"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-id3demux.html#idp13694928"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-id3demux.html#idp8748560"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-id3demux.html#idp8987504"/>
     <keyword type="struct" name="struct GstID3Demux" link="gst-plugins-good-plugins-id3demux.html#GstID3Demux-struct"/>
     <keyword type="property" name="The &quot;prefer-v1&quot; property" link="gst-plugins-good-plugins-id3demux.html#GstID3Demux--prefer-v1"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-id3v2mux.html#idp12483360"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-id3v2mux.html#idp10105296"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-id3v2mux.html#idp10079808"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-id3v2mux.html#idp9127024"/>
     <keyword type="struct" name="struct GstId3v2Mux" link="gst-plugins-good-plugins-id3v2mux.html#GstId3v2Mux-struct"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-imagefreeze.html#idp7499600"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-imagefreeze.html#idp13402368"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-imagefreeze.html#idp7925760"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-imagefreeze.html#idp10208480"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-imagefreeze.html#idp7996512"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-imagefreeze.html#idp10727264"/>
     <keyword type="struct" name="struct GstImageFreeze" link="gst-plugins-good-plugins-imagefreeze.html#GstImageFreeze-struct"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-interleave.html#idp6613504"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-interleave.html#idp9226512"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-interleave.html#idp13999424"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-interleave.html#idp13974512"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-interleave.html#idp7736688"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-interleave.html#idp6771600"/>
     <keyword type="struct" name="struct GstInterleave" link="gst-plugins-good-plugins-interleave.html#GstInterleave-struct"/>
     <keyword type="property" name="The &quot;channel-positions&quot; property" link="gst-plugins-good-plugins-interleave.html#GstInterleave--channel-positions"/>
     <keyword type="property" name="The &quot;channel-positions-from-input&quot; property" link="gst-plugins-good-plugins-interleave.html#GstInterleave--channel-positions-from-input"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-ismlmux.html#idp7724208"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ismlmux.html#idp12796592"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ismlmux.html#idp6067232"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jackaudiosrc.html#idp13375680"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jackaudiosrc.html#idp2352432"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-ismlmux.html#idp9132352"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ismlmux.html#idp11817184"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ismlmux.html#idp9575776"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jackaudiosrc.html#idp11949296"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jackaudiosrc.html#idp13157344"/>
     <keyword type="struct" name="struct GstJackAudioSrc" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc-struct"/>
     <keyword type="property" name="The &quot;client&quot; property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client"/>
     <keyword type="property" name="The &quot;connect&quot; property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--connect"/>
     <keyword type="property" name="The &quot;server&quot; property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--server"/>
     <keyword type="property" name="The &quot;client-name&quot; property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client-name"/>
     <keyword type="property" name="The &quot;transport&quot; property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--transport"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jackaudiosink.html#idp10659552"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jackaudiosink.html#idp14328128"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jackaudiosink.html#idp14272624"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jackaudiosink.html#idp10322672"/>
     <keyword type="struct" name="struct GstJackAudioSink" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink-struct"/>
     <keyword type="property" name="The &quot;client&quot; property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client"/>
     <keyword type="property" name="The &quot;connect&quot; property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--connect"/>
     <keyword type="property" name="The &quot;server&quot; property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--server"/>
     <keyword type="property" name="The &quot;client-name&quot; property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client-name"/>
     <keyword type="property" name="The &quot;transport&quot; property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--transport"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jpegdec.html#idp11909936"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jpegdec.html#idp12104720"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jpegdec.html#idp13242736"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jpegdec.html#idp14384176"/>
     <keyword type="struct" name="struct GstJpegDec" link="gst-plugins-good-plugins-jpegdec.html#GstJpegDec-struct"/>
     <keyword type="property" name="The &quot;idct-method&quot; property" link="gst-plugins-good-plugins-jpegdec.html#GstJpegDec--idct-method"/>
     <keyword type="property" name="The &quot;max-errors&quot; property" link="gst-plugins-good-plugins-jpegdec.html#GstJpegDec--max-errors"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jpegenc.html#idp10394976"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jpegenc.html#idp13368608"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jpegenc.html#idp13076896"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jpegenc.html#idp9981728"/>
     <keyword type="struct" name="struct GstJpegEnc" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc-struct"/>
     <keyword type="property" name="The &quot;quality&quot; property" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--quality"/>
     <keyword type="property" name="The &quot;idct-method&quot; property" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--idct-method"/>
     <keyword type="signal" name="The &quot;frame-encoded&quot; signal" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc-frame-encoded"/>
-    <keyword type="" name="Example application" link="gst-plugins-good-plugins-level.html#idp12781424"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-level.html#idp14809568"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-level.html#idp12208672"/>
+    <keyword type="" name="Example application" link="gst-plugins-good-plugins-level.html#idp12940592"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-level.html#idp15841856"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-level.html#idp14134880"/>
     <keyword type="struct" name="struct GstLevel" link="gst-plugins-good-plugins-level.html#GstLevel-struct"/>
     <keyword type="property" name="The &quot;interval&quot; property" link="gst-plugins-good-plugins-level.html#GstLevel--interval"/>
     <keyword type="property" name="The &quot;message&quot; property" link="gst-plugins-good-plugins-level.html#GstLevel--message"/>
     <keyword type="property" name="The &quot;peak-falloff&quot; property" link="gst-plugins-good-plugins-level.html#GstLevel--peak-falloff"/>
     <keyword type="property" name="The &quot;peak-ttl&quot; property" link="gst-plugins-good-plugins-level.html#GstLevel--peak-ttl"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-matroskamux.html#idp14612624"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-matroskamux.html#idp14746480"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-matroskamux.html#idp14080144"/>
+    <keyword type="property" name="The &quot;post-messages&quot; property" link="gst-plugins-good-plugins-level.html#GstLevel--post-messages"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-matroskamux.html#idp14334992"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-matroskamux.html#idp9168064"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-matroskamux.html#idp12476352"/>
     <keyword type="struct" name="GstMatroskaMux" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux-struct"/>
     <keyword type="property" name="The &quot;writing-app&quot; property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--writing-app"/>
     <keyword type="property" name="The &quot;version&quot; property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--version"/>
     <keyword type="property" name="The &quot;min-index-interval&quot; property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--min-index-interval"/>
     <keyword type="property" name="The &quot;streamable&quot; property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--streamable"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-matroskademux.html#idp6127648"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-matroskademux.html#idp14822464"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-matroskademux.html#idp11362096"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-matroskademux.html#idp14644768"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-matroskademux.html#idp14025808"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-matroskademux.html#idp9089184"/>
     <keyword type="struct" name="GstMatroskaDemux" link="gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux-struct"/>
     <keyword type="property" name="The &quot;max-gap-time&quot; property" link="gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux--max-gap-time"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-mj2mux.html#idp15729024"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mj2mux.html#idp15732368"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mj2mux.html#idp14813312"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-mj2mux.html#idp14752432"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mj2mux.html#idp14755488"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mj2mux.html#idp13537184"/>
     <keyword type="struct" name="GstMJ2Mux" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux-struct"/>
     <keyword type="property" name="The &quot;dts-method&quot; property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--dts-method"/>
     <keyword type="property" name="The &quot;faststart&quot; property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--faststart"/>
@@ -714,17 +723,17 @@
     <keyword type="property" name="The &quot;presentation-time&quot; property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--presentation-time"/>
     <keyword type="property" name="The &quot;streamable&quot; property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--streamable"/>
     <keyword type="property" name="The &quot;trak-timescale&quot; property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--trak-timescale"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-monoscope.html#idp10140656"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-monoscope.html#idp5124976"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-monoscope.html#idp14417904"/>
-    <keyword type="struct" name="struct GstMonoscope" link="gst-plugins-good-plugins-monoscope.html#GstMonoscope"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-mpegaudioparse.html#idp7120048"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mpegaudioparse.html#idp8793104"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mpegaudioparse.html#idp13371872"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-monoscope.html#idp10969296"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-monoscope.html#idp13230656"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-monoscope.html#idp7571392"/>
+    <keyword type="struct" name="struct GstMonoscope" link="gst-plugins-good-plugins-monoscope.html#GstMonoscope-struct"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-mpegaudioparse.html#idp16243328"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mpegaudioparse.html#idp7740160"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mpegaudioparse.html#idp12269616"/>
     <keyword type="struct" name="struct GstMpegAudioParse" link="gst-plugins-good-plugins-mpegaudioparse.html#GstMpegAudioParse-struct"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-mp4mux.html#idp10113824"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mp4mux.html#idp15678352"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mp4mux.html#idp12626784"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-mp4mux.html#idp10367840"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mp4mux.html#idp13531488"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mp4mux.html#idp14918784"/>
     <keyword type="typedef" name="GstMP4Mux" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux"/>
     <keyword type="property" name="The &quot;dts-method&quot; property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--dts-method"/>
     <keyword type="property" name="The &quot;faststart&quot; property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--faststart"/>
@@ -735,16 +744,16 @@
     <keyword type="property" name="The &quot;presentation-time&quot; property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--presentation-time"/>
     <keyword type="property" name="The &quot;streamable&quot; property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--streamable"/>
     <keyword type="property" name="The &quot;trak-timescale&quot; property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--trak-timescale"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mulawdec.html#idp7186464"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mulawdec.html#idp8676240"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mulawdec.html#idp12608960"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mulawdec.html#idp8258704"/>
     <keyword type="struct" name="struct GstMuLawDec" link="gst-plugins-good-plugins-mulawdec.html#GstMuLawDec-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mulawenc.html#idp12881648"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mulawenc.html#idp10665888"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mulawenc.html#idp10538176"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mulawenc.html#idp5782128"/>
     <keyword type="struct" name="struct GstMuLawDec" link="gst-plugins-good-plugins-mulawenc.html#GstMuLawDec-struct"/>
     <keyword type="struct" name="struct GstMuLawEnc" link="gst-plugins-good-plugins-mulawenc.html#GstMuLawEnc"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-multifilesink.html#idp13504496"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multifilesink.html#idp12813328"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multifilesink.html#idp12915296"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-multifilesink.html#idp15687424"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multifilesink.html#idp15401296"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multifilesink.html#idp15951312"/>
     <keyword type="struct" name="struct GstMultiFileSink" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink-struct"/>
     <keyword type="enum" name="enum GstMultiFileSinkNext" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSinkNext"/>
     <keyword type="property" name="The &quot;location&quot; property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--location"/>
@@ -753,9 +762,9 @@
     <keyword type="property" name="The &quot;post-messages&quot; property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--post-messages"/>
     <keyword type="property" name="The &quot;max-files&quot; property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--max-files"/>
     <keyword type="property" name="The &quot;max-file-size&quot; property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--max-file-size"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-multifilesrc.html#idp12587536"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multifilesrc.html#idp11092496"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multifilesrc.html#idp8905968"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-multifilesrc.html#idp6917552"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multifilesrc.html#idp14719936"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multifilesrc.html#idp15852592"/>
     <keyword type="struct" name="struct GstMultiFileSrc" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc-struct"/>
     <keyword type="property" name="The &quot;caps&quot; property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--caps"/>
     <keyword type="property" name="The &quot;index&quot; property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--index"/>
@@ -763,20 +772,20 @@
     <keyword type="property" name="The &quot;loop&quot; property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--loop"/>
     <keyword type="property" name="The &quot;start-index&quot; property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--start-index"/>
     <keyword type="property" name="The &quot;stop-index&quot; property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--stop-index"/>
-    <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-multipartdemux.html#idp12937968"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multipartdemux.html#idp14320496"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multipartdemux.html#idp13713664"/>
+    <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-multipartdemux.html#idp7623712"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multipartdemux.html#idp16143408"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multipartdemux.html#idp12469088"/>
     <keyword type="struct" name="struct GstMultipartDemux" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux-struct"/>
     <keyword type="property" name="The &quot;autoscan&quot; property" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--autoscan"/>
     <keyword type="property" name="The &quot;boundary&quot; property" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--boundary"/>
     <keyword type="property" name="The &quot;single-stream&quot; property" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--single-stream"/>
-    <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-multipartmux.html#idp11933184"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multipartmux.html#idp12708992"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multipartmux.html#idp14552816"/>
+    <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-multipartmux.html#idp15404272"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multipartmux.html#idp16080048"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multipartmux.html#idp13513024"/>
     <keyword type="struct" name="struct GstMultipartMux" link="gst-plugins-good-plugins-multipartmux.html#GstMultipartMux-struct"/>
     <keyword type="property" name="The &quot;boundary&quot; property" link="gst-plugins-good-plugins-multipartmux.html#GstMultipartMux--boundary"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multiudpsink.html#idp16298464"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multiudpsink.html#idp11318592"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multiudpsink.html#idp14049856"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multiudpsink.html#idp16449600"/>
     <keyword type="struct" name="struct GstMultiUDPSink" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-struct"/>
     <keyword type="property" name="The &quot;bytes-served&quot; property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bytes-served"/>
     <keyword type="property" name="The &quot;bytes-to-serve&quot; property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bytes-to-serve"/>
@@ -796,71 +805,75 @@
     <keyword type="property" name="The &quot;used-socket&quot; property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--used-socket"/>
     <keyword type="property" name="The &quot;force-ipv4&quot; property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--force-ipv4"/>
     <keyword type="property" name="The &quot;multicast-iface&quot; property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--multicast-iface"/>
+    <keyword type="property" name="The &quot;bind-address&quot; property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bind-address"/>
+    <keyword type="property" name="The &quot;bind-port&quot; property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bind-port"/>
+    <keyword type="property" name="The &quot;socket-v6&quot; property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--socket-v6"/>
+    <keyword type="property" name="The &quot;used-socket-v6&quot; property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--used-socket-v6"/>
     <keyword type="signal" name="The &quot;add&quot; signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-add"/>
     <keyword type="signal" name="The &quot;clear&quot; signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-clear"/>
     <keyword type="signal" name="The &quot;client-added&quot; signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-client-added"/>
     <keyword type="signal" name="The &quot;client-removed&quot; signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-client-removed"/>
     <keyword type="signal" name="The &quot;get-stats&quot; signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-get-stats"/>
     <keyword type="signal" name="The &quot;remove&quot; signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-remove"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-optv.html#idp11304208"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-optv.html#idp15371936"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-optv.html#idp15748128"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-optv.html#idp14597760"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-optv.html#idp10356160"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-optv.html#idp13586944"/>
     <keyword type="struct" name="struct GstOpTV" link="gst-plugins-good-plugins-optv.html#GstOpTV-struct"/>
     <keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-optv.html#GstOpTV--mode"/>
     <keyword type="property" name="The &quot;speed&quot; property" link="gst-plugins-good-plugins-optv.html#GstOpTV--speed"/>
     <keyword type="property" name="The &quot;threshold&quot; property" link="gst-plugins-good-plugins-optv.html#GstOpTV--threshold"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-oss4sink.html#idp15609504"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-oss4sink.html#idp13595168"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-oss4sink.html#idp13517072"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-oss4sink.html#idp13642496"/>
     <keyword type="struct" name="struct GstOss4Sink" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink-struct"/>
     <keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--device"/>
     <keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--device-name"/>
     <keyword type="property" name="The &quot;mute&quot; property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--mute"/>
     <keyword type="property" name="The &quot;volume&quot; property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--volume"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-oss4src.html#idp13682592"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-oss4src.html#idp13426240"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-oss4src.html#idp13323888"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-oss4src.html#idp12021600"/>
     <keyword type="struct" name="struct GstOss4Source" link="gst-plugins-good-plugins-oss4src.html#GstOss4Source-struct"/>
     <keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-oss4src.html#GstOss4Source--device"/>
     <keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-good-plugins-oss4src.html#GstOss4Source--device-name"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osssink.html#idp5582064"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osssink.html#idp14582432"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osssink.html#idp11615264"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osssink.html#idp15269472"/>
     <keyword type="struct" name="struct GstOssSink" link="gst-plugins-good-plugins-osssink.html#GstOssSink-struct"/>
     <keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-osssink.html#GstOssSink--device"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osssrc.html#idp14571504"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osssrc.html#idp16570864"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osssrc.html#idp13759328"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osssrc.html#idp13546272"/>
     <keyword type="struct" name="struct GstOssSrc" link="gst-plugins-good-plugins-osssrc.html#GstOssSrc-struct"/>
     <keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-osssrc.html#GstOssSrc--device"/>
     <keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-good-plugins-osssrc.html#GstOssSrc--device-name"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxaudiosink.html#idp17285328"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxaudiosink.html#idp16067888"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxaudiosink.html#idp14049248"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxaudiosink.html#idp13258704"/>
     <keyword type="struct" name="struct GstOsxAudioSink" link="gst-plugins-good-plugins-osxaudiosink.html#GstOsxAudioSink"/>
     <keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-osxaudiosink.html#GstOsxAudioSink--device"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxaudiosrc.html#idp15969136"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxaudiosrc.html#idp6861472"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxaudiosrc.html#idp10918048"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxaudiosrc.html#idp13610688"/>
     <keyword type="struct" name="struct GstOsxAudioSrc" link="gst-plugins-good-plugins-osxaudiosrc.html#GstOsxAudioSrc"/>
     <keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-osxaudiosrc.html#GstOsxAudioSrc--device"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxvideosink.html#idp14782080"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxvideosink.html#idp15205696"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxvideosink.html#idp14698720"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxvideosink.html#idp12578672"/>
     <keyword type="struct" name="struct GstOSXVideoSink" link="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink"/>
     <keyword type="property" name="The &quot;embed&quot; property" link="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink--embed"/>
     <keyword type="property" name="The &quot;fullscreen&quot; property" link="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink--fullscreen"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pngdec.html#idp15865616"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pngdec.html#idp13989344"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pngdec.html#idp13556896"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pngdec.html#idp8619616"/>
     <keyword type="struct" name="struct GstPngDec" link="gst-plugins-good-plugins-pngdec.html#GstPngDec-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pngenc.html#idp9955424"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pngenc.html#idp13784928"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pngenc.html#idp16530336"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pngenc.html#idp15946880"/>
     <keyword type="struct" name="struct GstPngEnc" link="gst-plugins-good-plugins-pngenc.html#GstPngEnc-struct"/>
     <keyword type="property" name="The &quot;compression-level&quot; property" link="gst-plugins-good-plugins-pngenc.html#GstPngEnc--compression-level"/>
     <keyword type="property" name="The &quot;snapshot&quot; property" link="gst-plugins-good-plugins-pngenc.html#GstPngEnc--snapshot"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-progressreport.html#idp8942912"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-progressreport.html#idp16517664"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-progressreport.html#idp17893376"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-progressreport.html#idp14892784"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-progressreport.html#idp13902208"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-progressreport.html#idp12412560"/>
     <keyword type="struct" name="struct GstProgressReport" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport-struct"/>
     <keyword type="property" name="The &quot;silent&quot; property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--silent"/>
     <keyword type="property" name="The &quot;update-freq&quot; property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--update-freq"/>
     <keyword type="property" name="The &quot;format&quot; property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--format"/>
     <keyword type="property" name="The &quot;do-query&quot; property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--do-query"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pulsesink.html#idp16373600"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pulsesink.html#idp16191584"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pulsesink.html#idp5958720"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pulsesink.html#idp10975536"/>
     <keyword type="struct" name="struct GstPulseSink" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink-struct"/>
     <keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--device"/>
     <keyword type="property" name="The &quot;server&quot; property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--server"/>
@@ -870,8 +883,8 @@
     <keyword type="property" name="The &quot;client&quot; property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--client"/>
     <keyword type="property" name="The &quot;stream-properties&quot; property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--stream-properties"/>
     <keyword type="property" name="The &quot;client-name&quot; property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--client-name"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pulsesrc.html#idp13810464"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pulsesrc.html#idp12221552"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pulsesrc.html#idp11232992"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pulsesrc.html#idp15340320"/>
     <keyword type="struct" name="struct GstPulseSrc" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc-struct"/>
     <keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--device"/>
     <keyword type="property" name="The &quot;server&quot; property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--server"/>
@@ -882,19 +895,19 @@
     <keyword type="property" name="The &quot;source-output-index&quot; property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--source-output-index"/>
     <keyword type="property" name="The &quot;volume&quot; property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--volume"/>
     <keyword type="property" name="The &quot;client-name&quot; property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--client-name"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-quarktv.html#idp16254704"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-quarktv.html#idp16649088"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-quarktv.html#idp13710144"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-quarktv.html#idp15943808"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-quarktv.html#idp2854192"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-quarktv.html#idp14819328"/>
     <keyword type="struct" name="struct GstQuarkTV" link="gst-plugins-good-plugins-quarktv.html#GstQuarkTV-struct"/>
     <keyword type="property" name="The &quot;planes&quot; property" link="gst-plugins-good-plugins-quarktv.html#GstQuarkTV--planes"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-qtdemux.html#idp14239072"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtdemux.html#idp13815808"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtdemux.html#idp17196752"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-qtdemux.html#idp13989168"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtdemux.html#idp17079568"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtdemux.html#idp17967088"/>
     <keyword type="struct" name="struct GstQTDemux" link="gst-plugins-good-plugins-qtdemux.html#GstQTDemux-struct"/>
     <keyword type="signal" name="The &quot;got-redirect&quot; signal" link="gst-plugins-good-plugins-qtdemux.html#GstQTDemux-got-redirect"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-qtmux.html#idp16773744"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtmux.html#idp16188544"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtmux.html#idp17496992"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-qtmux.html#idp15206944"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtmux.html#idp14124592"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtmux.html#idp17541040"/>
     <keyword type="struct" name="struct GstQTMux" link="gst-plugins-good-plugins-qtmux.html#GstQTMux-struct"/>
     <keyword type="property" name="The &quot;dts-method&quot; property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--dts-method"/>
     <keyword type="property" name="The &quot;faststart&quot; property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--faststart"/>
@@ -905,9 +918,9 @@
     <keyword type="property" name="The &quot;presentation-time&quot; property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--presentation-time"/>
     <keyword type="property" name="The &quot;streamable&quot; property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--streamable"/>
     <keyword type="property" name="The &quot;trak-timescale&quot; property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--trak-timescale"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-qtmoovrecover.html#idp13361136"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtmoovrecover.html#idp14237152"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtmoovrecover.html#idp8177600"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-qtmoovrecover.html#idp13633488"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtmoovrecover.html#idp16693408"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtmoovrecover.html#idp11609568"/>
     <keyword type="struct" name="struct GstQTMoovRecover" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover-struct"/>
     <keyword type="struct" name="struct GstQTMoovRecoverClass" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecoverClass"/>
     <keyword type="function" name="gst_qt_moov_recover_get_type ()" link="gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-get-type"/>
@@ -916,37 +929,37 @@
     <keyword type="property" name="The &quot;faststart-mode&quot; property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--faststart-mode"/>
     <keyword type="property" name="The &quot;fixed-output&quot; property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--fixed-output"/>
     <keyword type="property" name="The &quot;recovery-input&quot; property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--recovery-input"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-radioactv.html#idp16246384"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-radioactv.html#idp16606416"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-radioactv.html#idp12934096"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-radioactv.html#idp16174128"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-radioactv.html#idp15350720"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-radioactv.html#idp15266832"/>
     <keyword type="struct" name="struct GstRadioacTV" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV-struct"/>
     <keyword type="property" name="The &quot;color&quot; property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--color"/>
     <keyword type="property" name="The &quot;interval&quot; property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--interval"/>
     <keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--mode"/>
     <keyword type="property" name="The &quot;trigger&quot; property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--trigger"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-revtv.html#idp15943984"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-revtv.html#idp17251312"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-revtv.html#idp15351008"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-revtv.html#idp13992896"/>
     <keyword type="struct" name="struct GstRevTV" link="gst-plugins-good-plugins-revtv.html#GstRevTV-struct"/>
     <keyword type="property" name="The &quot;delay&quot; property" link="gst-plugins-good-plugins-revtv.html#GstRevTV--delay"/>
     <keyword type="property" name="The &quot;gain&quot; property" link="gst-plugins-good-plugins-revtv.html#GstRevTV--gain"/>
     <keyword type="property" name="The &quot;linespace&quot; property" link="gst-plugins-good-plugins-revtv.html#GstRevTV--linespace"/>
-    <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-rganalysis.html#idp13509680"/>
-    <keyword type="" name="Acknowledgements" link="gst-plugins-good-plugins-rganalysis.html#idp18290544"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rganalysis.html#idp14244320"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rganalysis.html#idp16896176"/>
+    <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-rganalysis.html#idp13417664"/>
+    <keyword type="" name="Acknowledgements" link="gst-plugins-good-plugins-rganalysis.html#idp17562416"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rganalysis.html#idp17435440"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rganalysis.html#idp16218992"/>
     <keyword type="struct" name="struct GstRgAnalysis" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis-struct"/>
     <keyword type="property" name="The &quot;forced&quot; property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--forced"/>
     <keyword type="property" name="The &quot;num-tracks&quot; property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--num-tracks"/>
     <keyword type="property" name="The &quot;reference-level&quot; property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--reference-level"/>
     <keyword type="property" name="The &quot;message&quot; property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--message"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rglimiter.html#idp18680816"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rglimiter.html#idp14129792"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rglimiter.html#idp16733888"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rglimiter.html#idp17450096"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rglimiter.html#idp8747936"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rglimiter.html#idp18898784"/>
     <keyword type="struct" name="struct GstRgLimiter" link="gst-plugins-good-plugins-rglimiter.html#GstRgLimiter-struct"/>
     <keyword type="property" name="The &quot;enabled&quot; property" link="gst-plugins-good-plugins-rglimiter.html#GstRgLimiter--enabled"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rgvolume.html#idp16163360"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rgvolume.html#idp17474752"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rgvolume.html#idp15216384"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rgvolume.html#idp19002800"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rgvolume.html#idp17815248"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rgvolume.html#idp14617808"/>
     <keyword type="struct" name="struct GstRgVolume" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume-struct"/>
     <keyword type="property" name="The &quot;album-mode&quot; property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--album-mode"/>
     <keyword type="property" name="The &quot;fallback-gain&quot; property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--fallback-gain"/>
@@ -954,14 +967,14 @@
     <keyword type="property" name="The &quot;pre-amp&quot; property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp"/>
     <keyword type="property" name="The &quot;result-gain&quot; property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--result-gain"/>
     <keyword type="property" name="The &quot;target-gain&quot; property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--target-gain"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rippletv.html#idp17610640"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rippletv.html#idp7846688"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rippletv.html#idp14797408"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rippletv.html#idp18308720"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rippletv.html#idp14880432"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rippletv.html#idp17911536"/>
     <keyword type="struct" name="struct GstRippleTV" link="gst-plugins-good-plugins-rippletv.html#GstRippleTV-struct"/>
     <keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-rippletv.html#GstRippleTV--mode"/>
     <keyword type="property" name="The &quot;reset&quot; property" link="gst-plugins-good-plugins-rippletv.html#GstRippleTV--reset"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpdec.html#idp16028448"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpdec.html#idp17396624"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpdec.html#idp12935072"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpdec.html#idp14688224"/>
     <keyword type="struct" name="struct GstRTPDec" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-struct"/>
     <keyword type="property" name="The &quot;skip&quot; property" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec--skip"/>
     <keyword type="property" name="The &quot;latency&quot; property" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec--latency"/>
@@ -973,19 +986,51 @@
     <keyword type="signal" name="The &quot;on-ssrc-collision&quot; signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-collision"/>
     <keyword type="signal" name="The &quot;on-ssrc-validated&quot; signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-validated"/>
     <keyword type="signal" name="The &quot;on-timeout&quot; signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-timeout"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpj2kpay.html#idp14138448"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpj2kpay.html#idp17483024"/>
+    <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpac3depay.html#idp12935200"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpac3depay.html#idp17437136"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpac3depay.html#idp16239920"/>
+    <keyword type="struct" name="struct GstRtpAC3Depay" link="gst-plugins-good-plugins-rtpac3depay.html#GstRtpAC3Depay-struct"/>
+    <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpac3pay.html#idp13604224"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpac3pay.html#idp18588384"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpac3pay.html#idp2044304"/>
+    <keyword type="struct" name="struct GstRtpAC3Pay" link="gst-plugins-good-plugins-rtpac3pay.html#GstRtpAC3Pay-struct"/>
+    <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpamrdepay.html#idp15313200"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpamrdepay.html#idp14843760"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpamrdepay.html#idp19151408"/>
+    <keyword type="struct" name="struct GstRtpAMRDepay" link="gst-plugins-good-plugins-rtpamrdepay.html#GstRtpAMRDepay-struct"/>
+    <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpamrpay.html#idp14411824"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpamrpay.html#idp16919760"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpamrpay.html#idp16384240"/>
+    <keyword type="struct" name="struct GstRtpAMRPay" link="gst-plugins-good-plugins-rtpamrpay.html#GstRtpAMRPay-struct"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpbvdepay.html#idp13216624"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpbvdepay.html#idp18808064"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpbvpay.html#idp18820528"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpbvpay.html#idp13365888"/>
+    <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpL16depay.html#idp16065872"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpL16depay.html#idp16529344"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpL16depay.html#idp13216880"/>
+    <keyword type="struct" name="struct GstRtpL16Depay" link="gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay-struct"/>
+    <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpL16pay.html#idp17896736"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpL16pay.html#idp17547984"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpL16pay.html#idp13373584"/>
+    <keyword type="struct" name="struct GstRtpL16Pay" link="gst-plugins-good-plugins-rtpL16pay.html#GstRtpL16Pay-struct"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpj2kpay.html#idp14631712"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpj2kpay.html#idp20087776"/>
     <keyword type="struct" name="struct GstRtpJ2KPay" link="gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay-struct"/>
     <keyword type="property" name="The &quot;buffer-list&quot; property" link="gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay--buffer-list"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpjpegpay.html#idp11320240"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpjpegpay.html#idp16802592"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpjpegpay.html#idp19904880"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpjpegpay.html#idp12353120"/>
     <keyword type="struct" name="struct GstRtpJPEGPay" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay-struct"/>
     <keyword type="property" name="The &quot;quality&quot; property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--quality"/>
     <keyword type="property" name="The &quot;type&quot; property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--type"/>
     <keyword type="property" name="The &quot;buffer-list&quot; property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--buffer-list"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rtspsrc.html#idp17985952"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtspsrc.html#idp17881296"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtspsrc.html#idp17473664"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpsbcpay.html#idp20126432"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpsbcpay.html#idp15466496"/>
+    <keyword type="struct" name="struct GstRtpSBCPay" link="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay-struct"/>
+    <keyword type="property" name="The &quot;min-frames&quot; property" link="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay--min-frames"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rtspsrc.html#idp20040016"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtspsrc.html#idp20069504"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtspsrc.html#idp20207648"/>
     <keyword type="struct" name="struct GstRTSPSrc" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-struct"/>
     <keyword type="property" name="The &quot;debug&quot; property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--debug"/>
     <keyword type="property" name="The &quot;location&quot; property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--location"/>
@@ -1008,8 +1053,18 @@
     <keyword type="property" name="The &quot;do-rtsp-keep-alive&quot; property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-rtsp-keep-alive"/>
     <keyword type="property" name="The &quot;drop-on-latency&quot; property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--drop-on-latency"/>
     <keyword type="property" name="The &quot;probation&quot; property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--probation"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpbin.html#idp19980688"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpbin.html#idp20094640"/>
+    <keyword type="property" name="The &quot;udp-reconnect&quot; property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--udp-reconnect"/>
+    <keyword type="property" name="The &quot;proxy-id&quot; property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-id"/>
+    <keyword type="property" name="The &quot;proxy-pw&quot; property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-pw"/>
+    <keyword type="property" name="The &quot;multicast-iface&quot; property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--multicast-iface"/>
+    <keyword type="property" name="The &quot;ntp-sync&quot; property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-sync"/>
+    <keyword type="property" name="The &quot;use-pipeline-clock&quot; property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--use-pipeline-clock"/>
+    <keyword type="signal" name="The &quot;handle-request&quot; signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-handle-request"/>
+    <keyword type="signal" name="The &quot;on-sdp&quot; signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-on-sdp"/>
+    <keyword type="signal" name="The &quot;select-stream&quot; signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-select-stream"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtpbin.html#idp20609360"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpbin.html#idp20616976"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpbin.html#idp20624432"/>
     <keyword type="struct" name="struct GstRtpBin" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-struct"/>
     <keyword type="property" name="The &quot;do-lost&quot; property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-lost"/>
     <keyword type="property" name="The &quot;latency&quot; property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--latency"/>
@@ -1037,8 +1092,22 @@
     <keyword type="signal" name="The &quot;request-pt-map&quot; signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-pt-map"/>
     <keyword type="signal" name="The &quot;reset-sync&quot; signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-reset-sync"/>
     <keyword type="signal" name="The &quot;payload-type-change&quot; signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-payload-type-change"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpjitterbuffer.html#idp18253936"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpjitterbuffer.html#idp18216176"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpdtmfmux.html#idp18793952"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpdtmfmux.html#idp15822704"/>
+    <keyword type="struct" name="struct GstRTPDTMFMux" link="gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux-struct"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpdtmfsrc.html#idp18258736"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpdtmfsrc.html#idp15822960"/>
+    <keyword type="struct" name="struct GstRTPDTMFSrc" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc-struct"/>
+    <keyword type="property" name="The &quot;clock-rate&quot; property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--clock-rate"/>
+    <keyword type="property" name="The &quot;packet-redundancy&quot; property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--packet-redundancy"/>
+    <keyword type="property" name="The &quot;pt&quot; property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--pt"/>
+    <keyword type="property" name="The &quot;seqnum&quot; property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--seqnum"/>
+    <keyword type="property" name="The &quot;seqnum-offset&quot; property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--seqnum-offset"/>
+    <keyword type="property" name="The &quot;ssrc&quot; property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--ssrc"/>
+    <keyword type="property" name="The &quot;timestamp&quot; property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp"/>
+    <keyword type="property" name="The &quot;timestamp-offset&quot; property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp-offset"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpjitterbuffer.html#idp19576432"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpjitterbuffer.html#idp19638416"/>
     <keyword type="struct" name="struct GstRtpJitterBuffer" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-struct"/>
     <keyword type="property" name="The &quot;do-lost&quot; property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-lost"/>
     <keyword type="property" name="The &quot;drop-on-latency&quot; property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--drop-on-latency"/>
@@ -1051,15 +1120,23 @@
     <keyword type="signal" name="The &quot;on-npt-stop&quot; signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-on-npt-stop"/>
     <keyword type="signal" name="The &quot;request-pt-map&quot; signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map"/>
     <keyword type="signal" name="The &quot;set-active&quot; signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-set-active"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpptdemux.html#idp17391040"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpptdemux.html#idp15660240"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtpmux.html#idp16057568"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpmux.html#idp20164288"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpmux.html#idp14784768"/>
+    <keyword type="struct" name="struct GstRTPMux" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux-struct"/>
+    <keyword type="property" name="The &quot;seqnum&quot; property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum"/>
+    <keyword type="property" name="The &quot;seqnum-offset&quot; property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum-offset"/>
+    <keyword type="property" name="The &quot;ssrc&quot; property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--ssrc"/>
+    <keyword type="property" name="The &quot;timestamp-offset&quot; property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--timestamp-offset"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpptdemux.html#idp18704016"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpptdemux.html#idp16942048"/>
     <keyword type="struct" name="struct GstRtpPtDemux" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-struct"/>
     <keyword type="signal" name="The &quot;clear-pt-map&quot; signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-clear-pt-map"/>
     <keyword type="signal" name="The &quot;new-payload-type&quot; signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-new-payload-type"/>
     <keyword type="signal" name="The &quot;payload-type-change&quot; signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-payload-type-change"/>
     <keyword type="signal" name="The &quot;request-pt-map&quot; signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-request-pt-map"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpsession.html#idp15770464"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpsession.html#idp19111504"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpsession.html#idp19928160"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpsession.html#idp17619760"/>
     <keyword type="struct" name="struct GstRtpSession" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-struct"/>
     <keyword type="property" name="The &quot;bandwidth&quot; property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--bandwidth"/>
     <keyword type="property" name="The &quot;internal-session&quot; property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--internal-session"/>
@@ -1084,25 +1161,36 @@
     <keyword type="signal" name="The &quot;on-ssrc-validated&quot; signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-validated"/>
     <keyword type="signal" name="The &quot;on-timeout&quot; signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-timeout"/>
     <keyword type="signal" name="The &quot;request-pt-map&quot; signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpssrcdemux.html#idp18910240"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpssrcdemux.html#idp19110160"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpssrcdemux.html#idp20646592"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpssrcdemux.html#idp5489984"/>
     <keyword type="struct" name="struct GstRtpSsrcDemux" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-struct"/>
     <keyword type="signal" name="The &quot;clear-ssrc&quot; signal" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-clear-ssrc"/>
     <keyword type="signal" name="The &quot;new-ssrc-pad&quot; signal" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-new-ssrc-pad"/>
     <keyword type="signal" name="The &quot;removed-ssrc-pad&quot; signal" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-removed-ssrc-pad"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-shagadelictv.html#idp17545888"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-shagadelictv.html#idp8801728"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-shagadelictv.html#idp18966656"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-sbcparse.html#idp21845472"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-sbcparse.html#idp5823488"/>
+    <keyword type="struct" name="struct GstSbcParse" link="gst-plugins-good-plugins-sbcparse.html#GstSbcParse-struct"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-scaletempo.html#idp10147952"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-scaletempo.html#idp18367216"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-scaletempo.html#idp12706064"/>
+    <keyword type="struct" name="struct GstScaletempo" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo-struct"/>
+    <keyword type="property" name="The &quot;overlap&quot; property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--overlap"/>
+    <keyword type="property" name="The &quot;rate&quot; property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--rate"/>
+    <keyword type="property" name="The &quot;search&quot; property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--search"/>
+    <keyword type="property" name="The &quot;stride&quot; property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--stride"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-shagadelictv.html#idp12809520"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-shagadelictv.html#idp15318576"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-shagadelictv.html#idp16711568"/>
     <keyword type="struct" name="struct GstShagadelicTV" link="gst-plugins-good-plugins-shagadelictv.html#GstShagadelicTV-struct"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-shapewipe.html#idp15946928"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-shapewipe.html#idp18173456"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-shapewipe.html#idp16893152"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-shapewipe.html#idp19449664"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-shapewipe.html#idp13166800"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-shapewipe.html#idp16658832"/>
     <keyword type="struct" name="struct GstShapeWipe" link="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe-struct"/>
     <keyword type="property" name="The &quot;border&quot; property" link="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe--border"/>
     <keyword type="property" name="The &quot;position&quot; property" link="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe--position"/>
-    <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-smpte.html#idp7715312"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-smpte.html#idp16494912"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-smpte.html#idp20368032"/>
+    <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-smpte.html#idp17804352"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-smpte.html#idp20131088"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-smpte.html#idp18767456"/>
     <keyword type="struct" name="struct GstSMPTE" link="gst-plugins-good-plugins-smpte.html#GstSMPTE-struct"/>
     <keyword type="property" name="The &quot;border&quot; property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--border"/>
     <keyword type="property" name="The &quot;depth&quot; property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--depth"/>
@@ -1110,17 +1198,17 @@
     <keyword type="property" name="The &quot;type&quot; property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--type"/>
     <keyword type="property" name="The &quot;duration&quot; property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--duration"/>
     <keyword type="property" name="The &quot;invert&quot; property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--invert"/>
-    <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-smptealpha.html#idp16071904"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-smptealpha.html#idp14168832"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-smptealpha.html#idp17946560"/>
+    <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-smptealpha.html#idp20486816"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-smptealpha.html#idp21775280"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-smptealpha.html#idp19446880"/>
     <keyword type="struct" name="struct GstSMPTEAlpha" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha-struct"/>
     <keyword type="property" name="The &quot;border&quot; property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--border"/>
     <keyword type="property" name="The &quot;depth&quot; property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--depth"/>
     <keyword type="property" name="The &quot;position&quot; property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--position"/>
     <keyword type="property" name="The &quot;type&quot; property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--type"/>
     <keyword type="property" name="The &quot;invert&quot; property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--invert"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-souphttpsrc.html#idp18084912"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-souphttpsrc.html#idp16583856"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-souphttpsrc.html#idp22749904"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-souphttpsrc.html#idp22084160"/>
     <keyword type="struct" name="struct GstSoupHTTPSrc" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc-struct"/>
     <keyword type="property" name="The &quot;automatic-redirect&quot; property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--automatic-redirect"/>
     <keyword type="property" name="The &quot;cookies&quot; property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--cookies"/>
@@ -1139,9 +1227,9 @@
     <keyword type="property" name="The &quot;user-pw&quot; property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--user-pw"/>
     <keyword type="property" name="The &quot;extra-headers&quot; property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--extra-headers"/>
     <keyword type="property" name="The &quot;timeout&quot; property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--timeout"/>
-    <keyword type="" name="Example application" link="gst-plugins-good-plugins-spectrum.html#idp18246400"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-spectrum.html#idp18942304"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-spectrum.html#idp20858976"/>
+    <keyword type="" name="Example application" link="gst-plugins-good-plugins-spectrum.html#idp19280448"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-spectrum.html#idp18798464"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-spectrum.html#idp16674192"/>
     <keyword type="struct" name="struct GstSpectrum" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum-struct"/>
     <keyword type="property" name="The &quot;bands&quot; property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--bands"/>
     <keyword type="property" name="The &quot;interval&quot; property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--interval"/>
@@ -1151,8 +1239,8 @@
     <keyword type="property" name="The &quot;message-phase&quot; property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message-phase"/>
     <keyword type="property" name="The &quot;post-messages&quot; property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--post-messages"/>
     <keyword type="property" name="The &quot;multi-channel&quot; property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--multi-channel"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-speexenc.html#idp20620160"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-speexenc.html#idp19950896"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-speexenc.html#idp17926832"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-speexenc.html#idp22422992"/>
     <keyword type="struct" name="struct GstSpeexEnc" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc-struct"/>
     <keyword type="property" name="The &quot;abr&quot; property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--abr"/>
     <keyword type="property" name="The &quot;bitrate&quot; property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--bitrate"/>
@@ -1164,28 +1252,28 @@
     <keyword type="property" name="The &quot;vad&quot; property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vad"/>
     <keyword type="property" name="The &quot;vbr&quot; property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vbr"/>
     <keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--mode"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-speexdec.html#idp20449360"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-speexdec.html#idp22262960"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-speexdec.html#idp15659776"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-speexdec.html#idp15537584"/>
     <keyword type="struct" name="struct GstSpeexDec" link="gst-plugins-good-plugins-speexdec.html#GstSpeexDec-struct"/>
     <keyword type="property" name="The &quot;enh&quot; property" link="gst-plugins-good-plugins-speexdec.html#GstSpeexDec--enh"/>
-    <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-splitfilesrc.html#idp21461856"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-splitfilesrc.html#idp13129296"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-splitfilesrc.html#idp22299968"/>
+    <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-splitfilesrc.html#idp19158144"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-splitfilesrc.html#idp21955568"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-splitfilesrc.html#idp20463072"/>
     <keyword type="struct" name="struct GstSplitFileSrc" link="gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc-struct"/>
     <keyword type="property" name="The &quot;location&quot; property" link="gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc--location"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-streaktv.html#idp18916224"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-streaktv.html#idp13665040"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-streaktv.html#idp18850976"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-streaktv.html#idp6328688"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-streaktv.html#idp5730240"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-streaktv.html#idp21689312"/>
     <keyword type="struct" name="struct GstStreakTV" link="gst-plugins-good-plugins-streaktv.html#GstStreakTV-struct"/>
     <keyword type="property" name="The &quot;feedback&quot; property" link="gst-plugins-good-plugins-streaktv.html#GstStreakTV--feedback"/>
-    <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-taginject.html#idp14798864"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-taginject.html#idp8282304"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-taginject.html#idp17510512"/>
+    <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-taginject.html#idp21637472"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-taginject.html#idp18914784"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-taginject.html#idp22777376"/>
     <keyword type="struct" name="struct GstTagInject" link="gst-plugins-good-plugins-taginject.html#GstTagInject-struct"/>
     <keyword type="property" name="The &quot;tags&quot; property" link="gst-plugins-good-plugins-taginject.html#GstTagInject--tags"/>
-    <keyword type="" name="Examples" link="gst-plugins-good-plugins-udpsrc.html#idp17776512"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-udpsrc.html#idp22748688"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-udpsrc.html#idp20504736"/>
+    <keyword type="" name="Examples" link="gst-plugins-good-plugins-udpsrc.html#idp23149408"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-udpsrc.html#idp22406192"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-udpsrc.html#idp21070560"/>
     <keyword type="struct" name="struct GstUDPSrc" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc-struct"/>
     <keyword type="property" name="The &quot;caps&quot; property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--caps"/>
     <keyword type="property" name="The &quot;multicast-group&quot; property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--multicast-group"/>
@@ -1203,14 +1291,15 @@
     <keyword type="property" name="The &quot;close-socket&quot; property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--close-socket"/>
     <keyword type="property" name="The &quot;socket&quot; property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--socket"/>
     <keyword type="property" name="The &quot;used-socket&quot; property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--used-socket"/>
-    <keyword type="" name="Examples" link="gst-plugins-good-plugins-udpsink.html#idp18666624"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-udpsink.html#idp18651392"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-udpsink.html#idp14562336"/>
+    <keyword type="property" name="The &quot;bind-address&quot; property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--bind-address"/>
+    <keyword type="" name="Examples" link="gst-plugins-good-plugins-udpsink.html#idp20366480"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-udpsink.html#idp21894800"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-udpsink.html#idp21567760"/>
     <keyword type="struct" name="struct GstUDPSink" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink-struct"/>
     <keyword type="property" name="The &quot;host&quot; property" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink--host"/>
     <keyword type="property" name="The &quot;port&quot; property" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink--port"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2src.html#idp17849376"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2src.html#idp18312560"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2src.html#idp21954384"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2src.html#idp18838560"/>
     <keyword type="struct" name="struct GstV4l2Src" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-struct"/>
     <keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device"/>
     <keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device-name"/>
@@ -1225,9 +1314,12 @@
     <keyword type="property" name="The &quot;saturation&quot; property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--saturation"/>
     <keyword type="property" name="The &quot;norm&quot; property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--norm"/>
     <keyword type="property" name="The &quot;io-mode&quot; property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--io-mode"/>
+    <keyword type="property" name="The &quot;extra-controls&quot; property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--extra-controls"/>
+    <keyword type="property" name="The &quot;force-aspect-ratio&quot; property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--force-aspect-ratio"/>
+    <keyword type="property" name="The &quot;pixel-aspect-ratio&quot; property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--pixel-aspect-ratio"/>
     <keyword type="signal" name="The &quot;prepare-format&quot; signal" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-prepare-format"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2sink.html#idp18683936"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2sink.html#idp21433120"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2sink.html#idp21954112"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2sink.html#idp20516960"/>
     <keyword type="struct" name="struct GstV4l2Sink" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink-struct"/>
     <keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device"/>
     <keyword type="property" name="The &quot;device-fd&quot; property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device-fd"/>
@@ -1249,28 +1341,31 @@
     <keyword type="property" name="The &quot;min-queued-bufs&quot; property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--min-queued-bufs"/>
     <keyword type="property" name="The &quot;io-mode&quot; property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--io-mode"/>
     <keyword type="property" name="The &quot;norm&quot; property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--norm"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2radio.html#idp19141536"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2radio.html#idp19783456"/>
+    <keyword type="property" name="The &quot;extra-controls&quot; property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--extra-controls"/>
+    <keyword type="property" name="The &quot;force-aspect-ratio&quot; property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--force-aspect-ratio"/>
+    <keyword type="property" name="The &quot;pixel-aspect-ratio&quot; property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--pixel-aspect-ratio"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2radio.html#idp22480080"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2radio.html#idp19050880"/>
     <keyword type="struct" name="struct GstV4l2Radio" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio-struct"/>
     <keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--device"/>
     <keyword type="property" name="The &quot;frequency&quot; property" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--frequency"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-vertigotv.html#idp12293168"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vertigotv.html#idp22620368"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vertigotv.html#idp18046752"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-vertigotv.html#idp20200016"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vertigotv.html#idp18595744"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vertigotv.html#idp21148352"/>
     <keyword type="struct" name="struct GstVertigoTV" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV-struct"/>
     <keyword type="property" name="The &quot;speed&quot; property" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV--speed"/>
     <keyword type="property" name="The &quot;zoom-speed&quot; property" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV--zoom-speed"/>
     <keyword type="signal" name="The &quot;reset-parms&quot; signal" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV-reset-parms"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videobalance.html#idp18972416"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videobalance.html#idp20333760"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videobalance.html#idp21869040"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videobalance.html#idp18703072"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videobalance.html#idp20200176"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videobalance.html#idp16867104"/>
     <keyword type="struct" name="struct GstVideoBalance" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance-struct"/>
     <keyword type="property" name="The &quot;brightness&quot; property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--brightness"/>
     <keyword type="property" name="The &quot;contrast&quot; property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--contrast"/>
     <keyword type="property" name="The &quot;hue&quot; property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--hue"/>
     <keyword type="property" name="The &quot;saturation&quot; property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--saturation"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videobox.html#idp18217712"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videobox.html#idp18325296"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videobox.html#idp23855600"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videobox.html#idp22156112"/>
     <keyword type="struct" name="struct GstVideoBox" link="gst-plugins-good-plugins-videobox.html#GstVideoBox-struct"/>
     <keyword type="property" name="The &quot;alpha&quot; property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--alpha"/>
     <keyword type="property" name="The &quot;border-alpha&quot; property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--border-alpha"/>
@@ -1280,33 +1375,33 @@
     <keyword type="property" name="The &quot;right&quot; property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--right"/>
     <keyword type="property" name="The &quot;top&quot; property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--top"/>
     <keyword type="property" name="The &quot;autocrop&quot; property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--autocrop"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videocrop.html#idp18893904"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videocrop.html#idp15231424"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videocrop.html#idp18384720"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videocrop.html#idp20648320"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videocrop.html#idp23616976"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videocrop.html#idp18971696"/>
     <keyword type="struct" name="struct GstVideoCrop" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop-struct"/>
     <keyword type="property" name="The &quot;bottom&quot; property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--bottom"/>
     <keyword type="property" name="The &quot;left&quot; property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--left"/>
     <keyword type="property" name="The &quot;right&quot; property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--right"/>
     <keyword type="property" name="The &quot;top&quot; property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--top"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videoflip.html#idp11271056"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videoflip.html#idp22652768"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videoflip.html#idp16249840"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videoflip.html#idp23604960"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videoflip.html#idp10678912"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videoflip.html#idp23961728"/>
     <keyword type="struct" name="struct GstVideoFlip" link="gst-plugins-good-plugins-videoflip.html#GstVideoFlip-struct"/>
     <keyword type="enum" name="enum GstVideoFlipMethod" link="gst-plugins-good-plugins-videoflip.html#GstVideoFlipMethod"/>
     <keyword type="property" name="The &quot;method&quot; property" link="gst-plugins-good-plugins-videoflip.html#GstVideoFlip--method"/>
-    <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-videomixer.html#idp15866944"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videomixer.html#idp16747632"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videomixer.html#idp21685152"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vp8dec.html#idp21854144"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vp8dec.html#idp16422064"/>
+    <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-videomixer.html#idp19230608"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videomixer.html#idp16547136"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videomixer.html#idp23241472"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vp8dec.html#idp22516320"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vp8dec.html#idp21321776"/>
     <keyword type="struct" name="struct GstVP8Dec" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec-struct"/>
     <keyword type="property" name="The &quot;deblocking-level&quot; property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--deblocking-level"/>
     <keyword type="property" name="The &quot;noise-level&quot; property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--noise-level"/>
     <keyword type="property" name="The &quot;post-processing&quot; property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--post-processing"/>
     <keyword type="property" name="The &quot;post-processing-flags&quot; property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--post-processing-flags"/>
     <keyword type="property" name="The &quot;threads&quot; property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--threads"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vp8enc.html#idp23900400"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vp8enc.html#idp23907808"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vp8enc.html#idp25147936"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vp8enc.html#idp25155344"/>
     <keyword type="struct" name="struct GstVP8Enc" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc-struct"/>
     <keyword type="property" name="The &quot;arnr-maxframes&quot; property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-maxframes"/>
     <keyword type="property" name="The &quot;arnr-strength&quot; property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-strength"/>
@@ -1366,21 +1461,23 @@
     <keyword type="property" name="The &quot;twopass-vbr-minsection&quot; property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-minsection"/>
     <keyword type="property" name="The &quot;undershoot&quot; property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--undershoot"/>
     <keyword type="property" name="The &quot;vertical-scaling-mode&quot; property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--vertical-scaling-mode"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-warptv.html#idp23811936"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-warptv.html#idp9071744"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-warptv.html#idp19689024"/>
+    <keyword type="property" name="The &quot;timebase&quot; property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--timebase"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-warptv.html#idp21797648"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-warptv.html#idp23932944"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-warptv.html#idp23695440"/>
     <keyword type="struct" name="struct GstWarpTV" link="gst-plugins-good-plugins-warptv.html#GstWarpTV-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavenc.html#idp19055744"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavenc.html#idp22133408"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-wavenc.html#idp24056928"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavenc.html#idp24974896"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavenc.html#idp7251776"/>
     <keyword type="struct" name="struct GstWavEnc" link="gst-plugins-good-plugins-wavenc.html#GstWavEnc-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-waveformsink.html#idp15373696"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-waveformsink.html#idp22706464"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-waveformsink.html#idp25057792"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-waveformsink.html#idp23705008"/>
     <keyword type="struct" name="struct GstWaveFormSink" link="gst-plugins-good-plugins-waveformsink.html#GstWaveFormSink"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackdec.html#idp16756368"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackdec.html#idp16438000"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackdec.html#idp2869728"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackdec.html#idp9508704"/>
     <keyword type="struct" name="struct GstWavpackDec" link="gst-plugins-good-plugins-wavpackdec.html#GstWavpackDec-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackenc.html#idp12688160"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackenc.html#idp19750368"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackenc.html#idp20018592"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackenc.html#idp24230080"/>
     <keyword type="struct" name="struct GstWavpackEnc" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc-struct"/>
     <keyword type="property" name="The &quot;bitrate&quot; property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--bitrate"/>
     <keyword type="property" name="The &quot;bits-per-sample&quot; property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--bits-per-sample"/>
@@ -1389,21 +1486,21 @@
     <keyword type="property" name="The &quot;joint-stereo-mode&quot; property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--joint-stereo-mode"/>
     <keyword type="property" name="The &quot;md5&quot; property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--md5"/>
     <keyword type="property" name="The &quot;mode&quot; property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--mode"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-wavpackparse.html#idp18042816"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackparse.html#idp22702560"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackparse.html#idp20437536"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-wavpackparse.html#idp24250064"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackparse.html#idp24764048"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackparse.html#idp6615088"/>
     <keyword type="struct" name="struct GstWavpackParse" link="gst-plugins-good-plugins-wavpackparse.html#GstWavpackParse-struct"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-wavparse.html#idp22595584"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavparse.html#idp23857184"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavparse.html#idp20482944"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-wavparse.html#idp21086512"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavparse.html#idp19290016"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavparse.html#idp17485552"/>
     <keyword type="struct" name="struct GstWavParse" link="gst-plugins-good-plugins-wavparse.html#GstWavParse-struct"/>
     <keyword type="property" name="The &quot;ignore-length&quot; property" link="gst-plugins-good-plugins-wavparse.html#GstWavParse--ignore-length"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-webmmux.html#idp21656528"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-webmmux.html#idp21654688"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-webmmux.html#idp21958912"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-webmmux.html#idp24063968"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-webmmux.html#idp22072640"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-webmmux.html#idp18408928"/>
     <keyword type="struct" name="struct GstWebMMux" link="gst-plugins-good-plugins-webmmux.html#GstWebMMux-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ximagesrc.html#idp23238272"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ximagesrc.html#idp22667888"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ximagesrc.html#idp23832208"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ximagesrc.html#idp22572480"/>
     <keyword type="struct" name="struct GstXImageSrc" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc-struct"/>
     <keyword type="property" name="The &quot;display-name&quot; property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--display-name"/>
     <keyword type="property" name="The &quot;screen-num&quot; property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--screen-num"/>
@@ -1416,9 +1513,9 @@
     <keyword type="property" name="The &quot;remote&quot; property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--remote"/>
     <keyword type="property" name="The &quot;xid&quot; property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--xid"/>
     <keyword type="property" name="The &quot;xname&quot; property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--xname"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-y4menc.html#idp22269456"/>
-    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-y4menc.html#idp21858000"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-y4menc.html#idp18914368"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-y4menc.html#idp23969600"/>
+    <keyword type="" name="Element Information" link="gst-plugins-good-plugins-y4menc.html#idp23091712"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-y4menc.html#idp6050048"/>
     <keyword type="struct" name="struct GstY4mEncode" link="gst-plugins-good-plugins-y4menc.html#GstY4mEncode-struct"/>
     <keyword type="struct" name="struct GstIirEqualizer" link="GstIirEqualizer.html#GstIirEqualizer-struct"/>
     <keyword type="constant" name="ALPHA_METHOD_SET" link="gst-plugins-good-plugins-alpha.html#ALPHA-METHOD-SET:CAPS"/>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html b/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html
index bea2cac60..9f434952a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>3gppmux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="ch01.html" title="gst-plugins-good Elements">
@@ -96,7 +96,7 @@ presentation-timestamp.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp5897104"></a><h3>Example pipelines</h3>
+<a name="idp6113488"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -119,9 +119,12 @@ Documentation last reviewed on 2011-04-21
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp5560000"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9144864"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -142,9 +145,12 @@ Documentation last reviewed on 2011-04-21
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8034544"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6311024"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -176,8 +182,11 @@ Documentation last reviewed on 2011-04-21
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -209,8 +218,11 @@ Documentation last reviewed on 2011-04-21
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-GstVideoMixerPad.html b/docs/plugins/html/gst-plugins-good-plugins-GstVideoMixerPad.html
index 6cf38a6eb..487d88505 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-GstVideoMixerPad.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-GstVideoMixerPad.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstVideoMixerPad</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch03.html" title="gst-plugins-good Base Classes">
 <link rel="prev" href="GstIirEqualizer.html" title="GstIirEqualizer">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-aacparse.html b/docs/plugins/html/gst-plugins-good-plugins-aacparse.html
index d8afd6971..e02dc73a6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-aacparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-aacparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>aacparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-3gppmux.html" title="3gppmux">
@@ -66,7 +66,7 @@ can also estimate playback position and clip duration.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8511120"></a><h3>Example launch line</h3>
+<a name="idp2950000"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -84,9 +84,12 @@ can also estimate playback position and clip duration.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8039664"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5578864"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -107,9 +110,12 @@ can also estimate playback position and clip duration.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6788592"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7021072"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -129,8 +135,11 @@ can also estimate playback position and clip duration.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-aasink.html b/docs/plugins/html/gst-plugins-good-plugins-aasink.html
index f676ac38d..7b83699ab 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-aasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-aasink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>aasink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-aacparse.html" title="aacparse">
@@ -86,9 +86,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7550848"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9493872"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -109,9 +112,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9686608"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8910368"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -233,8 +239,11 @@
                                                         <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>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstaasink</code></em> :</span></p></td>
@@ -256,8 +265,11 @@
                                                         <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>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstaasink</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html b/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html
index 5deb7f1fa..561447967 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ac3parse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-aasink.html" title="aasink">
@@ -61,7 +61,7 @@ This is an AC3 parser.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8534944"></a><h3>Example launch line</h3>
+<a name="idp9031760"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -79,9 +79,12 @@ This is an AC3 parser.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8729040"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6596512"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -102,9 +105,12 @@ This is an AC3 parser.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp4996480"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8013712"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -130,10 +136,17 @@ This is an AC3 parser.
 <td><p><span class="term"></span></p></td>
 <td> audio/ac3</td>
 </tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-private1-ac3</td>
+</tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-agingtv.html b/docs/plugins/html/gst-plugins-good-plugins-agingtv.html
index dcb4200c3..9260dcef7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-agingtv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-agingtv.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>agingtv</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-ac3parse.html" title="ac3parse">
@@ -74,7 +74,7 @@ scratches and dust.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6588304"></a><h3>Example launch line</h3>
+<a name="idp6143968"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -92,9 +92,12 @@ scratches and dust.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp4944256"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5767920"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -115,9 +118,12 @@ scratches and dust.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5796816"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5807664"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -137,8 +143,11 @@ scratches and dust.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-alawdec.html b/docs/plugins/html/gst-plugins-good-plugins-alawdec.html
index b67a660e0..8ce4ef002 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-alawdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-alawdec.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>alawdec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-alphacolor.html" title="alphacolor">
@@ -60,9 +60,12 @@ This element decodes alaw audio. Alaw coding is also known as G.711.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8768368"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6826464"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -83,9 +86,12 @@ This element decodes alaw audio. Alaw coding is also known as G.711.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9490512"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9772352"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -105,8 +111,11 @@ This element decodes alaw audio. Alaw coding is also known as G.711.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-alawenc.html b/docs/plugins/html/gst-plugins-good-plugins-alawenc.html
index e1141bcaf..cc0a3d31c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-alawenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-alawenc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>alawenc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-alawdec.html" title="alawdec">
@@ -49,9 +49,12 @@ This element encode alaw audio. Alaw coding is also known as G.711.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7009168"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6619840"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -72,9 +75,12 @@ This element encode alaw audio. Alaw coding is also known as G.711.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6085760"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9450112"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -94,8 +100,11 @@ This element encode alaw audio. Alaw coding is also known as G.711.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-alpha.html b/docs/plugins/html/gst-plugins-good-plugins-alpha.html
index 8c371848c..b7f641b84 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-alpha.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-alpha.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>alpha</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-agingtv.html" title="agingtv">
@@ -105,9 +105,12 @@ a snow video stream.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9320896"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6082352"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -130,9 +133,12 @@ Jan Schmidt &lt;thaytan@noraisin.net&gt;</td>
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8758864"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5463632"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -152,8 +158,11 @@ Jan Schmidt &lt;thaytan@noraisin.net&gt;</td>
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -196,8 +205,11 @@ Jan Schmidt &lt;thaytan@noraisin.net&gt;</td>
   ALPHA_METHOD_CUSTOM,
 } GstAlphaMethod;
 </pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="ALPHA-METHOD-SET:CAPS"></a><span class="term"><code class="literal">ALPHA_METHOD_SET</code></span></p></td>
@@ -259,7 +271,7 @@ Jan Schmidt &lt;thaytan@noraisin.net&gt;</td>
 <div class="refsect2">
 <a name="GstAlpha--target-b"></a><h3>The <code class="literal">"target-b"</code> property</h3>
 <pre class="programlisting">  "target-b"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write</pre>
-<p>The Blue target.</p>
+<p>The blue color value for custom RGB chroma keying.</p>
 <p>Allowed values: &lt;= 255</p>
 <p>Default value: 0</p>
 </div>
@@ -267,7 +279,7 @@ Jan Schmidt &lt;thaytan@noraisin.net&gt;</td>
 <div class="refsect2">
 <a name="GstAlpha--target-g"></a><h3>The <code class="literal">"target-g"</code> property</h3>
 <pre class="programlisting">  "target-g"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write</pre>
-<p>The Green target.</p>
+<p>The green color value for custom RGB chroma keying.</p>
 <p>Allowed values: &lt;= 255</p>
 <p>Default value: 255</p>
 </div>
@@ -275,7 +287,7 @@ Jan Schmidt &lt;thaytan@noraisin.net&gt;</td>
 <div class="refsect2">
 <a name="GstAlpha--target-r"></a><h3>The <code class="literal">"target-r"</code> property</h3>
 <pre class="programlisting">  "target-r"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write</pre>
-<p>The Red target.</p>
+<p>The red color value for custom RGB chroma keying.</p>
 <p>Allowed values: &lt;= 255</p>
 <p>Default value: 0</p>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html b/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html
index a061cdacc..6e6283874 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>alphacolor</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-alpha.html" title="alpha">
@@ -82,9 +82,12 @@ Sample pipeline:
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7961536"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9405456"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -105,9 +108,12 @@ Sample pipeline:
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8479376"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7048096"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -127,8 +133,11 @@ Sample pipeline:
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-amrparse.html b/docs/plugins/html/gst-plugins-good-plugins-amrparse.html
index d36b18ef6..4a68224b7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-amrparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-amrparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>amrparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-alawenc.html" title="alawenc">
@@ -62,7 +62,7 @@ formats.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6831200"></a><h3>Example launch line</h3>
+<a name="idp7779712"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -80,9 +80,12 @@ formats.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6784240"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8942016"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -103,9 +106,12 @@ formats.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp7301456"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5623776"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -129,8 +135,11 @@ formats.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -167,15 +176,18 @@ formats.
 <p>
 The opaque GstAacParse data structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody></tbody>
 </table></div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-amrparse.see-also"></a><h2>See Also</h2>
-<span class="type">GstAmrnbDec</span>, <span class="type">GstAmrnbEnc</span>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-ugly/html/gst-plugins-ugly-plugins-amrnbdec.html#GstAmrnbDec"><span class="type">GstAmrnbDec</span></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-ugly/html/gst-plugins-ugly-plugins-amrnbenc.html#GstAmrnbEnc"><span class="type">GstAmrnbEnc</span></a>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-apedemux.html b/docs/plugins/html/gst-plugins-good-plugins-apedemux.html
index 6cc64a5bd..1110b4fc6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-apedemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-apedemux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>apedemux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-amrparse.html" title="amrparse">
@@ -72,7 +72,7 @@ information.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7879440"></a><h3>Example launch line</h3>
+<a name="idp5795760"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -92,9 +92,12 @@ the appropriate mime type set on buffers produced from apedemux.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7679136"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp1531392"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -115,9 +118,12 @@ the appropriate mime type set on buffers produced from apedemux.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10028064"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6644736"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -137,8 +143,11 @@ the appropriate mime type set on buffers produced from apedemux.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html b/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html
index b3aad5567..a967c89dd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>apev2mux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-apedemux.html" title="apedemux">
@@ -66,9 +66,12 @@ GstApev2Mux implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7608704"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6518416"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -89,9 +92,12 @@ GstApev2Mux implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5168992"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8450720"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -111,8 +117,11 @@ GstApev2Mux implements
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html b/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html
index 8adf9c0b1..94dec5842 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>aspectratiocrop</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-apev2mux.html" title="apev2mux">
@@ -81,7 +81,7 @@ in pass-through mode.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp9682640"></a><h3>Example launch line</h3>
+<a name="idp9647744"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -99,9 +99,12 @@ in pass-through mode.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9283408"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5724416"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -122,9 +125,12 @@ in pass-through mode.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5076464"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8195472"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -140,12 +146,15 @@ in pass-through mode.
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, NV12, NV21, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -161,7 +170,7 @@ in pass-through mode.
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, NV12, NV21, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html b/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html
index e75b2044a..7cd4f94c7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audioamplify</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-aspectratiocrop.html" title="aspectratiocrop">
@@ -72,7 +72,7 @@ The difference between the clipping modes is best evaluated by testing.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8415536"></a><h3>Example launch line</h3>
+<a name="idp8526960"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -94,9 +94,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9042144"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp2988576"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -117,9 +120,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9664656"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7125360"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -139,8 +145,11 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html b/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html
index 3ddb0f9b1..31fe063d7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiochebband</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audioamplify.html" title="audioamplify">
@@ -103,7 +103,7 @@ a cutoff frequency at a quarter of the sampling rate.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7927952"></a><h3>Example launch line</h3>
+<a name="idp6140608"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -125,9 +125,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8004864"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10187200"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -148,9 +151,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5792464"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8821472"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -170,8 +176,11 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html b/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html
index f25c9315f..a4d63c6bc 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiocheblimit</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiochebband.html" title="audiochebband">
@@ -100,7 +100,7 @@ a cutoff frequency at a quarter of the sampling rate.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6577120"></a><h3>Example launch line</h3>
+<a name="idp8331104"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -122,9 +122,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idm9120"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5477056"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -145,9 +148,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp7659936"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5606368"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -167,8 +173,11 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html b/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html
index c940a2284..770d84139 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiodynamic</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audioecho.html" title="audioecho">
@@ -76,7 +76,7 @@ soft-knee mode is selected the ratio is applied smoothly.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6030816"></a><h3>Example launch line</h3>
+<a name="idp7655024"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -98,9 +98,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6497904"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp4774688"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -121,9 +124,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8507408"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6403648"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -143,8 +149,11 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioecho.html b/docs/plugins/html/gst-plugins-good-plugins-audioecho.html
index ff57f9210..0d8b8fba2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioecho.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioecho.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audioecho</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiowsinclimit.html" title="audiowsinclimit">
@@ -84,7 +84,7 @@ state and will be set to the current delay by default.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6077184"></a><h3>Example launch line</h3>
+<a name="idp6028784"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -104,9 +104,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp5749168"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8851296"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -127,9 +130,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6029888"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6008928"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -149,8 +155,11 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html b/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html
index e9b078cef..e2c089f0e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiofirfilter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiocheblimit.html" title="audiocheblimit">
@@ -95,7 +95,7 @@ FIR filters as they're depending on the sampling rate.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8477488"></a><h3>Example application</h3>
+<a name="idp9199184"></a><h3>Example application</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -280,8 +280,8 @@ FIR filters as they're depending on the sampling rate.
 <span class="comment"> *</span>
 <span class="comment"> * You should have received a copy of the GNU Library General Public</span>
 <span class="comment"> * License along with this library; if not, write to the</span>
-<span class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</span>
-<span class="comment"> * Boston, MA 02111-1307, USA.</span>
+<span class="comment"> * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,</span>
+<span class="comment"> * Boston, MA 02110-1301, USA.</span>
 <span class="comment"> */</span>
 
 <span class="comment">/* This small sample application creates a bandpass FIR filter</span>
@@ -441,9 +441,12 @@ gint
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp5956976"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7991472"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -464,9 +467,12 @@ gint
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9251552"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10261952"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -486,8 +492,11 @@ gint
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -549,8 +558,11 @@ Will be emitted when the sampling rate changes. The callbacks
 will be called from the streaming thread and processing will
 stop until the event is handled.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html b/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html
index 0112e2f39..8f73daeaf 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audioiirfilter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiofirfilter.html" title="audiofirfilter">
@@ -91,7 +91,7 @@ IIR filters as they're depending on the sampling rate.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp4910688"></a><h3>Example application</h3>
+<a name="idp6404928"></a><h3>Example application</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -252,8 +252,8 @@ IIR filters as they're depending on the sampling rate.
 <span class="comment"> *</span>
 <span class="comment"> * You should have received a copy of the GNU Library General Public</span>
 <span class="comment"> * License along with this library; if not, write to the</span>
-<span class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</span>
-<span class="comment"> * Boston, MA 02111-1307, USA.</span>
+<span class="comment"> * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,</span>
+<span class="comment"> * Boston, MA 02110-1301, USA.</span>
 <span class="comment"> */</span>
 
 <span class="comment">/* This small sample application creates a lowpass IIR filter</span>
@@ -389,9 +389,12 @@ gint
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10393392"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8145488"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -412,9 +415,12 @@ gint
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5693552"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9189216"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -434,8 +440,11 @@ gint
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -496,8 +505,11 @@ Will be emitted when the sampling rate changes. The callbacks
 will be called from the streaming thread and processing will
 stop until the event is handled.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html b/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html
index 04a1c8adb..0569b2780 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audioinvert</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiodynamic.html" title="audiodynamic">
@@ -72,7 +72,7 @@ Creating a stereo sample from a mono source, with one channel inverted produces
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8563776"></a><h3>Example launch line</h3>
+<a name="idp5762816"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -94,9 +94,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp5154176"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9076528"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -117,9 +120,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6566272"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5218224"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -139,8 +145,11 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html b/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html
index ff6241c05..69e5fc0b4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiokaraoke</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiopanorama.html" title="audiopanorama">
@@ -74,7 +74,7 @@ This plugin is useful for karaoke applications.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7106688"></a><h3>Example launch line</h3>
+<a name="idp5419792"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -92,9 +92,12 @@ This plugin is useful for karaoke applications.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7811584"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9252656"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -115,9 +118,12 @@ This plugin is useful for karaoke applications.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5109584"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10378896"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -137,8 +143,11 @@ This plugin is useful for karaoke applications.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html b/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html
index c735f7d35..a9f382735 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiopanorama</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audioinvert.html" title="audioinvert">
@@ -71,7 +71,7 @@ which keeps the same perceived loudness, and a simple panning method that just c
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8410144"></a><h3>Example launch line</h3>
+<a name="idm11888"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -95,9 +95,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp5566016"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp2876928"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -118,9 +121,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6929344"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11457312"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -136,16 +142,15 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)1, layout=(string)interleaved</td>
-</tr>
-<tr>
-<td><p><span class="term"></span></p></td>
-<td> audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003</td>
+<td>audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ], layout=(string)interleaved</td>
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -161,7 +166,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>audio/x-raw, format=(string){ S32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003</td>
+<td>audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)2, layout=(string)interleaved</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html b/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html
index a2c175fa3..a8a5cfd10 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiowsincband</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audioiirfilter.html" title="audioiirfilter">
@@ -83,7 +83,7 @@ disadvantage is the much slower execution time with larger kernels.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp5244672"></a><h3>Example launch line</h3>
+<a name="idp7302048"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -105,9 +105,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8579952"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10726912"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -128,9 +131,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9508512"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6534160"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -150,8 +156,11 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html b/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html
index 61bc99533..bd58ec645 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiowsinclimit</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiowsincband.html" title="audiowsincband">
@@ -83,7 +83,7 @@ disadvantage is the much slower execution time with larger kernels.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6342304"></a><h3>Example launch line</h3>
+<a name="idp6291792"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -91,9 +91,9 @@ disadvantage is the much slower execution time with larger kernels.
         <td class="listing_lines" align="right"><pre>1
 2
 3</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> audiotestsrc freq<span class="gtkdoc opt">=</span><span class="number">1500</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audiowsinclimit mode<span class="gtkdoc opt">=</span>low<span class="gtkdoc opt">-</span>pass frequency<span class="gtkdoc opt">=</span><span class="number">1000</span> length<span class="gtkdoc opt">=</span><span class="number">501</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink
-gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span><span class="string">&quot;melo1.ogg&quot;</span> <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audiowsinclimit mode<span class="gtkdoc opt">=</span>high<span class="gtkdoc opt">-</span>pass frequency<span class="gtkdoc opt">=</span><span class="number">15000</span> length<span class="gtkdoc opt">=</span><span class="number">501</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink
-gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> audiotestsrc wave<span class="gtkdoc opt">=</span>white<span class="gtkdoc opt">-</span>noise <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audiowsinclimit mode<span class="gtkdoc opt">=</span>low<span class="gtkdoc opt">-</span>pass frequency<span class="gtkdoc opt">=</span><span class="number">1000</span> length<span class="gtkdoc opt">=</span><span class="number">10001</span> window<span class="gtkdoc opt">=</span>blackman <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> audiotestsrc freq<span class="gtkdoc opt">=</span><span class="number">1500</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audiowsinclimit mode<span class="gtkdoc opt">=</span>low<span class="gtkdoc opt">-</span>pass cutoff<span class="gtkdoc opt">=</span><span class="number">1000</span> length<span class="gtkdoc opt">=</span><span class="number">501</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink
+gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span><span class="string">&quot;melo1.ogg&quot;</span> <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audiowsinclimit mode<span class="gtkdoc opt">=</span>high<span class="gtkdoc opt">-</span>pass cutoff<span class="gtkdoc opt">=</span><span class="number">15000</span> length<span class="gtkdoc opt">=</span><span class="number">501</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink
+gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> audiotestsrc wave<span class="gtkdoc opt">=</span>white<span class="gtkdoc opt">-</span>noise <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audiowsinclimit mode<span class="gtkdoc opt">=</span>low<span class="gtkdoc opt">-</span>pass cutoff<span class="gtkdoc opt">=</span><span class="number">1000</span> length<span class="gtkdoc opt">=</span><span class="number">10001</span> window<span class="gtkdoc opt">=</span>blackman <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink</pre></td>
       </tr>
     </tbody>
   </table>
@@ -105,9 +105,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idm30832"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5754672"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -128,9 +131,12 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5339824"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7033856"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -150,8 +156,11 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-auparse.html b/docs/plugins/html/gst-plugins-good-plugins-auparse.html
index 0892214a9..639254076 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-auparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-auparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>auparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiokaraoke.html" title="audiokaraoke">
@@ -60,9 +60,12 @@ Parses .au files mostly originating from sun os based computers.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9714160"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8715792"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -83,9 +86,12 @@ Parses .au files mostly originating from sun os based computers.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9822992"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9070240"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -105,8 +111,11 @@ Parses .au files mostly originating from sun os based computers.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html
index 676e81ff5..87da569f8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>autoaudiosink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-auparse.html" title="auparse">
@@ -81,7 +81,7 @@ of their element information, and also have a non-zero autoplugging rank.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp5756432"></a><h3>Example launch line</h3>
+<a name="idp8750000"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -99,9 +99,12 @@ of their element information, and also have a non-zero autoplugging rank.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11028320"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8879536"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -122,9 +125,12 @@ of their element information, and also have a non-zero autoplugging rank.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10099616"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9085088"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html
index 578c2c1c6..e314efc6a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>autoaudiosrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-autoaudiosink.html" title="autoaudiosink">
@@ -80,7 +80,7 @@ of their element information, and also have a non-zero autoplugging rank.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10447440"></a><h3>Example launch line</h3>
+<a name="idp9138832"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -98,9 +98,12 @@ of their element information, and also have a non-zero autoplugging rank.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp5559200"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5345888"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -121,9 +124,12 @@ of their element information, and also have a non-zero autoplugging rank.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp7640272"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10553360"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html b/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html
index 9b4fbe970..d3b19882a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>autovideosink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-autoaudiosrc.html" title="autoaudiosrc">
@@ -81,7 +81,7 @@ of their element information, and also have a non-zero autoplugging rank.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10697584"></a><h3>Example launch line</h3>
+<a name="idp6701440"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -99,9 +99,12 @@ of their element information, and also have a non-zero autoplugging rank.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6525888"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp3260992"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -122,9 +125,12 @@ of their element information, and also have a non-zero autoplugging rank.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5018176"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10730080"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html b/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html
index a8bf0e039..cfab3a6d3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>autovideosrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-autovideosink.html" title="autovideosink">
@@ -80,7 +80,7 @@ of their element information, and also have a non-zero autoplugging rank.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6896304"></a><h3>Example launch line</h3>
+<a name="idp7064416"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -98,9 +98,12 @@ of their element information, and also have a non-zero autoplugging rank.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6764640"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6356896"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -121,9 +124,12 @@ of their element information, and also have a non-zero autoplugging rank.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5343072"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8468768"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-avidemux.html b/docs/plugins/html/gst-plugins-good-plugins-avidemux.html
index fdde78149..28d74fb08 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-avidemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-avidemux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>avidemux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-autovideosrc.html" title="autovideosrc">
@@ -64,7 +64,7 @@ capabilities of the upstream elements.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp11487216"></a><h3>Example launch line</h3>
+<a name="idp11160144"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -88,9 +88,12 @@ Last reviewed on 2006-12-29 (0.10.6)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11484016"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11157712"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -111,9 +114,12 @@ Last reviewed on 2006-12-29 (0.10.6)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11478240"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11151040"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -133,8 +139,11 @@ Last reviewed on 2006-12-29 (0.10.6)
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -262,8 +271,11 @@ Last reviewed on 2006-12-29 (0.10.6)
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -283,8 +295,11 @@ Last reviewed on 2006-12-29 (0.10.6)
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -512,7 +527,7 @@ Last reviewed on 2006-12-29 (0.10.6)
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-wmv, wmvversion=(int)3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]</td>
+<td> video/x-wmv, wmvversion=(int)3, format=(string)WMV3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-avimux.html b/docs/plugins/html/gst-plugins-good-plugins-avimux.html
index 18309e1b9..719a5c645 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-avimux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-avimux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>avimux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-avidemux.html" title="avidemux">
@@ -76,7 +76,7 @@ Muxes raw or compressed audio and/or video streams into an AVI file.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6591376"></a><h3>Example launch lines</h3>
+<a name="idp5273808"></a><h3>Example launch lines</h3>
 <p>(write everything in one line, without the backslash characters)</p>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
@@ -130,9 +130,12 @@ only work if you have the necessary encoder elements installed of course.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11660240"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5375904"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -153,9 +156,12 @@ only work if you have the necessary encoder elements installed of course.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8881488"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10974672"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -199,8 +205,11 @@ only work if you have the necessary encoder elements installed of course.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -216,7 +225,7 @@ only work if you have the necessary encoder elements installed of course.
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, format=(string){ YUY2, I420 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/x-raw, format=(string){ YUY2, I420, BGR, BGRx, BGRA, GRAY8 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
@@ -264,8 +273,11 @@ only work if you have the necessary encoder elements installed of course.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html b/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html
index d3a86719c..decf46c93 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>avisubtitle</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-avimux.html" title="avimux">
@@ -57,7 +57,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp4891232"></a><h3>Example launch line</h3>
+<a name="idp7552048"></a><h3>Example launch line</h3>
 <p>
 Parses the subtitle stream from an avi file.
 </p>
@@ -78,9 +78,12 @@ Last reviewed on 2008-02-01
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8992208"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5563312"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -101,9 +104,12 @@ Last reviewed on 2008-02-01
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10442128"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9055968"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -123,8 +129,11 @@ Last reviewed on 2008-02-01
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-cacasink.html b/docs/plugins/html/gst-plugins-good-plugins-cacasink.html
index f48dd4646..acd8abe6a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-cacasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-cacasink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>cacasink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-avisubtitle.html" title="avisubtitle">
@@ -69,9 +69,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11117168"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6840112"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -92,9 +95,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp7605936"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5432784"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -110,7 +116,7 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, format=(string){ RGB, RGBx, RGB16, RGB15 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/x-raw, format=(string){ RGB, BGR, RGBx, xRGB, BGRx, xBGR, RGB16, RGB15 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html b/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html
index fb97b27e0..b9de1bf80 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>cairooverlay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-cacasink.html" title="cacasink">
@@ -68,9 +68,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10694080"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12083040"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -91,9 +94,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5589152"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8612080"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -113,8 +119,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -157,8 +166,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstcairooverlay</code></em> :</span></p></td>
@@ -181,8 +193,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstcairooverlay</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-capssetter.html b/docs/plugins/html/gst-plugins-good-plugins-capssetter.html
index a36299bd2..bbde8d179 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-capssetter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-capssetter.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>capssetter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-cairooverlay.html" title="cairooverlay">
@@ -68,7 +68,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6441952"></a><p>
+<a name="idp5938384"></a><p>
 Sets or merges caps on a stream's buffers.
 That is, a buffer's caps are updated using (fields of)
 <a class="link" href="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--caps" title='The "caps" property'>caps</a>.  Note that this may
@@ -99,9 +99,12 @@ alike.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11185184"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7467344"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -122,9 +125,12 @@ alike.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp7152864"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11516288"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -144,8 +150,11 @@ alike.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-cutter.html b/docs/plugins/html/gst-plugins-good-plugins-cutter.html
index cd134c5bb..1515d0ee0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-cutter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-cutter.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>cutter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-capssetter.html" title="capssetter">
@@ -72,7 +72,7 @@ silence is signalled by bus messages named
 <code class="classname">"cutter"</code>.
 The message's structure contains two fields:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
   <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a>
   <code class="classname">"timestamp"</code>:
@@ -89,7 +89,7 @@ The message's structure contains two fields:
 <p>
 </p>
 <div class="refsect2">
-<a name="idp12095840"></a><h3>Example launch line</h3>
+<a name="idp7650192"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -107,9 +107,12 @@ The message's structure contains two fields:
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10082784"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5415856"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -130,9 +133,12 @@ The message's structure contains two fields:
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10208496"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11312080"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -152,8 +158,11 @@ The message's structure contains two fields:
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html b/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html
index 8f45e5066..1d441cabc 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>dcaparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-cutter.html" title="cutter">
@@ -61,7 +61,7 @@ This is a DCA (DTS Coherent Acoustics) parser.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7561104"></a><h3>Example launch line</h3>
+<a name="idp8826816"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -79,9 +79,12 @@ This is a DCA (DTS Coherent Acoustics) parser.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10031984"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11910560"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -102,9 +105,12 @@ This is a DCA (DTS Coherent Acoustics) parser.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp7268512"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12608576"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -122,10 +128,17 @@ This is a DCA (DTS Coherent Acoustics) parser.
 <td><p><span class="term">details</span></p></td>
 <td>audio/x-dts</td>
 </tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-private1-dts</td>
+</tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html b/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html
index 10cb382c7..2cb871c3c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>deinterlace</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-dcaparse.html" title="dcaparse">
@@ -83,7 +83,7 @@ For this different algorithms can be selected which will be described later.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10271408"></a><h3>Example launch line</h3>
+<a name="idp7050240"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -101,9 +101,12 @@ For this different algorithms can be selected which will be described later.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10539760"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7026704"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -124,9 +127,12 @@ For this different algorithms can be selected which will be described later.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8797088"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11438208"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -146,8 +152,11 @@ For this different algorithms can be selected which will be described later.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -207,7 +216,7 @@ setting the appropiate properties on it.
 </p>
 <p>
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
 tomsmocomp
 Motion Adaptive: Motion Search
diff --git a/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html b/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html
index 383798e78..3384cd448 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>deinterleave</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-deinterlace.html" title="deinterlace">
@@ -78,7 +78,7 @@ before further processing of the audio data.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6903024"></a><h3>Example launch line</h3>
+<a name="idp9390448"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -110,9 +110,12 @@ channels exchanged.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8225520"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6460992"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -133,9 +136,12 @@ channels exchanged.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11340160"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7416272"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -155,8 +161,11 @@ channels exchanged.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dicetv.html b/docs/plugins/html/gst-plugins-good-plugins-dicetv.html
index 901215bfd..592770b5d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dicetv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dicetv.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>dicetv</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-deinterleave.html" title="deinterleave">
@@ -83,7 +83,7 @@ consistent between each frame.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7340912"></a><h3>Example launch line</h3>
+<a name="idp11683280"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -101,9 +101,12 @@ consistent between each frame.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6547792"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12679024"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -124,9 +127,12 @@ consistent between each frame.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9061872"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp2830736"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -146,8 +152,11 @@ consistent between each frame.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -199,8 +208,11 @@ consistent between each frame.
                                                         <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>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstdicetv</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html b/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html
index 365446c6c..cc3170c85 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>directsoundsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-dicetv.html" title="dicetv">
-<link rel="next" href="gst-plugins-good-plugins-dv1394src.html" title="dv1394src">
+<link rel="next" href="gst-plugins-good-plugins-dtmfsrc.html" title="dtmfsrc">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -18,7 +18,7 @@
 <td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-good-plugins-dv1394src.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-dtmfsrc.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-good-plugins-directsoundsink.synopsis" class="shortcut">Top</a>
@@ -45,9 +45,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8123472"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7641248"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -68,7 +71,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10796912"></a><h3>Element Pads</h3>
+<a name="idp6939312"></a><h3>Element Pads</h3>
 </div>
 </div>
 <p>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html b/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html
new file mode 100644
index 000000000..f79522790
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html
@@ -0,0 +1,256 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>dtmfsrc</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-directsoundsink.html" title="directsoundsink">
+<link rel="next" href="gst-plugins-good-plugins-dv1394src.html" title="dv1394src">
+<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-good-plugins-directsoundsink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-good-plugins-dv1394src.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-good-plugins-dtmfsrc.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-dtmfsrc.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-dtmfsrc.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-dtmfsrc.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-dtmfsrc"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-dtmfsrc.top_of_page"></a>dtmfsrc</span></h2>
+<p>dtmfsrc — Generates DTMF tones</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-good-plugins-dtmfsrc.synopsis"></a><h2>Synopsis</h2>
+<a name="GstDTMFSrc"></a><pre class="synopsis">struct              <a class="link" href="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc-struct" title="struct GstDTMFSrc">GstDTMFSrc</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-dtmfsrc.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://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</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 href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
+                           +----GstDTMFSrc
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-dtmfsrc.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+  "<a class="link" href="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc--interval" title='The "interval" property'>interval</a>"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-dtmfsrc.description"></a><h2>Description</h2>
+<p>
+The DTMFSrc element generates DTMF (ITU-T Q.23 Specification) tone packets on request
+from application. The application communicates the beginning and end of a
+DTMF event using custom upstream gstreamer events. To report a DTMF event, an
+application must send an event of type GST_EVENT_CUSTOM_UPSTREAM, having a
+structure of name "dtmf-event" with fields set according to the following
+table:
+</p>
+<p>
+</p>
+<div class="informaltable"><table border="1">
+<colgroup>
+<col class="Name">
+<col class="Type">
+<col class="Possible values">
+<col class="Purpose">
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>GType</th>
+<th>Possible values</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>type</td>
+<td>G_TYPE_INT</td>
+<td>0-1</td>
+<td>The application uses this field to specify which of the two methods
+specified in RFC 2833 to use. The value should be 0 for tones and 1 for
+named events. Tones are specified by their frequencies and events are specied
+by their number. This element can only take events as input. Do not confuse
+with "method" which specified the output.
+</td>
+</tr>
+<tr>
+<td>number</td>
+<td>G_TYPE_INT</td>
+<td>0-15</td>
+<td>The event number.</td>
+</tr>
+<tr>
+<td>volume</td>
+<td>G_TYPE_INT</td>
+<td>0-36</td>
+<td>This field describes the power level of the tone, expressed in dBm0
+after dropping the sign. Power levels range from 0 to -63 dBm0. The range of
+valid DTMF is from 0 to -36 dBm0. Can be omitted if start is set to FALSE.
+</td>
+</tr>
+<tr>
+<td>start</td>
+<td>G_TYPE_BOOLEAN</td>
+<td>True or False</td>
+<td>Whether the event is starting or ending.</td>
+</tr>
+<tr>
+<td>method</td>
+<td>G_TYPE_INT</td>
+<td>2</td>
+<td>The method used for sending event, this element will react if this
+field is absent or 2.
+</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+</p>
+<p>
+For example, the following code informs the pipeline (and in turn, the
+DTMFSrc element inside the pipeline) about the start of a DTMF named
+event '1' of volume -25 dBm0:
+</p>
+<p>
+</p>
+<pre class="programlisting">
+structure = gst_structure_new ("dtmf-event",
+                   "type", G_TYPE_INT, 1,
+                   "number", G_TYPE_INT, 1,
+                   "volume", G_TYPE_INT, 25,
+                   "start", G_TYPE_BOOLEAN, TRUE, NULL);
+
+event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, structure);
+gst_element_send_event (pipeline, event);
+</pre>
+<p>
+</p>
+<p>
+When a DTMF tone actually starts or stop, a "dtmf-event-processed"
+element <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> with the same fields as the "dtmf-event"
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> that was used to request the event. Also, if any event
+has not been processed when the element goes from the PAUSED to the
+READY state, then a "dtmf-event-dropped" message is posted on the
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBus.html"><span class="type">GstBus</span></a> in the order that they were received.
+</p>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="idp8551232"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-dtmf.html#plugin-dtmf">dtmf</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Youness Alaoui &lt;youness.alaoui@collabora.co.uk&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Source/Audio</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="idp1524480"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/x-raw, format=(string)S16LE, rate=(int)[ 1, 2147483647 ], channels=(int)1</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-dtmfsrc.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstDTMFSrc-struct"></a><h3>struct GstDTMFSrc</h3>
+<pre class="programlisting">struct GstDTMFSrc;</pre>
+<p>
+The opaque <a class="link" href="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc"><span class="type">GstDTMFSrc</span></a> data structure.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody></tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-dtmfsrc.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstDTMFSrc--interval"></a><h3>The <code class="literal">"interval"</code> property</h3>
+<pre class="programlisting">  "interval"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write</pre>
+<p>Interval in ms between two tone packets.</p>
+<p>Allowed values: [10,50]</p>
+<p>Default value: 50</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-dtmfsrc.see-also"></a><h2>See Also</h2>
+rtpdtmsrc, rtpdtmfmuxx
+</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/plugins/html/gst-plugins-good-plugins-dv1394src.html b/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html
index 1fb51c830..2e22d9d9a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>dv1394src</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-directsoundsink.html" title="directsoundsink">
+<link rel="prev" href="gst-plugins-good-plugins-dtmfsrc.html" title="dtmfsrc">
 <link rel="next" href="gst-plugins-good-plugins-dvdec.html" title="dvdec">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -14,7 +14,7 @@
 <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-good-plugins-directsoundsink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-dtmfsrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
@@ -64,7 +64,7 @@
 <a name="gst-plugins-good-plugins-dv1394src.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstDV1394Src implements
- <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a> and  GstPropertyProbe.</p>
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe">GstPropertyProbe</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-dv1394src.properties"></a><h2>Properties</h2>
@@ -90,9 +90,12 @@ GstDV1394Src implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11860048"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12835888"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -113,9 +116,12 @@ GstDV1394Src implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12289536"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10187328"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -219,8 +225,11 @@ GstDV1394Src implements
                                                         <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>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstdv1394src</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dvdec.html b/docs/plugins/html/gst-plugins-good-plugins-dvdec.html
index cc7d44f37..729166bac 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dvdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dvdec.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>dvdec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-dv1394src.html" title="dv1394src">
@@ -68,9 +68,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7097840"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7706496"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -91,9 +94,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6806096"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11012640"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -113,8 +119,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html b/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html
index 25fc31400..ba95044d2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>dvdemux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-dvdec.html" title="dvdec">
@@ -57,9 +57,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6014704"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6693648"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -80,9 +83,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8210192"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp2905680"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -102,8 +108,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -123,8 +132,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-edgetv.html b/docs/plugins/html/gst-plugins-good-plugins-edgetv.html
index f2d571297..e2b4e533f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-edgetv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-edgetv.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>edgetv</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-dvdemux.html" title="dvdemux">
@@ -63,7 +63,7 @@ computer way.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10149312"></a><h3>Example launch line</h3>
+<a name="idp3237120"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -81,9 +81,12 @@ computer way.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6451872"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5831616"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -104,9 +107,12 @@ computer way.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9435168"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp2972464"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -126,8 +132,11 @@ computer way.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html b/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html
index 16a40d37b..6364ec9e2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>equalizer-10bands</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-edgetv.html" title="edgetv">
@@ -89,7 +89,7 @@ frequency bands between 30 Hz and 15 kHz.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp13534352"></a><h3>Example launch line</h3>
+<a name="idp6001760"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -107,9 +107,12 @@ frequency bands between 30 Hz and 15 kHz.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6623344"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12779712"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -130,9 +133,12 @@ frequency bands between 30 Hz and 15 kHz.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10595952"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8770448"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -152,8 +158,11 @@ frequency bands between 30 Hz and 15 kHz.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html b/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html
index b77c5b4aa..8972af90e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>equalizer-3bands</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-equalizer-10bands.html" title="equalizer-10bands">
@@ -82,7 +82,7 @@ medium frequency and high frequency band.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8977312"></a><h3>Example launch line</h3>
+<a name="idp7224000"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -100,9 +100,12 @@ medium frequency and high frequency band.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7613712"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7630416"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -123,9 +126,12 @@ medium frequency and high frequency band.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10507152"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13362720"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -145,8 +151,11 @@ medium frequency and high frequency band.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html b/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html
index ee11a708d..34c182479 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>equalizer-nbands</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-equalizer-3bands.html" title="equalizer-3bands">
@@ -81,7 +81,7 @@ the center frequency, band width and gain.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8715136"></a><h3>Example launch line</h3>
+<a name="idp13123008"></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 center frequency, band width and gain.
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp11969120"></a><h3>Example code</h3>
+<a name="idp6721888"></a><h3>Example code</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -190,9 +190,12 @@ the center frequency, band width and gain.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp13549776"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13858176"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -213,9 +216,12 @@ the center frequency, band width and gain.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8585888"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9036928"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -235,8 +241,11 @@ the center frequency, band width and gain.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacdec.html b/docs/plugins/html/gst-plugins-good-plugins-flacdec.html
index 252dba2e0..4528269ba 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flacdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flacdec.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>flacdec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-equalizer-nbands.html" title="equalizer-nbands">
@@ -58,9 +58,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp5748032"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5857840"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -81,9 +84,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5491696"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7924768"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -103,8 +109,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacenc.html b/docs/plugins/html/gst-plugins-good-plugins-flacenc.html
index dc89587e4..ba864f8fa 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flacenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flacenc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>flacenc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-flacdec.html" title="flacdec">
@@ -88,9 +88,12 @@ GstFlacEnc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11678144"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6488240"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -111,9 +114,12 @@ GstFlacEnc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10601536"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12478368"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -133,8 +139,11 @@ GstFlacEnc implements
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacparse.html b/docs/plugins/html/gst-plugins-good-plugins-flacparse.html
index 0ceea1f6b..e665cf786 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flacparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flacparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>flacparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-flacenc.html" title="flacenc">
@@ -80,7 +80,7 @@ format file to an ogg bitstream.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp5519264"></a><h3>Example pipelines</h3>
+<a name="idp8029600"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -102,9 +102,12 @@ buffer has the timestamp, duration, offset, and offset_end set.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp5708976"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10572208"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -125,9 +128,12 @@ buffer has the timestamp, duration, offset, and offset_end set.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6401344"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7222768"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -147,8 +153,11 @@ buffer has the timestamp, duration, offset, and offset_end set.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flactag.html b/docs/plugins/html/gst-plugins-good-plugins-flactag.html
index b8a9dbcc3..15d2e1d83 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flactag.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flactag.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>flactag</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-flacparse.html" title="flacparse">
@@ -65,9 +65,12 @@ GstFlacTag implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11324016"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10581568"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -88,9 +91,12 @@ GstFlacTag implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp4943664"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5290368"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -110,8 +116,11 @@ GstFlacTag implements
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html b/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html
index 51b00e35c..a22bdf633 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>flvdemux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-flactag.html" title="flactag">
@@ -60,7 +60,7 @@ flvdemux demuxes an FLV file into the different contained streams.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10202880"></a><h3>Example launch line</h3>
+<a name="idp8004272"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -78,9 +78,12 @@ flvdemux demuxes an FLV file into the different contained streams.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp4946496"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10670784"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -101,9 +104,12 @@ flvdemux demuxes an FLV file into the different contained streams.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9647008"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11370464"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -123,8 +129,11 @@ flvdemux demuxes an FLV file into the different contained streams.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -172,8 +181,11 @@ flvdemux demuxes an FLV file into the different contained streams.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flvmux.html b/docs/plugins/html/gst-plugins-good-plugins-flvmux.html
index ea3786d93..d75b15a42 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flvmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flvmux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>flvmux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-flvdemux.html" title="flvdemux">
@@ -77,7 +77,7 @@ flvmux muxes different streams into an FLV file.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp11059808"></a><h3>Example launch line</h3>
+<a name="idp9551008"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -95,9 +95,12 @@ flvmux muxes different streams into an FLV file.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10884992"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9844640"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -118,9 +121,12 @@ flvmux muxes different streams into an FLV file.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8050880"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7407392"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -172,8 +178,11 @@ flvmux muxes different streams into an FLV file.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -209,8 +218,11 @@ flvmux muxes different streams into an FLV file.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flxdec.html b/docs/plugins/html/gst-plugins-good-plugins-flxdec.html
index 785701ffb..3fbc37d5e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flxdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flxdec.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>flxdec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-flvmux.html" title="flvmux">
@@ -60,9 +60,12 @@ This element decodes fli/flc/flx-video into raw video
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6132928"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5747920"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -83,9 +86,12 @@ This element decodes fli/flc/flx-video into raw video
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9956224"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12874384"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -105,8 +111,11 @@ This element decodes fli/flc/flx-video into raw video
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-gamma.html b/docs/plugins/html/gst-plugins-good-plugins-gamma.html
index 7e31a2276..a5ef43599 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-gamma.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-gamma.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gamma</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-flxdec.html" title="flxdec">
-<link rel="next" href="gst-plugins-good-plugins-gdkpixbufoverlay.html" title="gdkpixbufoverlay">
+<link rel="next" href="gst-plugins-good-plugins-gdkpixbufsink.html" title="gdkpixbufsink">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -18,7 +18,7 @@
 <td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-good-plugins-gdkpixbufoverlay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-gdkpixbufsink.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-good-plugins-gamma.synopsis" class="shortcut">Top</a>
@@ -70,7 +70,7 @@ Performs gamma correction on a video stream.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp11177984"></a><h3>Example launch line</h3>
+<a name="idp8112064"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -102,9 +102,12 @@ Last reviewed on 2010-04-18 (0.10.22)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10169584"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13238736"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -125,9 +128,12 @@ Last reviewed on 2010-04-18 (0.10.22)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8107280"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11657680"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -147,8 +153,11 @@ Last reviewed on 2010-04-18 (0.10.22)
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufoverlay.html b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufoverlay.html
deleted file mode 100644
index 3b36e2502..000000000
--- a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufoverlay.html
+++ /dev/null
@@ -1,225 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>gdkpixbufoverlay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
-<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
-<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-gamma.html" title="gamma">
-<link rel="next" href="gst-plugins-good-plugins-gdkpixbufsink.html" title="gdkpixbufsink">
-<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-good-plugins-gamma.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-good-plugins-gdkpixbufsink.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-good-plugins-gdkpixbufoverlay.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#gst-plugins-good-plugins-gdkpixbufoverlay.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#gst-plugins-good-plugins-gdkpixbufoverlay.object-hierarchy" class="shortcut">Object Hierarchy</a>
-                   | 
-                  <a href="#gst-plugins-good-plugins-gdkpixbufoverlay.properties" class="shortcut">Properties</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="gst-plugins-good-plugins-gdkpixbufoverlay"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-gdkpixbufoverlay.top_of_page"></a>gdkpixbufoverlay</span></h2>
-<p>gdkpixbufoverlay — Overlay an image onto a video stream</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gst-plugins-good-plugins-gdkpixbufoverlay.synopsis"></a><h2>Synopsis</h2>
-<a name="GstGdkPixbufOverlay"></a><pre class="synopsis">struct              <a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay-struct" title="struct GstGdkPixbufOverlay">GstGdkPixbufOverlay</a>;
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-good-plugins-gdkpixbufoverlay.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://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</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 href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a>
-                           +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a>
-                                 +----GstGdkPixbufOverlay
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-good-plugins-gdkpixbufoverlay.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
-  "<a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--location" title='The "location" property'>location</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-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--offset-x" title='The "offset-x" property'>offset-x</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-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--offset-y" title='The "offset-y" property'>offset-y</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-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--overlay-height" title='The "overlay-height" property'>overlay-height</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-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--overlay-width" title='The "overlay-width" property'>overlay-width</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-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--relative-x" title='The "relative-x" property'>relative-x</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-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--relative-y" title='The "relative-y" property'>relative-y</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-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--alpha" title='The "alpha" property'>alpha</a>"                    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-good-plugins-gdkpixbufoverlay.description"></a><h2>Description</h2>
-<div class="refsynopsisdiv">
-<h2>Synopsis</h2>
-<div class="refsect2">
-<a name="idp6937424"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term">plugin</span></p></td>
-<td>
-            <a class="link" href="gst-plugins-good-plugins-plugin-gdkpixbuf.html#plugin-gdkpixbuf">gdkpixbuf</a>
-          </td>
-</tr>
-<tr>
-<td><p><span class="term">author</span></p></td>
-<td>Tim-Philipp Müller &lt;tim centricular net&gt;</td>
-</tr>
-<tr>
-<td><p><span class="term">class</span></p></td>
-<td>Filter/Effect/Video</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="idp6829104"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term">name</span></p></td>
-<td>sink</td>
-</tr>
-<tr>
-<td><p><span class="term">direction</span></p></td>
-<td>sink</td>
-</tr>
-<tr>
-<td><p><span class="term">presence</span></p></td>
-<td>always</td>
-</tr>
-<tr>
-<td><p><span class="term">details</span></p></td>
-<td>video/x-raw, format=(string){ RGBx, RGB, BGR, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, YVYU, NV12, NV21, UYVP, RGB16, BGR16, RGB15, BGR15, UYVP, A420, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, GRAY8, GRAY16_BE, GRAY16_LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
-</tr>
-</tbody>
-</table></div>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term">name</span></p></td>
-<td>src</td>
-</tr>
-<tr>
-<td><p><span class="term">direction</span></p></td>
-<td>source</td>
-</tr>
-<tr>
-<td><p><span class="term">presence</span></p></td>
-<td>always</td>
-</tr>
-<tr>
-<td><p><span class="term">details</span></p></td>
-<td>video/x-raw, format=(string){ RGBx, RGB, BGR, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, YVYU, NV12, NV21, UYVP, RGB16, BGR16, RGB15, BGR15, UYVP, A420, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, GRAY8, GRAY16_BE, GRAY16_LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<p>
-</p>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-good-plugins-gdkpixbufoverlay.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstGdkPixbufOverlay-struct"></a><h3>struct GstGdkPixbufOverlay</h3>
-<pre class="programlisting">struct GstGdkPixbufOverlay;</pre>
-<p>
-</p>
-</div>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-good-plugins-gdkpixbufoverlay.property-details"></a><h2>Property Details</h2>
-<div class="refsect2">
-<a name="GstGdkPixbufOverlay--location"></a><h3>The <code class="literal">"location"</code> property</h3>
-<pre class="programlisting">  "location"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write</pre>
-<p>Location of image file to overlay.</p>
-<p>Default value: NULL</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstGdkPixbufOverlay--offset-x"></a><h3>The <code class="literal">"offset-x"</code> property</h3>
-<pre class="programlisting">  "offset-x"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
-<p>Horizontal offset of overlay image in pixels from top-left corner of video image.</p>
-<p>Default value: 0</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstGdkPixbufOverlay--offset-y"></a><h3>The <code class="literal">"offset-y"</code> property</h3>
-<pre class="programlisting">  "offset-y"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
-<p>Vertical offset of overlay image in pixels from top-left corner of video image.</p>
-<p>Default value: 0</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstGdkPixbufOverlay--overlay-height"></a><h3>The <code class="literal">"overlay-height"</code> property</h3>
-<pre class="programlisting">  "overlay-height"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
-<p>Height of overlay image in pixels (0 = same as overlay image).</p>
-<p>Allowed values: &gt;= 0</p>
-<p>Default value: 0</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstGdkPixbufOverlay--overlay-width"></a><h3>The <code class="literal">"overlay-width"</code> property</h3>
-<pre class="programlisting">  "overlay-width"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
-<p>Width of overlay image in pixels (0 = same as overlay image).</p>
-<p>Allowed values: &gt;= 0</p>
-<p>Default value: 0</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstGdkPixbufOverlay--relative-x"></a><h3>The <code class="literal">"relative-x"</code> property</h3>
-<pre class="programlisting">  "relative-x"               <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 offset of overlay image in fractions of video image width, from top-left corner of video image.</p>
-<p>Allowed values: [0,1]</p>
-<p>Default value: 0</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstGdkPixbufOverlay--relative-y"></a><h3>The <code class="literal">"relative-y"</code> property</h3>
-<pre class="programlisting">  "relative-y"               <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 offset of overlay image in fractions of video image height, from top-left corner of video image.</p>
-<p>Allowed values: [0,1]</p>
-<p>Default value: 0</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstGdkPixbufOverlay--alpha"></a><h3>The <code class="literal">"alpha"</code> property</h3>
-<pre class="programlisting">  "alpha"                    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write</pre>
-<p>Global alpha of overlay image.</p>
-<p>Allowed values: [0,1]</p>
-<p>Default value: 1</p>
-</div>
-</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/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html
index dca10a51b..85720000a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gdkpixbufsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-gdkpixbufoverlay.html" title="gdkpixbufoverlay">
+<link rel="prev" href="gst-plugins-good-plugins-gamma.html" title="gamma">
 <link rel="next" href="gst-plugins-good-plugins-goom.html" title="goom">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -14,7 +14,7 @@
 <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-good-plugins-gdkpixbufoverlay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-gamma.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
@@ -59,7 +59,7 @@
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-gdkpixbufsink.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--last-pixbuf" title='The "last-pixbuf" property'>last-pixbuf</a>"              <span class="type">GdkPixbuf</span>*            : Read
+  "<a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--last-pixbuf" title='The "last-pixbuf" property'>last-pixbuf</a>"              <a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>*            : Read
   "<a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--send-messages" title='The "send-messages" property'>send-messages</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-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--post-messages" title='The "post-messages" property'>post-messages</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
 </pre>
@@ -69,9 +69,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9785856"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14327136"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -92,9 +95,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8501904"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13834800"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -136,7 +142,7 @@
 <a name="gst-plugins-good-plugins-gdkpixbufsink.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstGdkPixbufSink--last-pixbuf"></a><h3>The <code class="literal">"last-pixbuf"</code> property</h3>
-<pre class="programlisting">  "last-pixbuf"              <span class="type">GdkPixbuf</span>*            : Read</pre>
+<pre class="programlisting">  "last-pixbuf"              <a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>*            : Read</pre>
 <p>Last GdkPixbuf object rendered.</p>
 </div>
 <hr>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-goom.html b/docs/plugins/html/gst-plugins-good-plugins-goom.html
index 9e3c501c3..15e3ad36f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-goom.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-goom.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>goom</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-gdkpixbufsink.html" title="gdkpixbufsink">
@@ -61,7 +61,7 @@ based on the incoming audio signal.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp4958320"></a><h3>Example launch line</h3>
+<a name="idp8075696"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -79,9 +79,12 @@ based on the incoming audio signal.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7429952"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12777376"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -102,9 +105,12 @@ based on the incoming audio signal.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp7878288"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10800704"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -128,8 +134,11 @@ based on the incoming audio signal.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html b/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html
index 850d7a39d..f6ce6ec83 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>goom2k1</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-goom.html" title="goom">
@@ -62,7 +62,7 @@ visualisation. Also available is goom2k4, with a different look.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp13606816"></a><h3>Example launch line</h3>
+<a name="idp7213136"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -80,9 +80,12 @@ visualisation. Also available is goom2k4, with a different look.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp12728480"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10733168"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -103,9 +106,12 @@ visualisation. Also available is goom2k4, with a different look.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12643216"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7664208"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -129,8 +135,11 @@ visualisation. Also available is goom2k4, with a different look.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html b/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html
index 66e7f7276..52e087cf4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>hdv1394src</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-goom2k1.html" title="goom2k1">
@@ -62,7 +62,7 @@
 <a name="gst-plugins-good-plugins-hdv1394src.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstHDV1394Src implements
- <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a> and  GstPropertyProbe.</p>
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe">GstPropertyProbe</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-hdv1394src.properties"></a><h2>Properties</h2>
@@ -79,9 +79,12 @@ GstHDV1394Src implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7639936"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11067264"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -102,9 +105,12 @@ GstHDV1394Src implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8174608"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12878352"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-icydemux.html b/docs/plugins/html/gst-plugins-good-plugins-icydemux.html
index c5fb0f4aa..2c2e94e5c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-icydemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-icydemux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>icydemux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-hdv1394src.html" title="hdv1394src">
@@ -64,7 +64,7 @@ on outgoing buffers.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7139136"></a><h3>Example launch line</h3>
+<a name="idp6004736"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -85,9 +85,12 @@ or giosrc instead of souphttpsrc should also work.)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7666848"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12253680"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -108,9 +111,12 @@ or giosrc instead of souphttpsrc should also work.)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6475520"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10512640"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -130,8 +136,11 @@ or giosrc instead of souphttpsrc should also work.)
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-id3demux.html b/docs/plugins/html/gst-plugins-good-plugins-id3demux.html
index 8882d1c97..d2996907f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-id3demux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-id3demux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>id3demux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-icydemux.html" title="icydemux">
@@ -83,7 +83,7 @@ relied on libid3tag from the MAD project.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7493360"></a><h3>Example launch line</h3>
+<a name="idp13694928"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -103,9 +103,12 @@ the appropriate mime type set on buffers produced from id3demux.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10613856"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8748560"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -126,9 +129,12 @@ the appropriate mime type set on buffers produced from id3demux.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10493200"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8987504"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -148,8 +154,11 @@ the appropriate mime type set on buffers produced from id3demux.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html b/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html
index 9f3b347c2..c1ddc7289 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>id3v2mux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-id3demux.html" title="id3demux">
@@ -66,9 +66,12 @@ GstId3v2Mux implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp12483360"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10079808"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -89,9 +92,12 @@ GstId3v2Mux implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10105296"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9127024"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -111,8 +117,11 @@ GstId3v2Mux implements
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html b/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html
index f64119a71..519952280 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>imagefreeze</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-id3v2mux.html" title="id3v2mux">
@@ -62,7 +62,7 @@ by downstream, allows seeking and answers queries.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7499600"></a><h3>Example launch line</h3>
+<a name="idp10208480"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -80,9 +80,12 @@ by downstream, allows seeking and answers queries.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp13402368"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7996512"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -103,9 +106,12 @@ by downstream, allows seeking and answers queries.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp7925760"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10727264"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -125,8 +131,11 @@ by downstream, allows seeking and answers queries.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-interleave.html b/docs/plugins/html/gst-plugins-good-plugins-interleave.html
index 235f2c648..b8942c505 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-interleave.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-interleave.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>interleave</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-imagefreeze.html" title="imagefreeze">
@@ -82,7 +82,7 @@ The channel number of every sinkpad in the out can be retrieved from the "channe
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6613504"></a><h3>Example launch line</h3>
+<a name="idp13974512"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -113,9 +113,12 @@ channels exchanged.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9226512"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7736688"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -136,9 +139,12 @@ channels exchanged.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13999424"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6771600"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -158,8 +164,11 @@ channels exchanged.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html b/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html
index 644fdd73c..acef072fb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ismlmux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-interleave.html" title="interleave">
@@ -96,7 +96,7 @@ presentation-timestamp.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7724208"></a><h3>Example pipelines</h3>
+<a name="idp9132352"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -119,9 +119,12 @@ Documentation last reviewed on 2011-04-21
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp12796592"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11817184"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -142,9 +145,12 @@ Documentation last reviewed on 2011-04-21
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6067232"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9575776"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -168,8 +174,11 @@ Documentation last reviewed on 2011-04-21
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -197,8 +206,11 @@ Documentation last reviewed on 2011-04-21
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html
index c32d25529..1db5b6f7c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>jackaudiosink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-jackaudiosrc.html" title="jackaudiosrc">
@@ -71,9 +71,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10659552"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14272624"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -94,9 +97,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14328128"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10322672"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html
index 38679a24f..53cd488ce 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>jackaudiosrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-ismlmux.html" title="ismlmux">
@@ -72,9 +72,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp13375680"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11949296"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -95,9 +98,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp2352432"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13157344"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html b/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html
index 04ad9f798..d7d85f40c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>jpegdec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-jackaudiosink.html" title="jackaudiosink">
@@ -67,9 +67,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11909936"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13242736"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -90,9 +93,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12104720"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14384176"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -112,8 +118,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html b/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html
index 4bee26517..b31d38924 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>jpegenc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-jpegdec.html" title="jpegdec">
@@ -83,9 +83,12 @@ GstJpegEnc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10394976"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13076896"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -106,9 +109,12 @@ GstJpegEnc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13368608"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9981728"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -128,8 +134,11 @@ GstJpegEnc implements
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -188,8 +197,11 @@ GstJpegEnc implements
                                                         <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>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstjpegenc</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-level.html b/docs/plugins/html/gst-plugins-good-plugins-level.html
index e0db3eb24..e31013a0f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-level.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-level.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>level</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-jpegenc.html" title="jpegenc">
@@ -62,6 +62,7 @@
   "<a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--message" title='The "message" property'>message</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-good-plugins-level.html#GstLevel--peak-falloff" title='The "peak-falloff" property'>peak-falloff</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-good-plugins-level.html#GstLevel--peak-ttl" title='The "peak-ttl" property'>peak-ttl</a>"                 <span class="type">guint64</span>               : Read / Write
+  "<a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--post-messages" title='The "post-messages" property'>post-messages</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">
@@ -73,7 +74,7 @@ is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.ht
 after each interval of time given by the <a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--interval" title='The "interval" property'><span class="type">"interval"</span></a> property.
 The message's structure contains these fields:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
   <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a>
   <code class="classname">"timestamp"</code>:
@@ -127,7 +128,7 @@ The message's structure contains these fields:
 <p>
 </p>
 <div class="refsect2">
-<a name="idp12781424"></a><h3>Example application</h3>
+<a name="idp12940592"></a><h3>Example application</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -268,7 +269,10 @@ The message's structure contains these fields:
 134
 135
 136
-137</pre></td>
+137
+138
+139
+140</pre></td>
         <td class="listing_code"><pre class="programlisting"><span class="comment">/* GStreamer</span>
 <span class="comment"> * Copyright (C) 2000,2001,2002,2003,2005</span>
 <span class="comment"> *           Thomas Vander Stichele &lt;thomas at apestaart dot org&gt;</span>
@@ -285,8 +289,8 @@ The message's structure contains these fields:
 <span class="comment"> *</span>
 <span class="comment"> * You should have received a copy of the GNU Library General Public</span>
 <span class="comment"> * License along with this library; if not, write to the</span>
-<span class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</span>
-<span class="comment"> * Boston, MA 02111-1307, USA.</span>
+<span class="comment"> * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,</span>
+<span class="comment"> * Boston, MA 02110-1301, USA.</span>
 <span class="comment"> */</span>
 
 <span class="gtkdoc ppc">#include &lt;string.h&gt;</span>
@@ -311,34 +315,37 @@ The message's structure contains these fields:
       gdouble rms<span class="gtkdoc opt">;</span>
       <span class="gtkdoc kwb">const</span> GValue <span class="gtkdoc opt">*</span>array_val<span class="gtkdoc opt">;</span>
       <span class="gtkdoc kwb">const</span> GValue <span class="gtkdoc opt">*</span>value<span class="gtkdoc opt">;</span>
-      GValueArray <span class="gtkdoc opt">*</span>arr<span class="gtkdoc opt">;</span>
-
+      GValueArray <span class="gtkdoc opt">*</span>rms_arr<span class="gtkdoc opt">, *</span>peak_arr<span class="gtkdoc opt">, *</span>decay_arr<span class="gtkdoc opt">;</span>
       gint i<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-get-clock-time">gst_structure_get_clock_time</a></span> <span class="gtkdoc opt">(</span>s<span class="gtkdoc opt">,</span> <span class="string">&quot;endtime&quot;</span><span class="gtkdoc opt">, &amp;</span>endtime<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;Could not parse endtime&quot;</span><span class="gtkdoc opt">);</span>
-      <span class="comment">/* we can get the number of channels as the length of any of the value</span>
-<span class="comment">       * lists */</span>
+
+      <span class="comment">/* the values are packed into GValueArrays with the value per channel */</span>
       array_val <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-get-value">gst_structure_get_value</a></span> <span class="gtkdoc opt">(</span>s<span class="gtkdoc opt">,</span> <span class="string">&quot;rms&quot;</span><span class="gtkdoc opt">);</span>
-      arr <span class="gtkdoc opt">= (</span>GValueArray <span class="gtkdoc opt">*)</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-boxed">g_value_get_boxed</a></span> <span class="gtkdoc opt">(</span>array_val<span class="gtkdoc opt">);</span>
-      channels <span class="gtkdoc opt">=</span> arr<span class="gtkdoc opt">-&gt;</span>n_values<span class="gtkdoc opt">;</span>
+      rms_arr <span class="gtkdoc opt">= (</span>GValueArray <span class="gtkdoc opt">*)</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-boxed">g_value_get_boxed</a></span> <span class="gtkdoc opt">(</span>array_val<span class="gtkdoc opt">);</span>
+
+      array_val <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-get-value">gst_structure_get_value</a></span> <span class="gtkdoc opt">(</span>s<span class="gtkdoc opt">,</span> <span class="string">&quot;peak&quot;</span><span class="gtkdoc opt">);</span>
+      peak_arr <span class="gtkdoc opt">= (</span>GValueArray <span class="gtkdoc opt">*)</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-boxed">g_value_get_boxed</a></span> <span class="gtkdoc opt">(</span>array_val<span class="gtkdoc opt">);</span>
 
+      array_val <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-get-value">gst_structure_get_value</a></span> <span class="gtkdoc opt">(</span>s<span class="gtkdoc opt">,</span> <span class="string">&quot;decay&quot;</span><span class="gtkdoc opt">);</span>
+      decay_arr <span class="gtkdoc opt">= (</span>GValueArray <span class="gtkdoc opt">*)</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-boxed">g_value_get_boxed</a></span> <span class="gtkdoc opt">(</span>array_val<span class="gtkdoc opt">);</span>
+
+      <span class="comment">/* we can get the number of channels as the length of any of the value</span>
+<span class="comment">       * arrays */</span>
+      channels <span class="gtkdoc opt">=</span> rms_arr<span class="gtkdoc opt">-&gt;</span>n_values<span class="gtkdoc opt">;</span>
       <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;endtime: %&quot;</span> GST_TIME_FORMAT <span class="string">&quot;, channels: %d</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span>
           <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-TIME-ARGS:CAPS">GST_TIME_ARGS</a></span> <span class="gtkdoc opt">(</span>endtime<span class="gtkdoc opt">),</span> channels<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> channels<span class="gtkdoc opt">; ++</span>i<span class="gtkdoc opt">) {</span>
 
         <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;channel %d</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> i<span class="gtkdoc opt">);</span>
-        array_val <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-get-value">gst_structure_get_value</a></span> <span class="gtkdoc opt">(</span>s<span class="gtkdoc opt">,</span> <span class="string">&quot;rms&quot;</span><span class="gtkdoc opt">);</span>
-        arr <span class="gtkdoc opt">= (</span>GValueArray <span class="gtkdoc opt">*)</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-boxed">g_value_get_boxed</a></span> <span class="gtkdoc opt">(</span>array_val<span class="gtkdoc opt">);</span>
-        value <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#g-value-array-get-nth">g_value_array_get_nth</a></span> <span class="gtkdoc opt">(</span>arr<span class="gtkdoc opt">,</span> i<span class="gtkdoc opt">);</span>
+        value <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#g-value-array-get-nth">g_value_array_get_nth</a></span> <span class="gtkdoc opt">(</span>rms_arr<span class="gtkdoc opt">,</span> i<span class="gtkdoc opt">);</span>
         rms_dB <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-double">g_value_get_double</a></span> <span class="gtkdoc opt">(</span>value<span class="gtkdoc opt">);</span>
-        array_val <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-get-value">gst_structure_get_value</a></span> <span class="gtkdoc opt">(</span>s<span class="gtkdoc opt">,</span> <span class="string">&quot;peak&quot;</span><span class="gtkdoc opt">);</span>
-        arr <span class="gtkdoc opt">= (</span>GValueArray <span class="gtkdoc opt">*)</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-boxed">g_value_get_boxed</a></span> <span class="gtkdoc opt">(</span>array_val<span class="gtkdoc opt">);</span>
-        value <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#g-value-array-get-nth">g_value_array_get_nth</a></span> <span class="gtkdoc opt">(</span>arr<span class="gtkdoc opt">,</span> i<span class="gtkdoc opt">);</span>
+
+        value <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#g-value-array-get-nth">g_value_array_get_nth</a></span> <span class="gtkdoc opt">(</span>peak_arr<span class="gtkdoc opt">,</span> i<span class="gtkdoc opt">);</span>
         peak_dB <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-double">g_value_get_double</a></span> <span class="gtkdoc opt">(</span>value<span class="gtkdoc opt">);</span>
-        array_val <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-get-value">gst_structure_get_value</a></span> <span class="gtkdoc opt">(</span>s<span class="gtkdoc opt">,</span> <span class="string">&quot;decay&quot;</span><span class="gtkdoc opt">);</span>
-        arr <span class="gtkdoc opt">= (</span>GValueArray <span class="gtkdoc opt">*)</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-boxed">g_value_get_boxed</a></span> <span class="gtkdoc opt">(</span>array_val<span class="gtkdoc opt">);</span>
-        value <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#g-value-array-get-nth">g_value_array_get_nth</a></span> <span class="gtkdoc opt">(</span>arr<span class="gtkdoc opt">,</span> i<span class="gtkdoc opt">);</span>
+
+        value <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#g-value-array-get-nth">g_value_array_get_nth</a></span> <span class="gtkdoc opt">(</span>decay_arr<span class="gtkdoc opt">,</span> i<span class="gtkdoc opt">);</span>
         decay_dB <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-get-double">g_value_get_double</a></span> <span class="gtkdoc opt">(</span>value<span class="gtkdoc opt">);</span>
         <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;    RMS: %f dB, peak: %f dB, decay: %f dB</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span>
             rms_dB<span class="gtkdoc opt">,</span> peak_dB<span class="gtkdoc opt">,</span> decay_dB<span class="gtkdoc opt">);</span>
@@ -389,7 +396,7 @@ The message's structure contains these fields:
     <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;Failed to link level and fakesink&quot;</span><span class="gtkdoc opt">);</span>
 
   <span class="comment">/* make sure we'll get messages */</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>level<span class="gtkdoc opt">),</span> <span class="string">&quot;message&quot;</span><span class="gtkdoc opt">,</span> TRUE<span class="gtkdoc opt">,</span> NULL<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>level<span class="gtkdoc opt">),</span> <span class="string">&quot;post-messages&quot;</span><span class="gtkdoc opt">,</span> TRUE<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
   <span class="comment">/* run synced and not as fast as we can */</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>fakesink<span class="gtkdoc opt">),</span> <span class="string">&quot;sync&quot;</span><span class="gtkdoc opt">,</span> TRUE<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
 
@@ -417,9 +424,12 @@ The message's structure contains these fields:
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14809568"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp15841856"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -440,9 +450,12 @@ The message's structure contains these fields:
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12208672"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14134880"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -462,8 +475,11 @@ The message's structure contains these fields:
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -511,7 +527,7 @@ Opaque data structure.
 <div class="refsect2">
 <a name="GstLevel--message"></a><h3>The <code class="literal">"message"</code> property</h3>
 <pre class="programlisting">  "message"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>Post a level message for each passed interval.</p>
+<p>Post a 'level' message for each passed interval (deprecated).</p>
 <p>Default value: TRUE</p>
 </div>
 <hr>
@@ -529,6 +545,20 @@ Opaque data structure.
 <p>Time To Live of decay peak before it falls back (in nanoseconds).</p>
 <p>Default value: 300000000</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstLevel--post-messages"></a><h3>The <code class="literal">"post-messages"</code> property</h3>
+<pre class="programlisting">  "post-messages"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</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">GstLevel:post-messages</code> is deprecated and should not be used in newly-written code. use the <a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--post-messages" title='The "post-messages" property'><span class="type">"post-messages"</span></a> property</p>
+</div>
+<p>
+Post messages on the bus with level information.
+</p>
+<p>Default value: TRUE</p>
+<p class="since">Since 1.1.0</p>
+</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html b/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html
index 1076035f9..c80f713c1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>matroskademux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-matroskamux.html" title="matroskamux">
@@ -68,7 +68,7 @@ matroskademux demuxes a Matroska file into the different contained streams.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6127648"></a><h3>Example launch line</h3>
+<a name="idp14644768"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -86,9 +86,12 @@ matroskademux demuxes a Matroska file into the different contained streams.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14822464"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14025808"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -109,9 +112,12 @@ matroskademux demuxes a Matroska file into the different contained streams.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11362096"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9089184"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -147,8 +153,11 @@ matroskademux demuxes a Matroska file into the different contained streams.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -168,8 +177,11 @@ matroskademux demuxes a Matroska file into the different contained streams.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -217,8 +229,11 @@ matroskademux demuxes a Matroska file into the different contained streams.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html b/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html
index 458ebcb2b..90fbc67e1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>matroskamux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-level.html" title="level">
@@ -80,13 +80,13 @@ matroskamux muxes different input streams into a Matroska file.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp14612624"></a><h3>Example launch line</h3>
+<a name="idp14334992"></a><h3>Example launch line</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><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=/</span>path<span class="gtkdoc opt">/</span>to<span class="gtkdoc opt">/</span>mp3 <span class="gtkdoc opt">!</span> mp3parse <span class="gtkdoc opt">!</span> matroskamux name<span class="gtkdoc opt">=</span>mux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>test<span class="gtkdoc opt">.</span>mkv  filesrc location<span class="gtkdoc opt">=/</span>path<span class="gtkdoc opt">/</span>to<span class="gtkdoc opt">/</span>theora<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> theoraparse <span class="gtkdoc opt">!</span> mux<span class="gtkdoc opt">.</span></pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=/</span>path<span class="gtkdoc opt">/</span>to<span class="gtkdoc opt">/</span>mp3 <span class="gtkdoc opt">!</span> mpegaudioparse <span class="gtkdoc opt">!</span> matroskamux name<span class="gtkdoc opt">=</span>mux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>test<span class="gtkdoc opt">.</span>mkv  filesrc location<span class="gtkdoc opt">=/</span>path<span class="gtkdoc opt">/</span>to<span class="gtkdoc opt">/</span>theora<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> theoraparse <span class="gtkdoc opt">!</span> mux<span class="gtkdoc opt">.</span></pre></td>
       </tr>
     </tbody>
   </table>
@@ -109,9 +109,12 @@ matroskamux muxes different input streams into a Matroska file.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14746480"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9168064"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -132,9 +135,12 @@ matroskamux muxes different input streams into a Matroska file.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14080144"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12476352"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -206,8 +212,11 @@ matroskamux muxes different input streams into a Matroska file.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -251,8 +260,11 @@ matroskamux muxes different input streams into a Matroska file.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -324,8 +336,11 @@ matroskamux muxes different input streams into a Matroska file.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html b/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html
index 416da4618..0650f3f3e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>mj2mux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-matroskademux.html" title="matroskademux">
@@ -133,7 +133,7 @@ presentation-timestamp.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp15729024"></a><h3>Example pipelines</h3>
+<a name="idp14752432"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -156,9 +156,12 @@ Documentation last reviewed on 2011-04-21
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp15732368"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14755488"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -179,9 +182,12 @@ Documentation last reviewed on 2011-04-21
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14813312"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13537184"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -205,8 +211,11 @@ Documentation last reviewed on 2011-04-21
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -230,8 +239,11 @@ Documentation last reviewed on 2011-04-21
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -270,7 +282,7 @@ Documentation last reviewed on 2011-04-21
 <div class="refsect2">
 <a name="GstMJ2Mux--dts-method"></a><h3>The <code class="literal">"dts-method"</code> property</h3>
 <pre class="programlisting">  "dts-method"               <span class="type">GstQTMuxDtsMethods</span>    : Read / Write / Construct</pre>
-<p>Method to determine DTS time.</p>
+<p>(DEPRECATED) Method to determine DTS time.</p>
 <p>Default value: reorder</p>
 </div>
 <hr>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-monoscope.html b/docs/plugins/html/gst-plugins-good-plugins-monoscope.html
index 5c8216b67..36b0b7aaa 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-monoscope.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-monoscope.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>monoscope</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-mj2mux.html" title="mj2mux">
@@ -24,6 +24,8 @@
 <a href="#gst-plugins-good-plugins-monoscope.synopsis" class="shortcut">Top</a>
                    | 
                   <a href="#gst-plugins-good-plugins-monoscope.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-monoscope.object-hierarchy" class="shortcut">Object Hierarchy</a>
 </td></tr>
 </table>
 <div class="refentry">
@@ -37,7 +39,17 @@
 </tr></table></div>
 <div class="refsynopsisdiv">
 <a name="gst-plugins-good-plugins-monoscope.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="gst-plugins-good-plugins-monoscope.html#GstMonoscope" title="struct GstMonoscope">GstMonoscope</a>;
+<a name="GstMonoscope"></a><pre class="synopsis">struct              <a class="link" href="gst-plugins-good-plugins-monoscope.html#GstMonoscope-struct" title="struct GstMonoscope">GstMonoscope</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-monoscope.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://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</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>
+                     +----GstMonoscope
 </pre>
 </div>
 <div class="refsect1">
@@ -49,7 +61,7 @@ curve of the audio signal like on an oscilloscope.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10140656"></a><h3>Example launch line</h3>
+<a name="idp10969296"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -67,9 +79,12 @@ curve of the audio signal like on an oscilloscope.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp5124976"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13230656"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -90,9 +105,12 @@ curve of the audio signal like on an oscilloscope.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14417904"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7571392"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -112,8 +130,11 @@ curve of the audio signal like on an oscilloscope.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -141,40 +162,8 @@ curve of the audio signal like on an oscilloscope.
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-monoscope.details"></a><h2>Details</h2>
 <div class="refsect2">
-<a name="GstMonoscope"></a><h3>struct GstMonoscope</h3>
-<pre class="programlisting">struct GstMonoscope {
-  GstElement element;
-
-  /* pads */
-  GstPad      *sinkpad;
-  GstPad      *srcpad;
-
-  GstAdapter  *adapter;
-
-  guint64      next_ts;             /* expected timestamp of the next frame */
-  guint64      frame_duration;      /* video frame duration    */
-  gint         rate;                /* sample rate             */
-  guint        bps;                 /* bytes per sample        */
-  guint        spf;                 /* samples per video frame */
-  GstBufferPool *pool;
-
-  GstSegment   segment;
-
-  /* QoS stuff *//* with LOCK */
-  gdouble      proportion;
-  GstClockTime earliest_time;
-
-  /* video state */
-  gint         fps_num;
-  gint         fps_denom;
-  gint         width;
-  gint         height;
-  guint        outsize;
-
-  /* visualisation state */
-  struct monoscope_state *visstate;
-};
-</pre>
+<a name="GstMonoscope-struct"></a><h3>struct GstMonoscope</h3>
+<pre class="programlisting">struct GstMonoscope;</pre>
 <p>
 </p>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html b/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
index 105640cfe..79ebceb7b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>mp4mux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-mpegaudioparse.html" title="mpegaudioparse">
@@ -133,7 +133,7 @@ presentation-timestamp.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10113824"></a><h3>Example pipelines</h3>
+<a name="idp10367840"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -156,9 +156,12 @@ Documentation last reviewed on 2011-04-21
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp15678352"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13531488"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -179,9 +182,12 @@ Documentation last reviewed on 2011-04-21
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12626784"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14918784"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -209,8 +215,11 @@ Documentation last reviewed on 2011-04-21
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -242,8 +251,11 @@ Documentation last reviewed on 2011-04-21
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -283,7 +295,7 @@ Documentation last reviewed on 2011-04-21
 <div class="refsect2">
 <a name="GstMP4Mux--dts-method"></a><h3>The <code class="literal">"dts-method"</code> property</h3>
 <pre class="programlisting">  "dts-method"               <span class="type">GstQTMuxDtsMethods</span>    : Read / Write / Construct</pre>
-<p>Method to determine DTS time.</p>
+<p>(DEPRECATED) Method to determine DTS time.</p>
 <p>Default value: reorder</p>
 </div>
 <hr>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html b/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html
index 1c500a621..d2ea25de3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>mpegaudioparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-monoscope.html" title="monoscope">
@@ -61,7 +61,7 @@ Parses and frames mpeg1 audio streams. Provides seeking.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7120048"></a><h3>Example launch line</h3>
+<a name="idp16243328"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -79,9 +79,12 @@ Parses and frames mpeg1 audio streams. Provides seeking.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8793104"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7740160"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -102,9 +105,12 @@ Parses and frames mpeg1 audio streams. Provides seeking.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13371872"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12269616"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -124,8 +130,11 @@ Parses and frames mpeg1 audio streams. Provides seeking.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html b/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html
index 0fcc6041c..2dfeedb17 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>mulawdec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-mp4mux.html" title="mp4mux">
@@ -49,7 +49,8 @@
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</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>
-                     +----GstMuLawDec
+                     +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">GstAudioDecoder</a>
+                           +----GstMuLawDec
 </pre>
 </div>
 <div class="refsect1">
@@ -60,9 +61,12 @@ This element decodes mulaw audio. Mulaw coding is also known as G.711.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7186464"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12608960"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -83,9 +87,12 @@ This element decodes mulaw audio. Mulaw coding is also known as G.711.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8676240"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8258704"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -105,8 +112,11 @@ This element decodes mulaw audio. Mulaw coding is also known as G.711.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html b/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html
index ecf0a4c5e..a4a0f768b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>mulawenc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-mulawdec.html" title="mulawdec">
@@ -49,9 +49,12 @@ This element encode mulaw audio. Mulaw coding is also known as G.711.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp12881648"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10538176"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -72,9 +75,12 @@ This element encode mulaw audio. Mulaw coding is also known as G.711.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10665888"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5782128"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -94,8 +100,11 @@ This element encode mulaw audio. Mulaw coding is also known as G.711.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -132,9 +141,7 @@ This element encode mulaw audio. Mulaw coding is also known as G.711.
 <div class="refsect2">
 <a name="GstMuLawEnc"></a><h3>struct GstMuLawEnc</h3>
 <pre class="programlisting">struct GstMuLawEnc {
-  GstElement element;
-
-  GstPad *sinkpad,*srcpad;
+  GstAudioEncoder element;
 
   gint channels;
   gint rate;
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html b/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html
index 21ef8e76f..7832a001b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>multifilesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-mulawenc.html" title="mulawenc">
@@ -85,7 +85,7 @@ buffer.
 <p>
 The message's structure contains these fields:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *
   <code class="classname">"filename"</code>:
@@ -132,7 +132,7 @@ The message's structure contains these fields:
 <p>
 </p>
 <div class="refsect2">
-<a name="idp13504496"></a><h3>Example launch line</h3>
+<a name="idp15687424"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -155,9 +155,12 @@ Last reviewed on 2009-09-11 (0.10.17)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp12813328"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp15401296"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -178,9 +181,12 @@ Last reviewed on 2009-09-11 (0.10.17)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12915296"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp15951312"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -227,8 +233,11 @@ Last reviewed on 2009-09-11 (0.10.17)
 <p>
 File splitting modes.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-MULTI-FILE-SINK-NEXT-BUFFER:CAPS"></a><span class="term"><code class="literal">GST_MULTI_FILE_SINK_NEXT_BUFFER</code></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html b/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html
index 2881befee..6e2f33b5e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>multifilesrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-multifilesink.html" title="multifilesink">
@@ -82,7 +82,7 @@ File names are created by replacing "%d" with the index using <code class="funct
 <p>
 </p>
 <div class="refsect2">
-<a name="idp12587536"></a><h3>Example launch line</h3>
+<a name="idp6917552"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -105,9 +105,12 @@ files named img.0000.png, img.0001.png, etc.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11092496"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14719936"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -128,9 +131,12 @@ files named img.0000.png, img.0001.png, etc.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8905968"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp15852592"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html b/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html
index a541bbfaa..6726f0d68 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>multipartdemux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-multifilesrc.html" title="multifilesrc">
@@ -83,13 +83,13 @@ otherwise it will be autodetected.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp12937968"></a><h3>Sample pipelines</h3>
+<a name="idp7623712"></a><h3>Sample 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><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=/</span>tmp<span class="gtkdoc opt">/</span>test<span class="gtkdoc opt">.</span>multipart <span class="gtkdoc opt">!</span> multipartdemux <span class="gtkdoc opt">!</span> jpegdec <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> ximagesink</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=/</span>tmp<span class="gtkdoc opt">/</span>test<span class="gtkdoc opt">.</span>multipart <span class="gtkdoc opt">!</span> multipartdemux <span class="gtkdoc opt">!</span> image<span class="gtkdoc opt">/</span>jpeg<span class="gtkdoc opt">,</span>framerate<span class="gtkdoc opt">=</span>\<span class="gtkdoc opt">(</span>fraction\<span class="gtkdoc opt">)</span><span class="number">5</span><span class="gtkdoc opt">/</span><span class="number">1</span> <span class="gtkdoc opt">!</span> jpegparse <span class="gtkdoc opt">!</span> jpegdec <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td>
       </tr>
     </tbody>
   </table>
@@ -102,9 +102,12 @@ containing JPEG frames.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14320496"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp16143408"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -125,9 +128,12 @@ containing JPEG frames.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13713664"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12469088"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -147,8 +153,11 @@ containing JPEG frames.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html b/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html
index eaffe8ac5..25100cb09 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>multipartmux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-multipartdemux.html" title="multipartdemux">
@@ -70,7 +70,7 @@ multipart streams are sequential JPEG frames.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp11933184"></a><h3>Sample pipelines</h3>
+<a name="idp15404272"></a><h3>Sample pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -89,9 +89,12 @@ stored to a file.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp12708992"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp16080048"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -112,9 +115,12 @@ stored to a file.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14552816"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13513024"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -134,8 +140,11 @@ stored to a file.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html b/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html
index d5d6ba961..69315871f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>multiudpsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-multipartmux.html" title="multipartmux">
@@ -79,6 +79,10 @@
   "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--used-socket" title='The "used-socket" property'>used-socket</a>"              <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>*              : Read
   "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--force-ipv4" title='The "force-ipv4" property'>force-ipv4</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-good-plugins-multiudpsink.html#GstMultiUDPSink--multicast-iface" title='The "multicast-iface" property'>multicast-iface</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-good-plugins-multiudpsink.html#GstMultiUDPSink--bind-address" title='The "bind-address" property'>bind-address</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-good-plugins-multiudpsink.html#GstMultiUDPSink--bind-port" title='The "bind-port" property'>bind-port</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-good-plugins-multiudpsink.html#GstMultiUDPSink--socket-v6" title='The "socket-v6" property'>socket-v6</a>"                <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>*              : Read / Write
+  "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--used-socket-v6" title='The "used-socket-v6" property'>used-socket-v6</a>"           <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>*              : Read
 </pre>
 </div>
 <div class="refsect1">
@@ -102,9 +106,12 @@ It can be combined with rtp payload encoders to implement RTP streaming.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp16298464"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14049856"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -125,9 +132,12 @@ It can be combined with rtp payload encoders to implement RTP streaming.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11318592"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp16449600"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -282,7 +292,7 @@ It can be combined with rtp payload encoders to implement RTP streaming.
 <div class="refsect2">
 <a name="GstMultiUDPSink--force-ipv4"></a><h3>The <code class="literal">"force-ipv4"</code> property</h3>
 <pre class="programlisting">  "force-ipv4"               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>Forcing the use of an IPv4 socket.</p>
+<p>Forcing the use of an IPv4 socket (DEPRECATED, has no effect anymore).</p>
 <p>Default value: FALSE</p>
 </div>
 <hr>
@@ -292,6 +302,33 @@ It can be combined with rtp payload encoders to implement RTP streaming.
 <p>The network interface on which to join the multicast group.</p>
 <p>Default value: NULL</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstMultiUDPSink--bind-address"></a><h3>The <code class="literal">"bind-address"</code> property</h3>
+<pre class="programlisting">  "bind-address"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write</pre>
+<p>Address to bind the socket to.</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstMultiUDPSink--bind-port"></a><h3>The <code class="literal">"bind-port"</code> property</h3>
+<pre class="programlisting">  "bind-port"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
+<p>Port to bind the socket to.</p>
+<p>Allowed values: [0,65535]</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstMultiUDPSink--socket-v6"></a><h3>The <code class="literal">"socket-v6"</code> property</h3>
+<pre class="programlisting">  "socket-v6"                <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>*              : Read / Write</pre>
+<p>Socket to use for UDPv6 sending. (NULL == allocate).</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstMultiUDPSink--used-socket-v6"></a><h3>The <code class="literal">"used-socket-v6"</code> property</h3>
+<pre class="programlisting">  "used-socket-v6"           <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>*              : Read</pre>
+<p>Socket currently in use for UDPv6 sending. (NULL == no socket).</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-multiudpsink.signal-details"></a><h2>Signal Details</h2>
@@ -312,8 +349,11 @@ When a host/port pair is added multiple times, an equal amount of remove
 calls must be performed to actually remove the host/port pair from the list
 of destinations.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultiudpsink</code></em> :</span></p></td>
@@ -342,8 +382,11 @@ of destinations.
 <p>
 Clear the list of clients.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultiudpsink</code></em> :</span></p></td>
@@ -367,8 +410,11 @@ Clear the list of clients.
 Signal emited when a new client is added to the list of
 clients.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultiudpsink</code></em> :</span></p></td>
@@ -400,8 +446,11 @@ clients.
 Signal emited when a client is removed from the list of
 clients.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultiudpsink</code></em> :</span></p></td>
@@ -432,8 +481,11 @@ clients.
 <p>
 Get the statistics of the client with destination <em class="parameter"><code>host</code></em> and <em class="parameter"><code>port</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultiudpsink</code></em> :</span></p></td>
@@ -470,8 +522,11 @@ connect_time (in epoch seconds), disconnect_time (in epoch seconds)</td>
 Remove the client with destination <em class="parameter"><code>host</code></em> and <em class="parameter"><code>port</code></em> from the list of
 clients.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultiudpsink</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-optv.html b/docs/plugins/html/gst-plugins-good-plugins-optv.html
index 3898dce97..ef9c1d899 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-optv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-optv.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>optv</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-multiudpsink.html" title="multiudpsink">
@@ -74,7 +74,7 @@ various optical pattern.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp11304208"></a><h3>Example launch line</h3>
+<a name="idp14597760"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -92,9 +92,12 @@ various optical pattern.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp15371936"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10356160"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -115,9 +118,12 @@ various optical pattern.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp15748128"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13586944"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -137,8 +143,11 @@ various optical pattern.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html b/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html
index dc9d78e48..91b65af78 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>oss4sink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-optv.html" title="optv">
@@ -63,7 +63,7 @@
 <a name="gst-plugins-good-plugins-oss4sink.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstOss4Sink implements
- <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a> and  GstPropertyProbe.</p>
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe">GstPropertyProbe</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-oss4sink.properties"></a><h2>Properties</h2>
@@ -79,9 +79,12 @@ GstOss4Sink implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp15609504"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13517072"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -102,9 +105,12 @@ GstOss4Sink implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13595168"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13642496"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-oss4src.html b/docs/plugins/html/gst-plugins-good-plugins-oss4src.html
index 54592e395..2524967e3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-oss4src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-oss4src.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>oss4src</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-oss4sink.html" title="oss4sink">
@@ -64,7 +64,7 @@
 <a name="gst-plugins-good-plugins-oss4src.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstOss4Source implements
- GstImplementsInterface,  GstMixer and  GstPropertyProbe.</p>
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstImplementsInterface.html">GstImplementsInterface</a>,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstmixer.html#GstMixer">GstMixer</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe">GstPropertyProbe</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-oss4src.properties"></a><h2>Properties</h2>
@@ -78,9 +78,12 @@ GstOss4Source implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp13682592"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13323888"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -101,9 +104,12 @@ GstOss4Source implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13426240"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12021600"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osssink.html b/docs/plugins/html/gst-plugins-good-plugins-osssink.html
index b372fa567..c47d753b0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osssink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osssink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>osssink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-oss4src.html" title="oss4src">
@@ -68,9 +68,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp5582064"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11615264"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -91,9 +94,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14582432"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp15269472"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osssrc.html b/docs/plugins/html/gst-plugins-good-plugins-osssrc.html
index 6ce7801a0..39b4a8149 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osssrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osssrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>osssrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-osssink.html" title="osssink">
@@ -64,7 +64,7 @@
 <a name="gst-plugins-good-plugins-osssrc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstOssSrc implements
- GstImplementsInterface and  GstMixer.</p>
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstImplementsInterface.html">GstImplementsInterface</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstmixer.html#GstMixer">GstMixer</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-osssrc.properties"></a><h2>Properties</h2>
@@ -78,9 +78,12 @@ GstOssSrc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14571504"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13759328"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -101,9 +104,12 @@ GstOssSrc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp16570864"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13546272"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html
index 43e27c45f..1ace96883 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>osxaudiosink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-osssrc.html" title="osssrc">
@@ -53,9 +53,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp17285328"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14049248"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -76,7 +79,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp16067888"></a><h3>Element Pads</h3>
+<a name="idp13258704"></a><h3>Element Pads</h3>
 </div>
 </div>
 <p>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html
index 03e49b6dd..f84ff921d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>osxaudiosrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-osxaudiosink.html" title="osxaudiosink">
@@ -53,9 +53,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp15969136"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10918048"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -76,7 +79,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6861472"></a><h3>Element Pads</h3>
+<a name="idp13610688"></a><h3>Element Pads</h3>
 </div>
 </div>
 <p>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html b/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html
index 21fe0d72a..22eb00b07 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>osxvideosink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-osxaudiosrc.html" title="osxaudiosrc">
@@ -54,9 +54,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14782080"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14698720"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -77,7 +80,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp15205696"></a><h3>Element Pads</h3>
+<a name="idp12578672"></a><h3>Element Pads</h3>
 </div>
 </div>
 <p>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html
index 1ccf08f9d..d09154a5c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>1394</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="ch02.html" title="gst-plugins-good Plugins">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp20940176"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26023312"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp25264544"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp19608480"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-dv1394src.html" title="dv1394src">dv1394src</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html
index 3c32070a7..80cc9e8bf 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>aasink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-1394.html" title="1394">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24682320"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp22584288"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp10217456"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24522832"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-aasink.html" title="aasink">aasink</a></span></p></td>
 <td>An ASCII art videosink</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html
index cdd92afd9..8c36b4d6e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>alaw</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-aasink.html" title="aasink">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp25354688"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp22335152"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp19013408"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26057520"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-alawdec.html" title="alawdec">alawdec</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html
index 3c971f9df..c99e1fa78 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>alpha</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-alaw.html" title="alaw">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp23804720"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25840256"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp22564464"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp21784080"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-alpha.html" title="alpha">alpha</a></span></p></td>
 <td>Adds an alpha channel to video - uniform or via chroma-keying</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html
index 426ce76bb..f6a8b78da 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>alphacolor</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-alpha.html" title="alpha">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24293904"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25562720"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp24677696"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp23867264"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-alphacolor.html" title="alphacolor">alphacolor</a></span></p></td>
 <td>ARGB from/to AYUV colorspace conversion preserving the alpha channel</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html
index 9901be75a..2c0948d89 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>apetag</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-alphacolor.html" title="alphacolor">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24412240"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26433872"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp21469792"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25130240"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-apedemux.html" title="apedemux">apedemux</a></span></p></td>
 <td>Read and output APE tags while demuxing the contents</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html
index 856491094..f0d3f2783 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiofx</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-apetag.html" title="apetag">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp25101792"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp23920128"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp20524224"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp23283712"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-audioamplify.html" title="audioamplify">audioamplify</a></span></p></td>
@@ -109,6 +115,10 @@
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-audiowsinclimit.html" title="audiowsinclimit">audiowsinclimit</a></span></p></td>
 <td>Low pass and high pass windowed sinc filter</td>
 </tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-scaletempo.html" title="scaletempo">scaletempo</a></span></p></td>
+<td>Sync audio tempo with playback rate</td>
+</tr>
 </tbody>
 </table></div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html
index c05effbb0..9a5b0bd2d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>auparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-audiofx.html" title="audiofx">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp25443376"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25517648"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp21545168"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26058368"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-auparse.html" title="auparse">auparse</a></span></p></td>
 <td>Parse an .au file into raw audio</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html
index 71c964c15..df2cee8a1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>autodetect</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-auparse.html" title="auparse">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp25063984"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24414128"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp22424400"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp20669392"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-autoaudiosink.html" title="autoaudiosink">autoaudiosink</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html
index a2b04634c..b76047fb8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>avi</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-autodetect.html" title="autodetect">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp5141584"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25518288"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp14044528"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26382656"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-avidemux.html" title="avidemux">avidemux</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html
index 21039637d..bb7094af2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>cacasink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-avi.html" title="avi">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp23085168"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26346320"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp19907872"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp20240480"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-cacasink.html" title="cacasink">cacasink</a></span></p></td>
 <td>A colored ASCII art videosink</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html
index 7f02ba639..eaad4d050 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>cairo</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-cacasink.html" title="cacasink">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24677184"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp23936544"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp23082112"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24520512"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-cairooverlay.html" title="cairooverlay">cairooverlay</a></span></p></td>
 <td>Render overlay on a video stream using Cairo</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html
index 8a7772a84..687737df2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>cutter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-cairo.html" title="cairo">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp25525488"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24271488"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp22703904"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp22744672"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-cutter.html" title="cutter">cutter</a></span></p></td>
 <td>Audio Cutter to split audio into non-silent bits</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html
index c5053d911..8be1d7702 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>debug</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-cutter.html" title="cutter">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp25347328"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp22493040"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp22601072"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24928944"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">breakmydata</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html
index 5f55374b4..1c4627473 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>deinterlace</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-debug.html" title="debug">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp19616496"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24287888"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp25459392"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp23148544"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-deinterlace.html" title="deinterlace">deinterlace</a></span></p></td>
 <td>Deinterlace Methods ported from DScaler/TvTime</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html
index 1d8f6cb4b..4f5ff1d36 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>directsound</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-deinterlace.html" title="deinterlace">
-<link rel="next" href="gst-plugins-good-plugins-plugin-dv.html" title="dv">
+<link rel="next" href="gst-plugins-good-plugins-plugin-dtmf.html" title="dtmf">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,7 +17,7 @@
 <td><a accesskey="u" href="ch02.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 Good Plugins 1.0 Plugins Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-dv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-dtmf.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-directsound"></a><div class="titlepage"></div>
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24252704"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24304288"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp17978464"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24356896"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-directsoundsink.html" title="directsoundsink">directsoundsink</a></span></p></td>
 <td>DirectSound audio sink</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html
new file mode 100644
index 000000000..1e7a1f90d
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>dtmf</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-directsound.html" title="directsound">
+<link rel="next" href="gst-plugins-good-plugins-plugin-dv.html" title="dv">
+<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-good-plugins-plugin-directsound.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch02.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 Good Plugins 1.0 Plugins Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-dv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-plugin-dtmf"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle">dtmf</span></h2>
+<p>dtmf — <a name="plugin-dtmf"></a>DTMF plugins</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="idp26377456"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">filename</span></p></td>
+<td>libgstdtmf.so</td>
+</tr>
+<tr>
+<td><p><span class="term">version</span></p></td>
+<td>1.1.2</td>
+</tr>
+<tr>
+<td><p><span class="term">run-time license</span></p></td>
+<td>LGPL</td>
+</tr>
+<tr>
+<td><p><span class="term">package</span></p></td>
+<td>GStreamer Good Plug-ins source release</td>
+</tr>
+<tr>
+<td><p><span class="term">origin</span></p></td>
+<td>Unknown package origin</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="idp25408368"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-dtmfsrc.html" title="dtmfsrc">dtmfsrc</a></span></p></td>
+<td>Generates DTMF tones</td>
+</tr>
+<tr>
+<td><p><span class="term">rtpdtmfdepay</span></p></td>
+<td>Generates DTMF Sound from telephone-event RTP packets</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html" title="rtpdtmfsrc">rtpdtmfsrc</a></span></p></td>
+<td>Generates RTP DTMF packets</td>
+</tr>
+</tbody>
+</table></div>
+</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/plugins/html/gst-plugins-good-plugins-plugin-dv.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html
index a31e5bff4..5f1951dd9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html
@@ -3,17 +3,17 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>dv</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
-<link rel="prev" href="gst-plugins-good-plugins-plugin-directsound.html" title="directsound">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-dtmf.html" title="dtmf">
 <link rel="next" href="gst-plugins-good-plugins-plugin-equalizer.html" title="equalizer">
 <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-good-plugins-plugin-directsound.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-dtmf.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch02.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 Good Plugins 1.0 Plugins Reference Manual</th>
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24555520"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24530496"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp23654144"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp23842800"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-dvdec.html" title="dvdec">dvdec</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html
index e637e88f5..f1024b397 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>effectv</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-equalizer.html" title="equalizer">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24533328"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp21291472"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp21871328"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24843360"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-agingtv.html" title="agingtv">agingtv</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html
index 332b1d5fa..82d01ea96 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>equalizer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-dv.html" title="dv">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp21871200"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26342304"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp21735584"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp23828304"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html" title="equalizer-10bands">equalizer-10bands</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html
index 3b87742d0..86189b618 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>flac</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-effectv.html" title="effectv">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24139872"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25383312"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp25529504"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp21285936"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-flacdec.html" title="flacdec">flacdec</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html
index d3c4affeb..d41f7cf75 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>flv</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-flac.html" title="flac">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp23452016"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp21893536"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp24351408"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24905504"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-flvdemux.html" title="flvdemux">flvdemux</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html
index dda4111a4..ff7692bbd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>flxdec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-flv.html" title="flv">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp22434528"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp2924272"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp23575680"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp20412880"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-flxdec.html" title="flxdec">flxdec</a></span></p></td>
 <td>FLC/FLI/FLX video decoder</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html
index 094c04490..42d128492 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gdkpixbuf</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-flxdec.html" title="flxdec">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp7582160"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp23507376"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,16 +60,19 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp25598000"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp22831072"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">gdkpixbufdec</span></p></td>
 <td>Decodes images in a video stream using GdkPixbuf</td>
 </tr>
 <tr>
-<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html" title="gdkpixbufoverlay">gdkpixbufoverlay</a></span></p></td>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good/html/gst-plugins-good-plugins-gdkpixbufoverlay.html">gdkpixbufoverlay</a></span></p></td>
 <td>Overlay an image onto a video stream</td>
 </tr>
 <tr>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html
index 6025a4947..6a65dd300 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>goom</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-gdkpixbuf.html" title="gdkpixbuf">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24509712"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25911520"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp22307616"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26118640"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-goom.html" title="goom">goom</a></span></p></td>
 <td>Takes frames of data and outputs video frames using the GOOM filter</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html
index 081ce919e..8912fc503 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>goom2k1</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-goom.html" title="goom">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24465184"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25927920"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp22728976"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24692688"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-goom2k1.html" title="goom2k1">goom2k1</a></span></p></td>
 <td>Takes frames of data and outputs video frames using the GOOM 2k1 filter</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html
index 4939ea4ad..e564e92a8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>icydemux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-goom2k1.html" title="goom2k1">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp19983280"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25865408"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp22449888"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24474176"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-icydemux.html" title="icydemux">icydemux</a></span></p></td>
 <td>Read and output ICY tags while demuxing the contents</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html
index f775184ea..b871396c3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>id3demux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-icydemux.html" title="icydemux">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24664576"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26736768"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp23706048"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp23681664"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-id3demux.html" title="id3demux">id3demux</a></span></p></td>
 <td>Read and output ID3v1 and ID3v2 tags while demuxing the contents</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html
index e95fc4a5e..3ced9c33b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>imagefreeze</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-id3demux.html" title="id3demux">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp21016608"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26713104"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp22256448"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24678816"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-imagefreeze.html" title="imagefreeze">imagefreeze</a></span></p></td>
 <td>Generates a still frame stream from an image</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html
index bfbaa2ea3..f02afde5f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>interleave</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-imagefreeze.html" title="imagefreeze">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp22010224"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25041184"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp23699312"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24638704"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-deinterleave.html" title="deinterleave">deinterleave</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html
index c60b28f7b..c7388fa55 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>isomp4</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-interleave.html" title="interleave">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24434720"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24262240"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp24415872"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24907600"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-3gppmux.html" title="3gppmux">3gppmux</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html
index 550b686ef..7be211431 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>jack</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-isomp4.html" title="isomp4">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp25717040"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp22569920"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp22544784"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25854800"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-jackaudiosink.html" title="jackaudiosink">jackaudiosink</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html
index e29674a44..c571e70c8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>jpeg</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-jack.html" title="jack">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp23572704"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26444768"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp18084096"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp23302352"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-jpegdec.html" title="jpegdec">jpegdec</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html
index 1dedbb18d..5f5a92c8e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>level</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-jpeg.html" title="jpeg">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp16209552"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp13204288"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp25294384"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25993696"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-level.html" title="level">level</a></span></p></td>
 <td>RMS/Peak/Decaying Peak Level messager for audio/raw</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html
index 9ca897f1b..268d328f4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>matroska</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-level.html" title="level">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp25334432"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp9308720"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp24283456"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp18568672"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-matroskademux.html" title="matroskademux">matroskademux</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html
index 4f799cff2..22b0a1e4a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>monoscope</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-matroska.html" title="matroska">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp19090512"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26233696"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.11.94.1</td>
+<td>1.1.1.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp25355888"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp22836592"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-monoscope.html" title="monoscope">monoscope</a></span></p></td>
 <td>Displays a highly stabilised waveform of audio input</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html
index 1000bd971..e9db6e92a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>mulaw</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-monoscope.html" title="monoscope">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp19701104"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp17919760"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp24269728"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp23872432"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-mulawdec.html" title="mulawdec">mulawdec</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html
index feac309d0..b130884e7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>multifile</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-mulaw.html" title="mulaw">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp25497616"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp23291264"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp18938960"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp22486416"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-multifilesink.html" title="multifilesink">multifilesink</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html
index 5cd72b1e8..2f13f69a4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>multipart</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-multifile.html" title="multifile">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp25385648"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26156448"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp24353536"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp23291392"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-multipartdemux.html" title="multipartdemux">multipartdemux</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html
index 9636ee48c..880829f03 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>navigationtest</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-multipart.html" title="multipart">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp19193920"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24734288"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp19762160"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24143440"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term">navigationtest</span></p></td>
 <td>Handle navigation events showing a black square following mouse pointer</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html
index cef704acd..d0dd6feb3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>oss4</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-navigationtest.html" title="navigationtest">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24638576"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24386096"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp23557696"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp27016592"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-oss4sink.html" title="oss4sink">oss4sink</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html
index 7ffebe6ab..52f9659b6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ossaudio</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-oss4.html" title="oss4">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24669616"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp23526368"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp23700512"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp27043776"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-osssink.html" title="osssink">osssink</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html
index 10f685c35..03ddf7abb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>osxaudio</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-ossaudio.html" title="ossaudio">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp23870000"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp23786304"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp24436928"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp23285952"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-osxaudiosink.html" title="osxaudiosink">osxaudiosink</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html
index c46bb4b75..d7e47962a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>osxvideo</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-osxaudio.html" title="osxaudio">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24459344"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp22393728"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp24567376"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24998992"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-osxvideosink.html" title="osxvideosink">osxvideosink</a></span></p></td>
 <td>OSX native videosink</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html
index 19369f434..507213795 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>png</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-osxvideo.html" title="osxvideo">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp23505296"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26138976"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp23794768"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25082848"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-pngdec.html" title="pngdec">pngdec</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html
index 0ceec8f96..53a393be1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>pulseaudio</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-png.html" title="png">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp25902864"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24337728"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp24649824"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp21613648"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-pulsesink.html" title="pulsesink">pulsesink</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html
index 55e588afd..335e94435 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>replaygain</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-pulseaudio.html" title="pulseaudio">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp26184592"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp19282720"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp18316096"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25417360"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rganalysis.html" title="rganalysis">rganalysis</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html
index 0b26f180e..ffb7ea1c1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>rtp</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-replaygain.html" title="replaygain">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp23111984"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26065696"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,44 +60,47 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp25076656"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25427008"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">asteriskh263</span></p></td>
 <td>Extracts H263 video from RTP and encodes in Asterisk H263 format</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpL16depay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpL16depay.html" title="rtpL16depay">rtpL16depay</a></span></p></td>
 <td>Extracts raw audio from RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpL16pay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpL16pay.html" title="rtpL16pay">rtpL16pay</a></span></p></td>
 <td>Payload-encode Raw audio into RTP packets (RFC 3551)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpac3depay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpac3depay.html" title="rtpac3depay">rtpac3depay</a></span></p></td>
 <td>Extracts AC3 audio from RTP packets (RFC 4184)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpac3pay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpac3pay.html" title="rtpac3pay">rtpac3pay</a></span></p></td>
 <td>Payload AC3 audio as RTP packets (RFC 4184)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpamrdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpamrdepay.html" title="rtpamrdepay">rtpamrdepay</a></span></p></td>
 <td>Extracts AMR or AMR-WB audio from RTP packets (RFC 3267)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpamrpay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpamrpay.html" title="rtpamrpay">rtpamrpay</a></span></p></td>
 <td>Payload-encode AMR or AMR-WB audio into RTP packets (RFC 3267)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpbvdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpbvdepay.html" title="rtpbvdepay">rtpbvdepay</a></span></p></td>
 <td>Extracts BroadcomVoice audio from RTP packets (RFC 4298)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpbvpay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpbvpay.html" title="rtpbvpay">rtpbvpay</a></span></p></td>
 <td>Packetize BroadcomVoice audio streams into RTP packets (RFC 4298)</td>
 </tr>
 <tr>
@@ -290,6 +296,14 @@
 <td>Extracts QDM2 audio from RTP packets (no RFC)</td>
 </tr>
 <tr>
+<td><p><span class="term">rtpsbcdepay</span></p></td>
+<td>Extracts SBC audio from RTP packets</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpsbcpay.html" title="rtpsbcpay">rtpsbcpay</a></span></p></td>
+<td>Payload SBC audio as RTP packets</td>
+</tr>
+<tr>
 <td><p><span class="term">rtpsirendepay</span></p></td>
 <td>Extracts Siren audio from RTP packets</td>
 </tr>
@@ -326,6 +340,14 @@
 <td>Payload-encode Vorbis audio into RTP packets (RFC 5215)</td>
 </tr>
 <tr>
+<td><p><span class="term">rtpvp8depay</span></p></td>
+<td>Extracts VP8 video from RTP packets)</td>
+</tr>
+<tr>
+<td><p><span class="term">rtpvp8pay</span></p></td>
+<td>Puts VP8 video in RTP packets)</td>
+</tr>
+<tr>
 <td><p><span class="term">rtpvrawdepay</span></p></td>
 <td>Extracts raw video from RTP packets (RFC 4175)</td>
 </tr>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html
index 45049366e..3fd25d421 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>rtpmanager</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-rtp.html" title="rtp">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp26094512"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24278448"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,19 +60,30 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp21922400"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26112192"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpbin.html" title="rtpbin">rtpbin</a></span></p></td>
 <td>Real-Time Transport Protocol bin</td>
 </tr>
 <tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpdtmfmux.html" title="rtpdtmfmux">rtpdtmfmux</a></span></p></td>
+<td>mixes RTP DTMF streams into other RTP streams</td>
+</tr>
+<tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html" title="rtpjitterbuffer">rtpjitterbuffer</a></span></p></td>
 <td>A buffer that deals with network jitter and other transmission faults</td>
 </tr>
 <tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpmux.html" title="rtpmux">rtpmux</a></span></p></td>
+<td>multiplex N rtp streams into one</td>
+</tr>
+<tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpptdemux.html" title="rtpptdemux">rtpptdemux</a></span></p></td>
 <td>Parses codec streams transmitted in the same RTP session</td>
 </tr>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html
index 545d89c18..43e5bf89b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>rtsp</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-rtpmanager.html" title="rtpmanager">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24687200"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24916816"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp23185760"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26284752"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpdec.html" title="rtpdec">rtpdec</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html
index ad0f9a939..6e8336906 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>shapewipe</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-rtsp.html" title="rtsp">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp15957712"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24205424"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp23788944"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24257840"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-shapewipe.html" title="shapewipe">shapewipe</a></span></p></td>
 <td>Adds a shape wipe transition to a video stream</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html
index 71bf1ca89..fc83d55e9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>shout2send</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-shapewipe.html" title="shapewipe">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp25827296"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp27479232"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp23410256"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25409264"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term">shout2send</span></p></td>
 <td>Sends data to an icecast server</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html
index 3aac91290..278f9df34 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>smpte</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-shout2send.html" title="shout2send">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24632048"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25937392"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp25382448"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24237088"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-smpte.html" title="smpte">smpte</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html
index 5336ff0bb..d7ac1247f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>soup</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-smpte.html" title="smpte">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24627216"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp27192768"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp24276768"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24386880"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">souphttpclientsink</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html
index 8dc6fbb7f..95092f2aa 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>spectrum</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-soup.html" title="soup">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp26081568"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp11998176"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp24468464"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp27075296"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-spectrum.html" title="spectrum">spectrum</a></span></p></td>
 <td>Run an FFT on the audio signal, output spectrum data</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html
index b5a3d2260..4f638ed86 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>speex</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-spectrum.html" title="spectrum">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24770288"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26276240"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp25377392"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp27503520"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-speexdec.html" title="speexdec">speexdec</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html
index 54bbf7ddd..8796bcdbc 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>taglib</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-speex.html" title="speex">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp25931536"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp12158144"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp22260896"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24258992"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-apev2mux.html" title="apev2mux">apev2mux</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html
index 6f9ea3099..28b2dd1c6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>udp</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-taglib.html" title="taglib">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24409200"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24441392"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp25947808"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25453952"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">dynudpsink</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html
index 5cf85efc8..9ed51a6b4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>video4linux2</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-udp.html" title="udp">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp25708944"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp27101824"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp23279776"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26310432"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-v4l2radio.html" title="v4l2radio">v4l2radio</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html
index abfdca6d9..66b55b467 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videobox</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-video4linux2.html" title="video4linux2">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp20589520"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp27347488"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp26219472"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26737856"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-videobox.html" title="videobox">videobox</a></span></p></td>
 <td>Resizes a video by adding borders or cropping</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html
index c94f2f168..193ccdc9a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videocrop</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-videobox.html" title="videobox">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24924464"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26208464"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp17948560"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp22403024"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-aspectratiocrop.html" title="aspectratiocrop">aspectratiocrop</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html
index 2dd31bd10..f838f5974 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videofilter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-videocrop.html" title="videocrop">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24660368"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp27507216"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp23733584"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26738368"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-gamma.html" title="gamma">gamma</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html
index 48cf899ac..c7d9cbb34 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videomixer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-videofilter.html" title="videofilter">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24968752"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp27615024"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp25707584"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25496656"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-videomixer.html" title="videomixer">videomixer</a></span></p></td>
 <td>Mix multiple video streams</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html
index b5eefb80b..e14f827e9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vpx</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-videomixer.html" title="videomixer">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24538064"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26293072"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp25709712"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25853392"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-vp8dec.html" title="vp8dec">vp8dec</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html
index 702cced32..b11c9e60c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>waveform</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-vpx.html" title="vpx">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24526400"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp27591808"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp25327264"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24405152"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-waveformsink.html" title="waveformsink">waveformsink</a></span></p></td>
 <td>WaveForm audio sink</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html
index 9811b612a..8467a8dc7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>wavenc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-waveform.html" title="waveform">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24691088"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26564576"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp24629424"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24911008"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-wavenc.html" title="wavenc">wavenc</a></span></p></td>
 <td>Encode raw audio into WAV</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html
index 691dbabed..a39a73627 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>wavpack</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-wavenc.html" title="wavenc">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24782464"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp27371120"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp22707888"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25916176"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-wavpackdec.html" title="wavpackdec">wavpackdec</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html
index 7ad34f6fd..a589727de 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>wavparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-wavpack.html" title="wavpack">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp26648304"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp27064656"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp25026048"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp25485872"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-wavparse.html" title="wavparse">wavparse</a></span></p></td>
 <td>Parse a .wav file into raw audio</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html
index 6c4f5e51d..82d1f0c15 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ximagesrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-wavparse.html" title="wavparse">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp24482176"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp26076992"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp21947856"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp24911136"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-ximagesrc.html" title="ximagesrc">ximagesrc</a></span></p></td>
 <td>Creates a screenshot video stream</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html
index d33bdc24b..ae39fe583 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>y4menc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-ximagesrc.html" title="ximagesrc">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp25360768"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp27037024"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp25597248"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp27034192"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-y4menc.html" title="y4menc">y4menc</a></span></p></td>
 <td>Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pngdec.html b/docs/plugins/html/gst-plugins-good-plugins-pngdec.html
index f7a40eb53..e71b5de3c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pngdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pngdec.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>pngdec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-osxvideosink.html" title="osxvideosink">
@@ -58,9 +58,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp15865616"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13556896"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -81,9 +84,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13989344"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8619616"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -103,8 +109,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pngenc.html b/docs/plugins/html/gst-plugins-good-plugins-pngenc.html
index fec433caf..8657712a2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pngenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pngenc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>pngenc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-pngdec.html" title="pngdec">
@@ -75,9 +75,12 @@ GstPngEnc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9955424"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp16530336"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -98,9 +101,12 @@ GstPngEnc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13784928"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp15946880"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -120,8 +126,11 @@ GstPngEnc implements
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-progressreport.html b/docs/plugins/html/gst-plugins-good-plugins-progressreport.html
index b3dd23a10..3eb43c3bc 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-progressreport.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-progressreport.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>progressreport</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-pngenc.html" title="pngenc">
@@ -104,7 +104,7 @@ a whole).
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8942912"></a><h3>Example launch line</h3>
+<a name="idp14892784"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -133,9 +133,12 @@ a whole).
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp16517664"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13902208"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -156,9 +159,12 @@ a whole).
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp17893376"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12412560"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -178,8 +184,11 @@ a whole).
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html b/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html
index 8ac899509..66aecbcc4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>pulsesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-progressreport.html" title="progressreport">
@@ -62,7 +62,7 @@
 <a name="gst-plugins-good-plugins-pulsesink.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstPulseSink implements
- <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a>,  GstImplementsInterface and  GstPropertyProbe.</p>
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a>,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstImplementsInterface.html">GstImplementsInterface</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe">GstPropertyProbe</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-pulsesink.properties"></a><h2>Properties</h2>
@@ -82,9 +82,12 @@ GstPulseSink implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp16373600"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5958720"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -105,9 +108,12 @@ GstPulseSink implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp16191584"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10975536"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -220,7 +226,7 @@ GstPulseSink implements
 <a name="GstPulseSink--client-name"></a><h3>The <code class="literal">"client-name"</code> property</h3>
 <pre class="programlisting">  "client-name"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write</pre>
 <p>The PulseAudio client name to use.</p>
-<p>Default value: "lt-gst-plugins-good-plugins-scan"</p>
+<p>Default value: "gst-plugins-good-plugins-scan"</p>
 </div>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html b/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html
index 9b412f10b..3c3897d9b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>pulsesrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-pulsesink.html" title="pulsesink">
@@ -64,7 +64,7 @@
 <a name="gst-plugins-good-plugins-pulsesrc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstPulseSrc implements
- <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a>,  GstImplementsInterface,  GstMixer and  GstPropertyProbe.</p>
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a>,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstImplementsInterface.html">GstImplementsInterface</a>,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstmixer.html#GstMixer">GstMixer</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe">GstPropertyProbe</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-pulsesrc.properties"></a><h2>Properties</h2>
@@ -85,9 +85,12 @@ GstPulseSrc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp13810464"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11232992"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -108,9 +111,12 @@ GstPulseSrc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12221552"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp15340320"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -214,7 +220,7 @@ GstPulseSrc implements
 <a name="GstPulseSrc--client-name"></a><h3>The <code class="literal">"client-name"</code> property</h3>
 <pre class="programlisting">  "client-name"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write</pre>
 <p>The PulseAudio client_name_to_use.</p>
-<p>Default value: "lt-gst-plugins-good-plugins-scan"</p>
+<p>Default value: "gst-plugins-good-plugins-scan"</p>
 </div>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html b/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html
index b970000d9..db285cbae 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>qtdemux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-quarktv.html" title="quarktv">
@@ -72,7 +72,7 @@ capabilities of the upstream elements.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp14239072"></a><h3>Example launch line</h3>
+<a name="idp13989168"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -96,9 +96,12 @@ Last reviewed on 2006-12-29 (0.10.5)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp13815808"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp17079568"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -119,9 +122,12 @@ Last reviewed on 2006-12-29 (0.10.5)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp17196752"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp17967088"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -153,8 +159,11 @@ Last reviewed on 2006-12-29 (0.10.5)
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -174,8 +183,11 @@ Last reviewed on 2006-12-29 (0.10.5)
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -195,8 +207,11 @@ Last reviewed on 2006-12-29 (0.10.5)
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -239,8 +254,11 @@ Last reviewed on 2006-12-29 (0.10.5)
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstqtdemux</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html b/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html
index 555f53b6d..07c5977f9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>qtmoovrecover</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-qtmux.html" title="qtmux">
@@ -81,7 +81,7 @@ GstQTMoovRecover implements
 <p>
 </p>
 <div class="refsect2">
-<a name="idp13361136"></a><h3>Example pipelines</h3>
+<a name="idp13633488"></a><h3>Example pipelines</h3>
 <p>
 This element recovers quicktime files created with qtmux using the moov
 recovery feature.
@@ -102,9 +102,12 @@ Documentation last reviewed on 2011-04-21
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14237152"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp16693408"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -125,7 +128,7 @@ Documentation last reviewed on 2011-04-21
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8177600"></a><h3>Element Pads</h3>
+<a name="idp11609568"></a><h3>Element Pads</h3>
 </div>
 </div>
 <p>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtmux.html b/docs/plugins/html/gst-plugins-good-plugins-qtmux.html
index f61291f33..daa2a4ce7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-qtmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-qtmux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>qtmux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-qtdemux.html" title="qtdemux">
@@ -118,22 +118,9 @@ If such fragmented layout is intended for streaming purposes, then
 index metadata (at the end of file).
 </p>
 <p>
-<a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--dts-method" title='The "dts-method" property'>dts-method</a> allows selecting a
-method for managing input timestamps (stay tuned for 0.11 to have this
-automagically settled).  The default delta/duration method should handle nice
-(aka perfect streams) just fine, but may experience problems otherwise
-(e.g. input stream with re-ordered B-frames and/or with frame dropping).
-The re-ordering approach re-assigns incoming timestamps in ascending order
-to incoming buffers and offers an alternative in such cases.  In cases where
-that might fail, the remaining method can be tried, which is exact and
-according to specs, but might experience playback on not so spec-wise players.
-Note that this latter approach also requires one to enable
-presentation-timestamp.
-</p>
-<p>
 </p>
 <div class="refsect2">
-<a name="idp16773744"></a><h3>Example pipelines</h3>
+<a name="idp15206944"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -155,9 +142,12 @@ Last reviewed on 2010-12-03
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp16188544"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14124592"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -178,9 +168,12 @@ Last reviewed on 2010-12-03
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp17496992"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp17541040"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -244,8 +237,11 @@ Last reviewed on 2010-12-03
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -305,8 +301,11 @@ Last reviewed on 2010-12-03
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -349,7 +348,7 @@ Last reviewed on 2010-12-03
 <div class="refsect2">
 <a name="GstQTMux--dts-method"></a><h3>The <code class="literal">"dts-method"</code> property</h3>
 <pre class="programlisting">  "dts-method"               <span class="type">GstQTMuxDtsMethods</span>    : Read / Write / Construct</pre>
-<p>Method to determine DTS time.</p>
+<p>(DEPRECATED) Method to determine DTS time.</p>
 <p>Default value: reorder</p>
 </div>
 <hr>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-quarktv.html b/docs/plugins/html/gst-plugins-good-plugins-quarktv.html
index 4a17219a2..16f5554f6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-quarktv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-quarktv.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>quarktv</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-pulsesrc.html" title="pulsesrc">
@@ -65,33 +65,37 @@
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-quarktv.description"></a><h2>Description</h2>
 <p>
-QuarkTV disolves moving objects. It picks up pixels from
-the last frames randomly.
+RevTV acts like a video waveform monitor for each line of video
+processed. This creates a pseudo 3D effect based on the brightness
+of the video along each line.
 </p>
 <p>
 </p>
 <div class="refsect2">
-<a name="idp16254704"></a><h3>Example launch line</h3>
+<a name="idp15943808"></a><h3>Example launch line</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><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> quarktv <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> revtv <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td>
       </tr>
     </tbody>
   </table>
 </div>
- This pipeline shows the effect of quarktv on a test stream.
+ This pipeline shows the effect of revtv on a test stream.
 </div>
 <p>
 </p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp16649088"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp2854192"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -112,9 +116,12 @@ the last frames randomly.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13710144"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14819328"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -134,8 +141,11 @@ the last frames randomly.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-radioactv.html b/docs/plugins/html/gst-plugins-good-plugins-radioactv.html
index 788d5197d..347356bf4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-radioactv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-radioactv.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>radioactv</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-qtmoovrecover.html" title="qtmoovrecover">
@@ -83,7 +83,7 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp16246384"></a><h3>Example launch line</h3>
+<a name="idp16174128"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -101,9 +101,12 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp16606416"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp15350720"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -124,9 +127,12 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12934096"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp15266832"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -146,8 +152,11 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-revtv.html b/docs/plugins/html/gst-plugins-good-plugins-revtv.html
index 68866004a..81de59c0c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-revtv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-revtv.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>revtv</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-radioactv.html" title="radioactv">
@@ -69,9 +69,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp15943984"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp15351008"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -92,9 +95,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp17251312"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13992896"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -114,8 +120,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html b/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html
index cbe243ead..88c8debd6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>rganalysis</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-revtv.html" title="revtv">
@@ -90,7 +90,7 @@ an album, not just the last one.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp13509680"></a><h3>Example launch lines</h3>
+<a name="idp13417664"></a><h3>Example launch lines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -138,7 +138,7 @@ property documentation for more information.
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp18290544"></a><h3>Acknowledgements</h3>
+<a name="idp17562416"></a><h3>Acknowledgements</h3>
 <p>
 This element is based on code used in the <a class="ulink" href="http://sjeng.org/vorbisgain.html" target="_top">vorbisgain</a> program and many
 others.  The relevant parts are copyrighted by David Robinson, Glen Sawyer
@@ -150,9 +150,12 @@ and Frank Klemm.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14244320"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp17435440"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -173,9 +176,12 @@ and Frank Klemm.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp16896176"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp16218992"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -199,8 +205,11 @@ and Frank Klemm.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html b/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html
index d9d710538..cde19ccb1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>rglimiter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rganalysis.html" title="rganalysis">
@@ -71,7 +71,7 @@ threshold of -6 dB.  This type of filter is mentioned in the proposed <a class="
 <p>
 </p>
 <div class="refsect2">
-<a name="idp18680816"></a><h3>Example launch line</h3>
+<a name="idp17450096"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -93,9 +93,12 @@ Playback of a file
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14129792"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8747936"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -116,9 +119,12 @@ Playback of a file
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp16733888"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp18898784"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -138,8 +144,11 @@ Playback of a file
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html b/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html
index 166e037bf..599cba879 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>rgvolume</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rglimiter.html" title="rglimiter">
@@ -82,7 +82,7 @@ This element applies volume changes to streams as lined out in the proposed
 interprets the ReplayGain meta data tags and carries out the adjustment (by
 using a volume element internally).  The relevant tags are:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-TRACK-GAIN:CAPS"><span class="type">GST_TAG_TRACK_GAIN</span></a></li>
 <li class="listitem"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-TRACK-PEAK:CAPS"><span class="type">GST_TAG_TRACK_PEAK</span></a></li>
 <li class="listitem"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-ALBUM-GAIN:CAPS"><span class="type">GST_TAG_ALBUM_GAIN</span></a></li>
@@ -104,7 +104,7 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp16163360"></a><h3>Example launch line</h3>
+<a name="idp19002800"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -124,9 +124,12 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp17474752"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp17815248"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -147,9 +150,12 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp15216384"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14617808"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -169,8 +175,11 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -330,7 +339,7 @@ these simple formulas:
 </p>
 <p>
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem">
 <a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp" title='The "pre-amp" property'>pre-amp</a> + album gain
 of the stream</li>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rippletv.html b/docs/plugins/html/gst-plugins-good-plugins-rippletv.html
index b64ed7a8c..550e51e51 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rippletv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rippletv.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>rippletv</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rgvolume.html" title="rgvolume">
@@ -72,7 +72,7 @@ by motion or random rain drops.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp17610640"></a><h3>Example launch line</h3>
+<a name="idp18308720"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -90,9 +90,12 @@ by motion or random rain drops.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7846688"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14880432"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -113,9 +116,12 @@ by motion or random rain drops.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14797408"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp17911536"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -135,8 +141,11 @@ by motion or random rain drops.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html
new file mode 100644
index 000000000..dde7fbbaf
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpL16depay</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-rtpbvpay.html" title="rtpbvpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpL16pay.html" title="rtpL16pay">
+<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-good-plugins-rtpbvpay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpL16pay.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-good-plugins-rtpL16depay.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpL16depay.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpL16depay.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpL16depay"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpL16depay.top_of_page"></a>rtpL16depay</span></h2>
+<p>rtpL16depay — Extracts raw audio from RTP packets</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-good-plugins-rtpL16depay.synopsis"></a><h2>Synopsis</h2>
+<a name="GstRtpL16Depay"></a><pre class="synopsis">struct              <a class="link" href="gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay-struct" title="struct GstRtpL16Depay">GstRtpL16Depay</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL16depay.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://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</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 href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload">GstRTPBaseDepayload</a>
+                           +----GstRtpL16Depay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL16depay.description"></a><h2>Description</h2>
+<p>
+Extract raw audio from RTP packets according to RFC 3551.
+For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt
+</p>
+<p>
+</p>
+<div class="refsect2">
+<a name="idp16065872"></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 udpsrc caps<span class="gtkdoc opt">=</span><span class="string">'application/x-rtp, media=(string)audio, clock-rate=(int)44100, encoding-name=(string)L16, encoding-params=(string)1, channels=(int)1, payload=(int)96'</span> <span class="gtkdoc opt">!</span> rtpL16depay <span class="gtkdoc opt">!</span> pulsesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will depayload an RTP raw audio stream. Refer to
+the rtpL16pay example to create the RTP stream.
+</div>
+<p>
+</p>
+<p>
+Last reviewed on 2013-04-25 (1.1.0)
+</p>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="idp16529344"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Zeeshan Ali &lt;zak147@yahoo.com&gt;,Wim Taymans &lt;wim.taymans@gmail.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Depayloader/Network/RTP</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="idp13216880"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)L16</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, payload=(int){ 10, 11 }, clock-rate=(int)[ 1, 2147483647 ]</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/x-raw, format=(string)S16BE, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL16depay.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstRtpL16Depay-struct"></a><h3>struct GstRtpL16Depay</h3>
+<pre class="programlisting">struct GstRtpL16Depay;</pre>
+<p>
+</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL16depay.see-also"></a><h2>See Also</h2>
+rtpL16pay
+</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/plugins/html/gst-plugins-good-plugins-rtpL16pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html
new file mode 100644
index 000000000..5dd15c794
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html
@@ -0,0 +1,194 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpL16pay</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-rtpL16depay.html" title="rtpL16depay">
+<link rel="next" href="gst-plugins-good-plugins-rtpj2kpay.html" title="rtpj2kpay">
+<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-good-plugins-rtpL16depay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpj2kpay.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-good-plugins-rtpL16pay.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpL16pay.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpL16pay.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpL16pay"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpL16pay.top_of_page"></a>rtpL16pay</span></h2>
+<p>rtpL16pay — Payload-encode Raw audio into RTP packets (RFC 3551)</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-good-plugins-rtpL16pay.synopsis"></a><h2>Synopsis</h2>
+<a name="GstRtpL16Pay"></a><pre class="synopsis">struct              <a class="link" href="gst-plugins-good-plugins-rtpL16pay.html#GstRtpL16Pay-struct" title="struct GstRtpL16Pay">GstRtpL16Pay</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL16pay.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://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</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 href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a>
+                           +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload">GstRTPBaseAudioPayload</a>
+                                 +----GstRtpL16Pay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL16pay.description"></a><h2>Description</h2>
+<p>
+Payload raw audio into RTP packets according to RFC 3551.
+For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt
+</p>
+<p>
+</p>
+<div class="refsect2">
+<a name="idp17896736"></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 audiotestsrc <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> rtpL16pay <span class="gtkdoc opt">!</span> udpsink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will payload raw audio. Refer to
+the rtpL16depay example to depayload and play the RTP stream.
+</div>
+<p>
+</p>
+<p>
+Last reviewed on 2013-04-25 (1.1.0)
+</p>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="idp17547984"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Wim Taymans &lt;wim.taymans@gmail.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Payloader/Network/RTP</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="idp13373584"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/x-raw, format=(string)S16BE, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)L16, channels=(int)[ 1, 2147483647 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, encoding-name=(string)L16, payload=(int)10, clock-rate=(int)44100</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, encoding-name=(string)L16, payload=(int)11, clock-rate=(int)44100</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL16pay.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstRtpL16Pay-struct"></a><h3>struct GstRtpL16Pay</h3>
+<pre class="programlisting">struct GstRtpL16Pay;</pre>
+<p>
+</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL16pay.see-also"></a><h2>See Also</h2>
+rtpL16depay
+</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/plugins/html/gst-plugins-good-plugins-rtpac3depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html
new file mode 100644
index 000000000..cba4d0e32
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html
@@ -0,0 +1,185 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpac3depay</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-rtpdec.html" title="rtpdec">
+<link rel="next" href="gst-plugins-good-plugins-rtpac3pay.html" title="rtpac3pay">
+<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-good-plugins-rtpdec.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpac3pay.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-good-plugins-rtpac3depay.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpac3depay.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpac3depay.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpac3depay"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpac3depay.top_of_page"></a>rtpac3depay</span></h2>
+<p>rtpac3depay — Extracts AC3 audio from RTP packets (RFC 4184)</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-good-plugins-rtpac3depay.synopsis"></a><h2>Synopsis</h2>
+<a name="GstRtpAC3Depay"></a><pre class="synopsis">struct              <a class="link" href="gst-plugins-good-plugins-rtpac3depay.html#GstRtpAC3Depay-struct" title="struct GstRtpAC3Depay">GstRtpAC3Depay</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpac3depay.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://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</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 href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload">GstRTPBaseDepayload</a>
+                           +----GstRtpAC3Depay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpac3depay.description"></a><h2>Description</h2>
+<p>
+Extract AC3 audio from RTP packets according to RFC 4184.
+For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt
+</p>
+<p>
+</p>
+<div class="refsect2">
+<a name="idp12935200"></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><span class="number">1.0</span> udpsrc caps<span class="gtkdoc opt">=</span><span class="string">'application/x-rtp, media=(string)audio, clock-rate=(int)44100, encoding-name=(string)AC3, payload=(int)96'</span> <span class="gtkdoc opt">!</span> rtpac3depay <span class="gtkdoc opt">!</span> a52dec <span class="gtkdoc opt">!</span> pulsesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will depayload and decode an RTP AC3 stream. Refer to
+the rtpac3pay example to create the RTP stream.
+</div>
+<p>
+</p>
+<p>
+Last reviewed on 2013-04-25 (1.1.0)
+</p>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="idp17437136"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Wim Taymans &lt;wim.taymans@gmail.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Depayloader/Network/RTP</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="idp16239920"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp, media=(string)audio, clock-rate=(int){ 32000, 44100, 48000 }, encoding-name=(string)AC3</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/ac3</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpac3depay.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstRtpAC3Depay-struct"></a><h3>struct GstRtpAC3Depay</h3>
+<pre class="programlisting">struct GstRtpAC3Depay;</pre>
+<p>
+</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpac3depay.see-also"></a><h2>See Also</h2>
+rtpac3pay
+</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/plugins/html/gst-plugins-good-plugins-rtpac3pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html
new file mode 100644
index 000000000..0f78cec93
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpac3pay</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-rtpac3depay.html" title="rtpac3depay">
+<link rel="next" href="gst-plugins-good-plugins-rtpamrdepay.html" title="rtpamrdepay">
+<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-good-plugins-rtpac3depay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpamrdepay.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-good-plugins-rtpac3pay.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpac3pay.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpac3pay.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpac3pay"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpac3pay.top_of_page"></a>rtpac3pay</span></h2>
+<p>rtpac3pay — Payload AC3 audio as RTP packets (RFC 4184)</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-good-plugins-rtpac3pay.synopsis"></a><h2>Synopsis</h2>
+<a name="GstRtpAC3Pay"></a><pre class="synopsis">struct              <a class="link" href="gst-plugins-good-plugins-rtpac3pay.html#GstRtpAC3Pay-struct" title="struct GstRtpAC3Pay">GstRtpAC3Pay</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpac3pay.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://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</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 href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a>
+                           +----GstRtpAC3Pay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpac3pay.description"></a><h2>Description</h2>
+<p>
+Payload AC3 audio into RTP packets according to RFC 4184.
+For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt
+</p>
+<p>
+</p>
+<div class="refsect2">
+<a name="idp13604224"></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 audiotestsrc <span class="gtkdoc opt">!</span> avenc_ac3 <span class="gtkdoc opt">!</span> rtpac3pay <span class="gtkdoc opt">!</span> udpsink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will encode and payload AC3 stream. Refer to
+the rtpac3depay example to depayload and decode the RTP stream.
+</div>
+<p>
+</p>
+<p>
+Last reviewed on 2013-04-25 (1.1.0)
+</p>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="idp18588384"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Wim Taymans &lt;wim.taymans@gmail.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Payloader/Network/RTP</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="idp2044304"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/ac3</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-ac3</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int){ 32000, 44100, 48000 }, encoding-name=(string)AC3</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpac3pay.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstRtpAC3Pay-struct"></a><h3>struct GstRtpAC3Pay</h3>
+<pre class="programlisting">struct GstRtpAC3Pay;</pre>
+<p>
+</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpac3pay.see-also"></a><h2>See Also</h2>
+rtpac3depay
+</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/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html
new file mode 100644
index 000000000..fb4f9b4aa
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpamrdepay</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-rtpac3pay.html" title="rtpac3pay">
+<link rel="next" href="gst-plugins-good-plugins-rtpamrpay.html" title="rtpamrpay">
+<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-good-plugins-rtpac3pay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpamrpay.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-good-plugins-rtpamrdepay.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpamrdepay.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpamrdepay.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpamrdepay"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpamrdepay.top_of_page"></a>rtpamrdepay</span></h2>
+<p>rtpamrdepay — Extracts AMR or AMR-WB audio from RTP packets (RFC 3267)</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-good-plugins-rtpamrdepay.synopsis"></a><h2>Synopsis</h2>
+<a name="GstRtpAMRDepay"></a><pre class="synopsis">struct              <a class="link" href="gst-plugins-good-plugins-rtpamrdepay.html#GstRtpAMRDepay-struct" title="struct GstRtpAMRDepay">GstRtpAMRDepay</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpamrdepay.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://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</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 href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload">GstRTPBaseDepayload</a>
+                           +----GstRtpAMRDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpamrdepay.description"></a><h2>Description</h2>
+<p>
+Extract AMR audio from RTP packets according to RFC 3267.
+For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt
+</p>
+<p>
+</p>
+<div class="refsect2">
+<a name="idp15313200"></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><span class="number">1.0</span> udpsrc caps<span class="gtkdoc opt">=</span><span class="string">'application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)AMR, encoding-params=(string)1, octet-align=(string)1, payload=(int)96'</span> <span class="gtkdoc opt">!</span> rtpamrdepay <span class="gtkdoc opt">!</span> amrnbdec <span class="gtkdoc opt">!</span> pulsesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will depayload and decode an RTP AMR stream. Refer to
+the rtpamrpay example to create the RTP stream.
+</div>
+<p>
+</p>
+<p>
+Last reviewed on 2013-04-25 (1.1.0)
+</p>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="idp14843760"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Wim Taymans &lt;wim.taymans@gmail.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Depayloader/Network/RTP</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="idp19151408"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)AMR, encoding-params=(string)1, octet-align=(string)1</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)AMR-WB, encoding-params=(string)1, octet-align=(string)1</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/AMR, channels=(int)1, rate=(int)8000</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/AMR-WB, channels=(int)1, rate=(int)16000</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpamrdepay.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstRtpAMRDepay-struct"></a><h3>struct GstRtpAMRDepay</h3>
+<pre class="programlisting">struct GstRtpAMRDepay;</pre>
+<p>
+</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpamrdepay.see-also"></a><h2>See Also</h2>
+rtpamrpay
+</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/plugins/html/gst-plugins-good-plugins-rtpamrpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html
new file mode 100644
index 000000000..4878e2ba0
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpamrpay</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-rtpamrdepay.html" title="rtpamrdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpbvdepay.html" title="rtpbvdepay">
+<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-good-plugins-rtpamrdepay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpbvdepay.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-good-plugins-rtpamrpay.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpamrpay.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpamrpay.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpamrpay"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpamrpay.top_of_page"></a>rtpamrpay</span></h2>
+<p>rtpamrpay — Payload-encode AMR or AMR-WB audio into RTP packets (RFC 3267)</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-good-plugins-rtpamrpay.synopsis"></a><h2>Synopsis</h2>
+<a name="GstRtpAMRPay"></a><pre class="synopsis">struct              <a class="link" href="gst-plugins-good-plugins-rtpamrpay.html#GstRtpAMRPay-struct" title="struct GstRtpAMRPay">GstRtpAMRPay</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpamrpay.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://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</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 href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a>
+                           +----GstRtpAMRPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpamrpay.description"></a><h2>Description</h2>
+<p>
+Payload AMR audio into RTP packets according to RFC 3267.
+For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt
+</p>
+<p>
+</p>
+<div class="refsect2">
+<a name="idp14411824"></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 audiotestsrc <span class="gtkdoc opt">!</span> amrnbenc <span class="gtkdoc opt">!</span> rtpamrpay <span class="gtkdoc opt">!</span> udpsink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will encode and payload an AMR stream. Refer to
+the rtpamrdepay example to depayload and decode the RTP stream.
+</div>
+<p>
+</p>
+<p>
+Last reviewed on 2013-04-25 (1.1.0)
+</p>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="idp16919760"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Wim Taymans &lt;wim.taymans@gmail.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Payloader/Network/RTP</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="idp16384240"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/AMR, channels=(int)1, rate=(int)8000</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/AMR-WB, channels=(int)1, rate=(int)16000</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)AMR, encoding-params=(string)1, octet-align=(string)1, crc=(string)0, robust-sorting=(string)0, interleaving=(string)0, mode-set=(int)[ 0, 7 ], mode-change-period=(int)[ 1, 2147483647 ], mode-change-neighbor=(string){ 0, 1 }, maxptime=(int)[ 20, 2147483647 ], ptime=(int)[ 20, 2147483647 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)16000, encoding-name=(string)AMR-WB, encoding-params=(string)1, octet-align=(string)1, crc=(string)0, robust-sorting=(string)0, interleaving=(string)0, mode-set=(int)[ 0, 7 ], mode-change-period=(int)[ 1, 2147483647 ], mode-change-neighbor=(string){ 0, 1 }, maxptime=(int)[ 20, 2147483647 ], ptime=(int)[ 20, 2147483647 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpamrpay.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstRtpAMRPay-struct"></a><h3>struct GstRtpAMRPay</h3>
+<pre class="programlisting">struct GstRtpAMRPay;</pre>
+<p>
+</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpamrpay.see-also"></a><h2>See Also</h2>
+rtpamrdepay
+</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/plugins/html/gst-plugins-good-plugins-rtpbin.html b/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html
index 7f9edb43f..ac1d7ee3c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>rtpbin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtspsrc.html" title="rtspsrc">
-<link rel="next" href="gst-plugins-good-plugins-rtpjitterbuffer.html" title="rtpjitterbuffer">
+<link rel="next" href="gst-plugins-good-plugins-rtpdtmfmux.html" title="rtpdtmfmux">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -18,7 +18,7 @@
 <td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtpjitterbuffer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpdtmfmux.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-good-plugins-rtpbin.synopsis" class="shortcut">Top</a>
@@ -103,12 +103,162 @@ GstRtpBin implements
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-rtpbin.description"></a><h2>Description</h2>
+<p>
+RTP bin combines the functions of <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a>, <a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux"><span class="type">GstRtpSsrcDemux</span></a>,
+<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a> and <a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> in one element. It allows for multiple
+RTP sessions that will be synchronized together using RTCP SR packets.
+</p>
+<p>
+<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> is configured with a number of request pads that define the
+functionality that is activated, similar to the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> element.
+</p>
+<p>
+To use <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> as an RTP receiver, request a recv_rtp_sink_%u pad. The session
+number must be specified in the pad name.
+Data received on the recv_rtp_sink_%u pad will be processed in the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a>
+manager and after being validated forwarded on <a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux"><span class="type">GstRtpSsrcDemux</span></a> element. Each
+RTP stream is demuxed based on the SSRC and send to a <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a>. After
+the packets are released from the jitterbuffer, they will be forwarded to a
+<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> element. The <a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> element will demux the packets based
+on the payload type and will create a unique pad recv_rtp_src_%u_%u_%u on
+rtpbin with the session number, SSRC and payload type respectively as the pad
+name.
+</p>
+<p>
+To also use <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> as an RTCP receiver, request a recv_rtcp_sink_%u pad. The
+session number must be specified in the pad name.
+</p>
+<p>
+If you want the session manager to generate and send RTCP packets, request
+the send_rtcp_src_%u pad with the session number in the pad name. Packet pushed
+on this pad contain SR/RR RTCP reports that should be sent to all participants
+in the session.
+</p>
+<p>
+To use <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> as a sender, request a send_rtp_sink_%u pad, which will
+automatically create a send_rtp_src_%u pad. If the session number is not provided,
+the pad from the lowest available session will be returned. The session manager will modify the
+SSRC in the RTP packets to its own SSRC and wil forward the packets on the
+send_rtp_src_%u pad after updating its internal state.
+</p>
+<p>
+The session manager needs the clock-rate of the payload types it is handling
+and will signal the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map" title='The "request-pt-map" signal'><span class="type">"request-pt-map"</span></a> signal when it needs such a
+mapping. One can clear the cached values with the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-clear-pt-map" title='The "clear-pt-map" signal'><span class="type">"clear-pt-map"</span></a>
+signal.
+</p>
+<p>
+Access to the internal statistics of rtpbin is provided with the
+get-internal-session property. This action signal gives access to the
+RTPSession object which further provides action signals to retrieve the
+internal source and other sources.
+</p>
+<p>
+</p>
+<div class="refsect2">
+<a name="idp20609360"></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
+2</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> udpsrc port<span class="gtkdoc opt">=</span><span class="number">5000</span> caps<span class="gtkdoc opt">=</span><span class="string">&quot;application/x-rtp, ...&quot;</span> <span class="gtkdoc opt">! .</span>recv_rtp_sink_0 \
+    rtpbin <span class="gtkdoc opt">!</span> rtptheoradepay <span class="gtkdoc opt">!</span> theoradec <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Receive RTP data from port 5000 and send to the session 0 in rtpbin.
+<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</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> rtpbin name<span class="gtkdoc opt">=</span>rtpbin \
+        v4l2src <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> ffenc_h263 <span class="gtkdoc opt">!</span> rtph263ppay <span class="gtkdoc opt">!</span> rtpbin<span class="gtkdoc opt">.</span>send_rtp_sink_0 \
+                  rtpbin<span class="gtkdoc opt">.</span>send_rtp_src_0 <span class="gtkdoc opt">!</span> udpsink port<span class="gtkdoc opt">=</span><span class="number">5000</span>                            \
+                  rtpbin<span class="gtkdoc opt">.</span>send_rtcp_src_0 <span class="gtkdoc opt">!</span> udpsink port<span class="gtkdoc opt">=</span><span class="number">5001</span> sync<span class="gtkdoc opt">=</span><span class="keyword">false</span> async<span class="gtkdoc opt">=</span><span class="keyword">false</span>    \
+                  udpsrc port<span class="gtkdoc opt">=</span><span class="number">5005</span> <span class="gtkdoc opt">!</span> rtpbin<span class="gtkdoc opt">.</span>recv_rtcp_sink_0                           \
+        audiotestsrc <span class="gtkdoc opt">!</span> amrnbenc <span class="gtkdoc opt">!</span> rtpamrpay <span class="gtkdoc opt">!</span> rtpbin<span class="gtkdoc opt">.</span>send_rtp_sink_1                   \
+                  rtpbin<span class="gtkdoc opt">.</span>send_rtp_src_1 <span class="gtkdoc opt">!</span> udpsink port<span class="gtkdoc opt">=</span><span class="number">5002</span>                            \
+                  rtpbin<span class="gtkdoc opt">.</span>send_rtcp_src_1 <span class="gtkdoc opt">!</span> udpsink port<span class="gtkdoc opt">=</span><span class="number">5003</span> sync<span class="gtkdoc opt">=</span><span class="keyword">false</span> async<span class="gtkdoc opt">=</span><span class="keyword">false</span>    \
+                  udpsrc port<span class="gtkdoc opt">=</span><span class="number">5007</span> <span class="gtkdoc opt">!</span> rtpbin<span class="gtkdoc opt">.</span>recv_rtcp_sink_1</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Encode and payload H263 video captured from a v4l2src. Encode and payload AMR
+audio generated from audiotestsrc. The video is sent to session 0 in rtpbin
+and the audio is sent to session 1. Video packets are sent on UDP port 5000
+and audio packets on port 5002. The video RTCP packets for session 0 are sent
+on port 5001 and the audio RTCP packets for session 0 are sent on port 5003.
+RTCP packets for session 0 are received on port 5005 and RTCP for session 1
+is received on port 5007. Since RTCP packets from the sender should be sent
+as soon as possible and do not participate in preroll, sync=false and
+async=false is configured on udpsink
+<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</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v rtpbin name<span class="gtkdoc opt">=</span>rtpbin                                          \
+    udpsrc caps<span class="gtkdoc opt">=</span><span class="string">&quot;application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H263-1998&quot;</span> \
+            port<span class="gtkdoc opt">=</span><span class="number">5000</span> <span class="gtkdoc opt">!</span> rtpbin<span class="gtkdoc opt">.</span>recv_rtp_sink_0                                \
+        rtpbin<span class="gtkdoc opt">. !</span> rtph263pdepay <span class="gtkdoc opt">!</span> ffdec_h263 <span class="gtkdoc opt">!</span> xvimagesink                    \
+     udpsrc port<span class="gtkdoc opt">=</span><span class="number">5001</span> <span class="gtkdoc opt">!</span> rtpbin<span class="gtkdoc opt">.</span>recv_rtcp_sink_0                               \
+     rtpbin<span class="gtkdoc opt">.</span>send_rtcp_src_0 <span class="gtkdoc opt">!</span> udpsink port<span class="gtkdoc opt">=</span><span class="number">5005</span> sync<span class="gtkdoc opt">=</span><span class="keyword">false</span> async<span class="gtkdoc opt">=</span><span class="keyword">false</span>        \
+    udpsrc caps<span class="gtkdoc opt">=</span><span class="string">&quot;application/x-rtp,media=(string)audio,clock-rate=(int)8000,encoding-name=(string)AMR,encoding-params=(string)1,octet-align=(string)1&quot;</span> \
+            port<span class="gtkdoc opt">=</span><span class="number">5002</span> <span class="gtkdoc opt">!</span> rtpbin<span class="gtkdoc opt">.</span>recv_rtp_sink_1                                \
+        rtpbin<span class="gtkdoc opt">. !</span> rtpamrdepay <span class="gtkdoc opt">!</span> amrnbdec <span class="gtkdoc opt">!</span> alsasink                           \
+     udpsrc port<span class="gtkdoc opt">=</span><span class="number">5003</span> <span class="gtkdoc opt">!</span> rtpbin<span class="gtkdoc opt">.</span>recv_rtcp_sink_1                               \
+     rtpbin<span class="gtkdoc opt">.</span>send_rtcp_src_1 <span class="gtkdoc opt">!</span> udpsink port<span class="gtkdoc opt">=</span><span class="number">5007</span> sync<span class="gtkdoc opt">=</span><span class="keyword">false</span> async<span class="gtkdoc opt">=</span><span class="keyword">false</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Receive H263 on port 5000, send it through rtpbin in session 0, depayload,
+decode and display the video.
+Receive AMR on port 5002, send it through rtpbin in session 1, depayload,
+decode and play the audio.
+Receive server RTCP packets for session 0 on port 5001 and RTCP packets for
+session 1 on port 5003. These packets will be used for session management and
+synchronisation.
+Send RTCP reports for session 0 on port 5005 and RTCP reports for session 1
+on port 5007.
+</div>
+<p>
+</p>
+<p>
+Last reviewed on 2007-08-30 (0.10.6)
+</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp19980688"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp20616976"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -129,9 +279,12 @@ GstRtpBin implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp20094640"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp20624432"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -151,8 +304,11 @@ GstRtpBin implements
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -172,8 +328,11 @@ GstRtpBin implements
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -193,8 +352,11 @@ GstRtpBin implements
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -214,8 +376,11 @@ GstRtpBin implements
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -235,8 +400,11 @@ GstRtpBin implements
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -358,8 +526,11 @@ GstRtpBin implements
 Clear all previously cached pt-mapping obtained with
 <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-pt-map" title='The "request-pt-map" signal'><span class="type">"request-pt-map"</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
@@ -381,8 +552,11 @@ Clear all previously cached pt-mapping obtained with
 <p>
 Request the internal RTPSession object as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> in session <em class="parameter"><code>id</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
@@ -409,8 +583,11 @@ Request the internal RTPSession object as <a href="http://library.gnome.org/deve
 <p>
 Notify of an SSRC that became inactive because of a BYE packet.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
@@ -441,8 +618,11 @@ Notify of an SSRC that became inactive because of a BYE packet.
 <p>
 Notify of an SSRC that has timed out because of BYE
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
@@ -473,8 +653,11 @@ Notify of an SSRC that has timed out because of BYE
 <p>
 Notify of a new SSRC that entered <em class="parameter"><code>session</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
@@ -505,8 +688,11 @@ Notify of a new SSRC that entered <em class="parameter"><code>session</code></em
 <p>
 Notify that SSRC sender has sent data up to the configured NPT stop time.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
@@ -537,8 +723,11 @@ Notify that SSRC sender has sent data up to the configured NPT stop time.
 <p>
 Notify of a sender SSRC that has timed out and became a receiver
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
@@ -569,8 +758,11 @@ Notify of a sender SSRC that has timed out and became a receiver
 <p>
 Notify of a SSRC that is active, i.e., sending RTCP.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
@@ -601,8 +793,11 @@ Notify of a SSRC that is active, i.e., sending RTCP.
 <p>
 Notify when we have an SSRC collision
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
@@ -633,8 +828,11 @@ Notify when we have an SSRC collision
 <p>
 Notify of a SSRC that is active, i.e., sending RTCP.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
@@ -665,8 +863,11 @@ Notify of a SSRC that is active, i.e., sending RTCP.
 <p>
 Notify of a new SSRC that became validated.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
@@ -697,8 +898,11 @@ Notify of a new SSRC that became validated.
 <p>
 Notify of an SSRC that has timed out
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
@@ -729,8 +933,11 @@ Notify of an SSRC that has timed out
 <p>
 Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em> in <em class="parameter"><code>session</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
@@ -760,8 +967,11 @@ Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/g
 Reset all currently configured lip-sync parameters and require new SR
 packets for all streams before lip-sync is attempted again.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
@@ -784,8 +994,11 @@ packets for all streams before lip-sync is attempted again.
 <p>
 Signal that the current payload type changed to <em class="parameter"><code>pt</code></em> in <em class="parameter"><code>session</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
@@ -808,6 +1021,10 @@ Signal that the current payload type changed to <em class="parameter"><code>pt</
 <p class="since">Since 0.10.17</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpbin.see-also"></a><h2>See Also</h2>
+rtpjitterbuffer, rtpsession, rtpptdemux, rtpssrcdemux
+</div>
 </div>
 <div class="footer">
 <hr>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html
new file mode 100644
index 000000000..03e476550
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpbvdepay</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-rtpamrpay.html" title="rtpamrpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpbvpay.html" title="rtpbvpay">
+<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-good-plugins-rtpamrpay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpbvpay.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-good-plugins-rtpbvdepay.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpbvdepay.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpbvdepay"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpbvdepay.top_of_page"></a>rtpbvdepay</span></h2>
+<p>rtpbvdepay — Extracts BroadcomVoice audio from RTP packets (RFC 4298)</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-good-plugins-rtpbvdepay.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis"></pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpbvdepay.description"></a><h2>Description</h2>
+<p>
+Extract BroadcomVoice audio from RTP packets according to RFC 4298.
+For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt
+</p>
+<p>
+Last reviewed on 2013-04-25 (1.1.0)
+</p>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="idp13216624"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Wim Taymans &lt;wim.taymans@collabora.co.uk&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Depayloader/Network/RTP</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="idp18808064"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)BV16</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)BV32</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/x-bv, mode=(int){ 16, 32 }</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpbvdepay.details"></a><h2>Details</h2>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpbvdepay.see-also"></a><h2>See Also</h2>
+rtpbvpay
+</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/plugins/html/gst-plugins-good-plugins-rtpbvpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html
new file mode 100644
index 000000000..2e5af86e7
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpbvpay</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-rtpbvdepay.html" title="rtpbvdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpL16depay.html" title="rtpL16depay">
+<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-good-plugins-rtpbvdepay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpL16depay.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-good-plugins-rtpbvpay.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpbvpay.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpbvpay"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpbvpay.top_of_page"></a>rtpbvpay</span></h2>
+<p>rtpbvpay — Packetize BroadcomVoice audio streams into RTP packets (RFC 4298)</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-good-plugins-rtpbvpay.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis"></pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpbvpay.description"></a><h2>Description</h2>
+<p>
+Payload BroadcomVoice audio into RTP packets according to RFC 4298.
+For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt
+</p>
+<p>
+Last reviewed on 2013-04-25 (1.1.0)
+</p>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="idp18820528"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Wim Taymans &lt;wim.taymans@collabora.co.uk&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Payloader/Network/RTP</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="idp13365888"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/x-bv, mode=(int){ 16, 32 }</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)BV16</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)16000, encoding-name=(string)BV32</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpbvpay.details"></a><h2>Details</h2>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpbvpay.see-also"></a><h2>See Also</h2>
+rtpbvdepay
+</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/plugins/html/gst-plugins-good-plugins-rtpdec.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html
index 2fd9b75b9..2271c3746 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>rtpdec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rippletv.html" title="rippletv">
-<link rel="next" href="gst-plugins-good-plugins-rtpj2kpay.html" title="rtpj2kpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpac3depay.html" title="rtpac3depay">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -18,7 +18,7 @@
 <td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtpj2kpay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpac3depay.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-good-plugins-rtpdec.synopsis" class="shortcut">Top</a>
@@ -87,9 +87,12 @@ Last reviewed on 2006-06-20 (0.10.4)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp16028448"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12935072"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -110,9 +113,12 @@ Last reviewed on 2006-06-20 (0.10.4)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp17396624"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14688224"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -132,8 +138,11 @@ Last reviewed on 2006-06-20 (0.10.4)
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -153,8 +162,11 @@ Last reviewed on 2006-06-20 (0.10.4)
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -174,8 +186,11 @@ Last reviewed on 2006-06-20 (0.10.4)
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -233,8 +248,11 @@ Last reviewed on 2006-06-20 (0.10.4)
                                                         <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>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstrtpdec</code></em> :</span></p></td>
@@ -257,8 +275,11 @@ Last reviewed on 2006-06-20 (0.10.4)
 <p>
 Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em> in <em class="parameter"><code>session</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpdec</code></em> :</span></p></td>
@@ -289,8 +310,11 @@ Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/g
 <p>
 Notify of an SSRC that became inactive because of a BYE packet.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
@@ -321,8 +345,11 @@ Notify of an SSRC that became inactive because of a BYE packet.
 <p>
 Notify of an SSRC that has timed out because of BYE
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
@@ -353,8 +380,11 @@ Notify of an SSRC that has timed out because of BYE
 <p>
 Notify of a new SSRC that entered <em class="parameter"><code>session</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
@@ -384,8 +414,11 @@ Notify of a new SSRC that entered <em class="parameter"><code>session</code></em
                                                         <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>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstrtpdec</code></em> :</span></p></td>
@@ -407,8 +440,11 @@ Notify of a new SSRC that entered <em class="parameter"><code>session</code></em
                                                         <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>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstrtpdec</code></em> :</span></p></td>
@@ -431,8 +467,11 @@ Notify of a new SSRC that entered <em class="parameter"><code>session</code></em
 <p>
 Notify of an SSRC that has timed out
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html
new file mode 100644
index 000000000..601e5c54b
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html
@@ -0,0 +1,195 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpdtmfmux</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-rtpbin.html" title="rtpbin">
+<link rel="next" href="gst-plugins-good-plugins-rtpdtmfsrc.html" title="rtpdtmfsrc">
+<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-good-plugins-rtpbin.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpdtmfsrc.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-good-plugins-rtpdtmfmux.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpdtmfmux.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpdtmfmux.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpdtmfmux"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpdtmfmux.top_of_page"></a>rtpdtmfmux</span></h2>
+<p>rtpdtmfmux — mixes RTP DTMF streams into other RTP streams</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-good-plugins-rtpdtmfmux.synopsis"></a><h2>Synopsis</h2>
+<a name="GstRTPDTMFMux"></a><pre class="synopsis">struct              <a class="link" href="gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux-struct" title="struct GstRTPDTMFMux">GstRTPDTMFMux</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdtmfmux.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://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</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-good-plugins-rtpmux.html#GstRTPMux">GstRTPMux</a>
+                           +----GstRTPDTMFMux
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdtmfmux.description"></a><h2>Description</h2>
+<p>
+The RTP "DTMF" Muxer muxes multiple RTP streams into a valid RTP
+stream. It does exactly what its parent (<span class="type">rtpmux</span>) does, except
+that it prevent buffers coming over a regular sink_%<code class="literal">u</code> pad from going through
+for the duration of buffers that came in a priority_sink_%<code class="literal">u</code> pad.
+</p>
+<p>
+This is especially useful if a discontinuous source like dtmfsrc or
+rtpdtmfsrc are connected to the priority sink pads. This way, the generated
+DTMF signal can replace the recorded audio while the tone is being sent.
+</p>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="idp18793952"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-rtpmanager.html#plugin-rtpmanager">rtpmanager</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Zeeshan Ali &lt;first.last@nokia.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Muxer</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="idp15822704"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>priority_sink_%u</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>request</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>sink_%u</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>request</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdtmfmux.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstRTPDTMFMux-struct"></a><h3>struct GstRTPDTMFMux</h3>
+<pre class="programlisting">struct GstRTPDTMFMux;</pre>
+<p>
+The opaque <a class="link" href="gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux"><span class="type">GstRTPDTMFMux</span></a> structure.
+</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdtmfmux.see-also"></a><h2>See Also</h2>
+rtpdtmfsrc, dtmfsrc, rtpmux
+</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/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html
new file mode 100644
index 000000000..8d19e532b
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html
@@ -0,0 +1,315 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpdtmfsrc</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-rtpdtmfmux.html" title="rtpdtmfmux">
+<link rel="next" href="gst-plugins-good-plugins-rtpjitterbuffer.html" title="rtpjitterbuffer">
+<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-good-plugins-rtpdtmfmux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpjitterbuffer.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-good-plugins-rtpdtmfsrc.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpdtmfsrc.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpdtmfsrc.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpdtmfsrc.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpdtmfsrc"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpdtmfsrc.top_of_page"></a>rtpdtmfsrc</span></h2>
+<p>rtpdtmfsrc — Generates RTP DTMF packets</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-good-plugins-rtpdtmfsrc.synopsis"></a><h2>Synopsis</h2>
+<a name="GstRTPDTMFSrc"></a><pre class="synopsis">struct              <a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc-struct" title="struct GstRTPDTMFSrc">GstRTPDTMFSrc</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdtmfsrc.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://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</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 href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
+                           +----GstRTPDTMFSrc
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdtmfsrc.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+  "<a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--clock-rate" title='The "clock-rate" property'>clock-rate</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-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--packet-redundancy" title='The "packet-redundancy" property'>packet-redundancy</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-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--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-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--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-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--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-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--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
+  "<a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp" title='The "timestamp" property'>timestamp</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-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp-offset" title='The "timestamp-offset" property'>timestamp-offset</a>"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdtmfsrc.description"></a><h2>Description</h2>
+<p>
+The RTPDTMFSrc element generates RTP DTMF (RFC 2833) event packets on request
+from application. The application communicates the beginning and end of a
+DTMF event using custom upstream gstreamer events. To report a DTMF event, an
+application must send an event of type GST_EVENT_CUSTOM_UPSTREAM, having a
+structure of name "dtmf-event" with fields set according to the following
+table:
+</p>
+<p>
+</p>
+<div class="informaltable"><table border="1">
+<colgroup>
+<col class="Name">
+<col class="Type">
+<col class="Possible values">
+<col class="Purpose">
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>GType</th>
+<th>Possible values</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>type</td>
+<td>G_TYPE_INT</td>
+<td>0-1</td>
+<td>The application uses this field to specify which of the two methods
+specified in RFC 2833 to use. The value should be 0 for tones and 1 for
+named events. Tones are specified by their frequencies and events are specied
+by their number. This element can only take events as input. Do not confuse
+with "method" which specified the output.
+</td>
+</tr>
+<tr>
+<td>number</td>
+<td>G_TYPE_INT</td>
+<td>0-15</td>
+<td>The event number.</td>
+</tr>
+<tr>
+<td>volume</td>
+<td>G_TYPE_INT</td>
+<td>0-36</td>
+<td>This field describes the power level of the tone, expressed in dBm0
+after dropping the sign. Power levels range from 0 to -63 dBm0. The range of
+valid DTMF is from 0 to -36 dBm0. Can be omitted if start is set to FALSE.
+</td>
+</tr>
+<tr>
+<td>start</td>
+<td>G_TYPE_BOOLEAN</td>
+<td>True or False</td>
+<td>Whether the event is starting or ending.</td>
+</tr>
+<tr>
+<td>method</td>
+<td>G_TYPE_INT</td>
+<td>1</td>
+<td>The method used for sending event, this element will react if this
+field is absent or 1.
+</td>
+</tr>
+</tbody>
+</table></div>
+<p>
+</p>
+<p>
+For example, the following code informs the pipeline (and in turn, the
+RTPDTMFSrc element inside the pipeline) about the start of an RTP DTMF named
+event '1' of volume -25 dBm0:
+</p>
+<p>
+</p>
+<pre class="programlisting">
+structure = gst_structure_new ("dtmf-event",
+                   "type", G_TYPE_INT, 1,
+                   "number", G_TYPE_INT, 1,
+                   "volume", G_TYPE_INT, 25,
+                   "start", G_TYPE_BOOLEAN, TRUE, NULL);
+
+event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, structure);
+gst_element_send_event (pipeline, event);
+</pre>
+<p>
+</p>
+<p>
+When a DTMF tone actually starts or stop, a "dtmf-event-processed"
+element <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> with the same fields as the "dtmf-event"
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> that was used to request the event. Also, if any event
+has not been processed when the element goes from the PAUSED to the
+READY state, then a "dtmf-event-dropped" message is posted on the
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBus.html"><span class="type">GstBus</span></a> in the order that they were received.
+</p>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="idp18258736"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-dtmf.html#plugin-dtmf">dtmf</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Zeeshan Ali &lt;zeeshan.ali@nokia.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Source/Network</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="idp15822960"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 0, 2147483647 ], encoding-name=(string)TELEPHONE-EVENT</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdtmfsrc.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstRTPDTMFSrc-struct"></a><h3>struct GstRTPDTMFSrc</h3>
+<pre class="programlisting">struct GstRTPDTMFSrc;</pre>
+<p>
+The opaque <a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc"><span class="type">GstRTPDTMFSrc</span></a> data structure.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody></tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdtmfsrc.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRTPDTMFSrc--clock-rate"></a><h3>The <code class="literal">"clock-rate"</code> property</h3>
+<pre class="programlisting">  "clock-rate"               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write</pre>
+<p>The clock-rate at which to generate the dtmf packets.</p>
+<p>Default value: 8000</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTPDTMFSrc--packet-redundancy"></a><h3>The <code class="literal">"packet-redundancy"</code> property</h3>
+<pre class="programlisting">  "packet-redundancy"        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write</pre>
+<p>Number of packets to send to indicate start and stop dtmf events.</p>
+<p>Allowed values: [1,5]</p>
+<p>Default value: 1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTPDTMFSrc--pt"></a><h3>The <code class="literal">"pt"</code> property</h3>
+<pre class="programlisting">  "pt"                       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write</pre>
+<p>The payload type of the packets.</p>
+<p>Allowed values: &lt;= 128</p>
+<p>Default value: 96</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTPDTMFSrc--seqnum"></a><h3>The <code class="literal">"seqnum"</code> property</h3>
+<pre class="programlisting">  "seqnum"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read</pre>
+<p>The RTP sequence number of the last processed packet.</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTPDTMFSrc--seqnum-offset"></a><h3>The <code class="literal">"seqnum-offset"</code> property</h3>
+<pre class="programlisting">  "seqnum-offset"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
+<p>Offset to add to all outgoing seqnum (-1 = random).</p>
+<p>Allowed values: &gt;= G_MAXULONG</p>
+<p>Default value: -1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTPDTMFSrc--ssrc"></a><h3>The <code class="literal">"ssrc"</code> property</h3>
+<pre class="programlisting">  "ssrc"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write</pre>
+<p>The SSRC of the packets (-1 == random).</p>
+<p>Default value: 4294967295</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTPDTMFSrc--timestamp"></a><h3>The <code class="literal">"timestamp"</code> property</h3>
+<pre class="programlisting">  "timestamp"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read</pre>
+<p>The RTP timestamp of the last processed packet.</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTPDTMFSrc--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#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
+<p>Offset to add to all outgoing timestamps (-1 = random).</p>
+<p>Allowed values: &gt;= G_MAXULONG</p>
+<p>Default value: -1</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdtmfsrc.see-also"></a><h2>See Also</h2>
+dtmfsrc, rtpdtmfdepay, rtpdtmfmux
+</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/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html
index ee9ea00c1..dd78c6c22 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>rtpj2kpay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtpdec.html" title="rtpdec">
+<link rel="prev" href="gst-plugins-good-plugins-rtpL16pay.html" title="rtpL16pay">
 <link rel="next" href="gst-plugins-good-plugins-rtpjpegpay.html" title="rtpjpegpay">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -14,7 +14,7 @@
 <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-good-plugins-rtpdec.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpL16pay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
@@ -75,9 +75,12 @@ codestream.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14138448"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14631712"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -98,9 +101,12 @@ codestream.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp17483024"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp20087776"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -120,8 +126,11 @@ codestream.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html b/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html
index 8481fe804..70a392609 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html
@@ -3,22 +3,22 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>rtpjitterbuffer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtpbin.html" title="rtpbin">
-<link rel="next" href="gst-plugins-good-plugins-rtpptdemux.html" title="rtpptdemux">
+<link rel="prev" href="gst-plugins-good-plugins-rtpdtmfsrc.html" title="rtpdtmfsrc">
+<link rel="next" href="gst-plugins-good-plugins-rtpmux.html" title="rtpmux">
 <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-good-plugins-rtpbin.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpdtmfsrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtpptdemux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmux.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-good-plugins-rtpjitterbuffer.synopsis" class="shortcut">Top</a>
@@ -82,9 +82,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp18253936"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp19576432"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -105,9 +108,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp18216176"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp19638416"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -127,8 +133,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -148,8 +157,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -239,8 +251,11 @@ Opaque jitterbuffer structure.
 Invalidate the clock-rate as obtained with the
 <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map" title='The "request-pt-map" signal'><span class="type">"request-pt-map"</span></a> signal.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -262,8 +277,11 @@ Invalidate the clock-rate as obtained with the
 <p>
 Be notified of new sync values.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -289,8 +307,11 @@ Be notified of new sync values.
 Signal that the jitterbufer has pushed the RTP packet that corresponds to
 the npt-stop position.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -312,8 +333,11 @@ the npt-stop position.
 <p>
 Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -341,8 +365,11 @@ Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/g
 Start pushing out packets with the given base time. This signal is only
 useful in buffering mode.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html
index 2c0ee849e..cef8b45f6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>rtpjpegpay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpj2kpay.html" title="rtpj2kpay">
-<link rel="next" href="gst-plugins-good-plugins-rtspsrc.html" title="rtspsrc">
+<link rel="next" href="gst-plugins-good-plugins-rtpsbcpay.html" title="rtpsbcpay">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -18,7 +18,7 @@
 <td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtspsrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpsbcpay.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-good-plugins-rtpjpegpay.synopsis" class="shortcut">Top</a>
@@ -80,9 +80,12 @@ The payloader assumes that correct width and height is found in the caps.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11320240"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp19904880"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -103,9 +106,12 @@ The payloader assumes that correct width and height is found in the caps.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp16802592"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12353120"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -129,8 +135,11 @@ The payloader assumes that correct width and height is found in the caps.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -146,7 +155,7 @@ The payloader assumes that correct width and height is found in the caps.
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>application/x-rtp, media=(string)video, payload=(int)26, clock-rate=(int)90000, encoding-name=(string)JPEG</td>
+<td>application/x-rtp, media=(string)video, payload=(int)26, clock-rate=(int)90000, encoding-name=(string)JPEG, width=(int)[ 1, 65536 ], height=(int)[ 1, 65536 ]</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html
new file mode 100644
index 000000000..fe176c9ce
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html
@@ -0,0 +1,241 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpmux</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-rtpjitterbuffer.html" title="rtpjitterbuffer">
+<link rel="next" href="gst-plugins-good-plugins-rtpptdemux.html" title="rtpptdemux">
+<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-good-plugins-rtpjitterbuffer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpptdemux.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-good-plugins-rtpmux.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpmux.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpmux.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpmux.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpmux"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpmux.top_of_page"></a>rtpmux</span></h2>
+<p>rtpmux — multiplex N rtp streams into one</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-good-plugins-rtpmux.synopsis"></a><h2>Synopsis</h2>
+<a name="GstRTPMux"></a><pre class="synopsis">struct              <a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux-struct" title="struct GstRTPMux">GstRTPMux</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmux.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://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</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>
+                     +----GstRTPMux
+                           +----<a class="link" href="gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux">GstRTPDTMFMux</a>
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmux.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+  "<a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--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-good-plugins-rtpmux.html#GstRTPMux--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-good-plugins-rtpmux.html#GstRTPMux--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
+  "<a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--timestamp-offset" title='The "timestamp-offset" property'>timestamp-offset</a>"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmux.description"></a><h2>Description</h2>
+<p>
+The rtp muxer takes multiple RTP streams having the same clock-rate and
+muxes into a single stream with a single SSRC.
+</p>
+<p>
+</p>
+<div class="refsect2">
+<a name="idp16057568"></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
+2
+3
+4
+5
+6</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch rtpmux name<span class="gtkdoc opt">=</span>mux <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="number">127.0.0.1</span> port<span class="gtkdoc opt">=</span><span class="number">8888</span>        \
+             alsasrc <span class="gtkdoc opt">!</span> alawenc <span class="gtkdoc opt">!</span> rtppcmapay <span class="gtkdoc opt">!</span>                        \
+             application<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>rtp<span class="gtkdoc opt">,</span> payload<span class="gtkdoc opt">=</span><span class="number">8</span><span class="gtkdoc opt">,</span> rate<span class="gtkdoc opt">=</span><span class="number">8000</span> <span class="gtkdoc opt">!</span> mux<span class="gtkdoc opt">.</span>sink_0    \
+             audiotestsrc is<span class="gtkdoc opt">-</span>live<span class="gtkdoc opt">=</span><span class="number">1</span> <span class="gtkdoc opt">!</span>                                \
+             mulawenc <span class="gtkdoc opt">!</span> rtppcmupay <span class="gtkdoc opt">!</span>                                 \
+             application<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>rtp<span class="gtkdoc opt">,</span> payload<span class="gtkdoc opt">=</span><span class="number">0</span><span class="gtkdoc opt">,</span> rate<span class="gtkdoc opt">=</span><span class="number">8000</span> <span class="gtkdoc opt">!</span> mux<span class="gtkdoc opt">.</span>sink_1</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+In this example, an audio stream is captured from ALSA and another is
+generated, both are encoded into different payload types and muxed together
+so they can be sent on the same port.
+</div>
+<p>
+</p>
+<p>
+Last reviewed on 2010-09-30 (0.10.21)
+</p>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="idp20164288"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-rtpmanager.html#plugin-rtpmanager">rtpmanager</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Zeeshan Ali &lt;first.last@nokia.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Muxer</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="idp14784768"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>sink_%u</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>request</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmux.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstRTPMux-struct"></a><h3>struct GstRTPMux</h3>
+<pre class="programlisting">struct GstRTPMux;</pre>
+<p>
+The opaque <a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux"><span class="type">GstRTPMux</span></a> structure.
+</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmux.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRTPMux--seqnum"></a><h3>The <code class="literal">"seqnum"</code> property</h3>
+<pre class="programlisting">  "seqnum"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read</pre>
+<p>The RTP sequence number of the last processed packet.</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTPMux--seqnum-offset"></a><h3>The <code class="literal">"seqnum-offset"</code> property</h3>
+<pre class="programlisting">  "seqnum-offset"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
+<p>Offset to add to all outgoing seqnum (-1 = random).</p>
+<p>Allowed values: &gt;= G_MAXULONG</p>
+<p>Default value: -1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTPMux--ssrc"></a><h3>The <code class="literal">"ssrc"</code> property</h3>
+<pre class="programlisting">  "ssrc"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write</pre>
+<p>The SSRC of the packets (-1 == random).</p>
+<p>Default value: 4294967295</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTPMux--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#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
+<p>Offset to add to all outgoing timestamps (-1 = random).</p>
+<p>Allowed values: &gt;= G_MAXULONG</p>
+<p>Default value: -1</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmux.see-also"></a><h2>See Also</h2>
+rtpdtmfmux
+</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/plugins/html/gst-plugins-good-plugins-rtpptdemux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html
index bbf088d74..04296620c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>rtpptdemux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtpjitterbuffer.html" title="rtpjitterbuffer">
+<link rel="prev" href="gst-plugins-good-plugins-rtpmux.html" title="rtpmux">
 <link rel="next" href="gst-plugins-good-plugins-rtpsession.html" title="rtpsession">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -14,7 +14,7 @@
 <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-good-plugins-rtpjitterbuffer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpmux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
@@ -68,9 +68,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp17391040"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp18704016"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -91,9 +94,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp15660240"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp16942048"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -113,8 +119,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -158,8 +167,11 @@
 The application can call this signal to instruct the element to discard the
 currently cached payload type map.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td>
@@ -182,8 +194,11 @@ currently cached payload type map.
 <p>
 Emited when a new payload type pad has been created in <em class="parameter"><code>demux</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td>
@@ -213,8 +228,11 @@ Emited when a new payload type pad has been created in <em class="parameter"><co
 <p>
 Emited when the payload type changed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td>
@@ -240,8 +258,11 @@ Emited when the payload type changed.
 <p>
 Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html
new file mode 100644
index 000000000..e5ff1117e
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpsbcpay</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-rtpjpegpay.html" title="rtpjpegpay">
+<link rel="next" href="gst-plugins-good-plugins-rtspsrc.html" title="rtspsrc">
+<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-good-plugins-rtpjpegpay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtspsrc.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-good-plugins-rtpsbcpay.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpsbcpay.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpsbcpay.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtpsbcpay.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpsbcpay"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpsbcpay.top_of_page"></a>rtpsbcpay</span></h2>
+<p>rtpsbcpay — Payload SBC audio as RTP packets</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-good-plugins-rtpsbcpay.synopsis"></a><h2>Synopsis</h2>
+<a name="GstRtpSBCPay"></a><pre class="synopsis">struct              <a class="link" href="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay-struct" title="struct GstRtpSBCPay">GstRtpSBCPay</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsbcpay.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://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</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 href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a>
+                           +----GstRtpSBCPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsbcpay.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+  "<a class="link" href="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay--min-frames" title='The "min-frames" property'>min-frames</a>"               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsbcpay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="idp20126432"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Thiago Sousa Santos &lt;thiagoss@lcc.ufcg.edu.br&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Payloader/Network</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="idp15466496"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/x-sbc, rate=(int){ 16000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ], channel-mode=(string){ mono, dual, stereo, joint }, blocks=(int){ 4, 8, 12, 16 }, subbands=(int){ 4, 8 }, allocation-method=(string){ snr, loudness }, bitpool=(int)[ 2, 64 ]</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int){ 16000, 32000, 44100, 48000 }, encoding-name=(string)SBC</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsbcpay.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstRtpSBCPay-struct"></a><h3>struct GstRtpSBCPay</h3>
+<pre class="programlisting">struct GstRtpSBCPay;</pre>
+<p>
+</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsbcpay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRtpSBCPay--min-frames"></a><h3>The <code class="literal">"min-frames"</code> property</h3>
+<pre class="programlisting">  "min-frames"               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
+<p>Minimum quantity of frames to send in one packet (-1 for maximum allowed by the mtu).</p>
+<p>Allowed values: &gt;= G_MAXULONG</p>
+<p>Default value: 0</p>
+</div>
+</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/plugins/html/gst-plugins-good-plugins-rtpsession.html b/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html
index 37ca16c7e..e843158f3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>rtpsession</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpptdemux.html" title="rtpptdemux">
@@ -94,9 +94,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp15770464"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp19928160"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -117,9 +120,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp19111504"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp17619760"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -139,8 +145,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -160,8 +169,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -181,8 +193,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -202,8 +217,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -223,8 +241,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -244,8 +265,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -376,8 +400,11 @@
 <p>
 Clear the cached pt-maps requested with <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map" title='The "request-pt-map" signal'><span class="type">"request-pt-map"</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td>
@@ -399,8 +426,11 @@ Clear the cached pt-maps requested with <a class="link" href="gst-plugins-good-p
 <p>
 Notify of an SSRC that became inactive because of a BYE packet.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td>
@@ -426,8 +456,11 @@ Notify of an SSRC that became inactive because of a BYE packet.
 <p>
 Notify of an SSRC that has timed out because of BYE
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td>
@@ -453,8 +486,11 @@ Notify of an SSRC that has timed out because of BYE
 <p>
 Notify of a new SSRC that entered <em class="parameter"><code>session</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td>
@@ -480,8 +516,11 @@ Notify of a new SSRC that entered <em class="parameter"><code>session</code></em
 <p>
 Notify of a sender SSRC that has timed out and became a receiver
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td>
@@ -506,8 +545,11 @@ Notify of a sender SSRC that has timed out and became a receiver
                                                         <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>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstrtpsession</code></em> :</span></p></td>
@@ -528,8 +570,11 @@ Notify of a sender SSRC that has timed out and became a receiver
                                                         <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>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstrtpsession</code></em> :</span></p></td>
@@ -551,8 +596,11 @@ Notify of a sender SSRC that has timed out and became a receiver
 <p>
 Notify that a new SDES was received for SSRC.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td>
@@ -577,8 +625,11 @@ Notify that a new SDES was received for SSRC.
                                                         <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>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstrtpsession</code></em> :</span></p></td>
@@ -600,8 +651,11 @@ Notify that a new SDES was received for SSRC.
 <p>
 Notify of an SSRC that has timed out
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td>
@@ -627,8 +681,11 @@ Notify of an SSRC that has timed out
 <p>
 Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html
index 4c9b8766d..78f4a530f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>rtpssrcdemux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpsession.html" title="rtpsession">
-<link rel="next" href="gst-plugins-good-plugins-shagadelictv.html" title="shagadelictv">
+<link rel="next" href="gst-plugins-good-plugins-sbcparse.html" title="sbcparse">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -18,7 +18,7 @@
 <td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-good-plugins-shagadelictv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-sbcparse.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-good-plugins-rtpssrcdemux.synopsis" class="shortcut">Top</a>
@@ -67,9 +67,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp18910240"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp20646592"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -90,9 +93,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp19110160"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5489984"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -112,8 +118,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -133,8 +142,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -154,8 +166,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -199,8 +214,11 @@
 <p>
 Action signal to remove the pad for SSRC.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td>
@@ -227,8 +245,11 @@ Action signal to remove the pad for SSRC.
 <p>
 Emited when a new SSRC pad has been created.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td>
@@ -259,8 +280,11 @@ Emited when a new SSRC pad has been created.
 <p>
 Emited when a SSRC pad has been removed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
index 86be71bd6..cce478cd6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>rtspsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtpjpegpay.html" title="rtpjpegpay">
+<link rel="prev" href="gst-plugins-good-plugins-rtpsbcpay.html" title="rtpsbcpay">
 <link rel="next" href="gst-plugins-good-plugins-rtpbin.html" title="rtpbin">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -14,7 +14,7 @@
 <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-good-plugins-rtpjpegpay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpsbcpay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
@@ -30,6 +30,8 @@
                   <a href="#gst-plugins-good-plugins-rtspsrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
                    | 
                   <a href="#gst-plugins-good-plugins-rtspsrc.properties" class="shortcut">Properties</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-rtspsrc.signals" class="shortcut">Signals</a>
 </td></tr>
 </table>
 <div class="refentry">
@@ -87,6 +89,20 @@ GstRTSPSrc implements
   "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-rtsp-keep-alive" title='The "do-rtsp-keep-alive" property'>do-rtsp-keep-alive</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-good-plugins-rtspsrc.html#GstRTSPSrc--drop-on-latency" title='The "drop-on-latency" property'>drop-on-latency</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-good-plugins-rtspsrc.html#GstRTSPSrc--probation" title='The "probation" property'>probation</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-good-plugins-rtspsrc.html#GstRTSPSrc--udp-reconnect" title='The "udp-reconnect" property'>udp-reconnect</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-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-id" title='The "proxy-id" property'>proxy-id</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-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-pw" title='The "proxy-pw" property'>proxy-pw</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-good-plugins-rtspsrc.html#GstRTSPSrc--multicast-iface" title='The "multicast-iface" property'>multicast-iface</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-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-sync" title='The "ntp-sync" property'>ntp-sync</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-good-plugins-rtspsrc.html#GstRTSPSrc--use-pipeline-clock" title='The "use-pipeline-clock" property'>use-pipeline-clock</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-good-plugins-rtspsrc.signals"></a><h2>Signals</h2>
+<pre class="synopsis">
+  "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-handle-request" title='The "handle-request" signal'>handle-request</a>"                                 
+  "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-on-sdp" title='The "on-sdp" signal'>on-sdp</a>"                                         
+  "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-select-stream" title='The "select-stream" signal'>select-stream</a>"                                  : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a>
 </pre>
 </div>
 <div class="refsect1">
@@ -122,7 +138,7 @@ PLAYING state.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp17985952"></a><h3>Example launch line</h3>
+<a name="idp20040016"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -144,9 +160,12 @@ Last reviewed on 2006-08-18 (0.10.5)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp17881296"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp20069504"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -167,9 +186,12 @@ Last reviewed on 2006-08-18 (0.10.5)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp17473664"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp20207648"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -359,6 +381,181 @@ Last reviewed on 2006-08-18 (0.10.5)
 <p>Consecutive packet sequence numbers to accept the source.</p>
 <p>Default value: 2</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstRTSPSrc--udp-reconnect"></a><h3>The <code class="literal">"udp-reconnect"</code> property</h3>
+<pre class="programlisting">  "udp-reconnect"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
+<p>Reconnect to the server if RTSP connection is closed when doing UDP.</p>
+<p>Default value: TRUE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTSPSrc--proxy-id"></a><h3>The <code class="literal">"proxy-id"</code> property</h3>
+<pre class="programlisting">  "proxy-id"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write</pre>
+<p>HTTP proxy URI user id for authentication.</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTSPSrc--proxy-pw"></a><h3>The <code class="literal">"proxy-pw"</code> property</h3>
+<pre class="programlisting">  "proxy-pw"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write</pre>
+<p>HTTP proxy URI user password for authentication.</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTSPSrc--multicast-iface"></a><h3>The <code class="literal">"multicast-iface"</code> property</h3>
+<pre class="programlisting">  "multicast-iface"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write</pre>
+<p>The network interface on which to join the multicast group.</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTSPSrc--ntp-sync"></a><h3>The <code class="literal">"ntp-sync"</code> property</h3>
+<pre class="programlisting">  "ntp-sync"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
+<p>Synchronize received streams to the NTP clock.</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTSPSrc--use-pipeline-clock"></a><h3>The <code class="literal">"use-pipeline-clock"</code> property</h3>
+<pre class="programlisting">  "use-pipeline-clock"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
+<p>Use the pipeline running-time to set the NTP time in the RTCP SR messages.</p>
+<p>Default value: FALSE</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtspsrc.signal-details"></a><h2>Signal Details</h2>
+<div class="refsect2">
+<a name="GstRTSPSrc-handle-request"></a><h3>The <code class="literal">"handle-request"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a> *rtspsrc,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    request,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    response,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+<p>
+Handle a server request in <em class="parameter"><code>request</code></em> and prepare <em class="parameter"><code>response</code></em>.
+</p>
+<p>
+This signal is called from the streaming thread, you should therefore not
+do any state changes on <em class="parameter"><code>rtspsrc</code></em> because this might deadlock. If you want
+to modify the state as a result of this signal, post a
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-REQUEST-STATE:CAPS"><span class="type">GST_MESSAGE_REQUEST_STATE</span></a> message on the bus or signal the main thread
+in some other way.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rtspsrc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>request</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage"><span class="type">GstRTSPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>response</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage"><span class="type">GstRTSPMessage</span></a>
+</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>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTSPSrc-on-sdp"></a><h3>The <code class="literal">"on-sdp"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a>    *rtspsrc,
+                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage"><span class="type">GstSDPMessage</span></a> *sdp,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
+<p>
+Emited when the client has retrieved the SDP and before it configures the
+streams in the SDP. <em class="parameter"><code>sdp</code></em> can be inspected and modified.
+</p>
+<p>
+This signal is called from the streaming thread, you should therefore not
+do any state changes on <em class="parameter"><code>rtspsrc</code></em> because this might deadlock. If you want
+to modify the state as a result of this signal, post a
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-REQUEST-STATE:CAPS"><span class="type">GST_MESSAGE_REQUEST_STATE</span></a> message on the bus or signal the main thread
+in some other way.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rtspsrc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sdp</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</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>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTSPSrc-select-stream"></a><h3>The <code class="literal">"select-stream"</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-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a> *rtspsrc,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>       num,
+                                                        <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-FIRST:CAPS"><code class="literal">Run First</code></a></pre>
+<p>
+Emited before the client decides to configure the stream <em class="parameter"><code>num</code></em> with
+<em class="parameter"><code>caps</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rtspsrc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
+<td>the stream number</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>the stream caps</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> when the stream should be selected, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> when the stream
+is to be ignored.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html b/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html
new file mode 100644
index 000000000..0c8909f50
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>sbcparse</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-rtpssrcdemux.html" title="rtpssrcdemux">
+<link rel="next" href="gst-plugins-good-plugins-scaletempo.html" title="scaletempo">
+<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-good-plugins-rtpssrcdemux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-good-plugins-scaletempo.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-good-plugins-sbcparse.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-sbcparse.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-sbcparse.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-sbcparse"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-sbcparse.top_of_page"></a>sbcparse</span></h2>
+<p>sbcparse — Parses an SBC bluetooth audio stream</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-good-plugins-sbcparse.synopsis"></a><h2>Synopsis</h2>
+<a name="GstSbcParse"></a><pre class="synopsis">struct              <a class="link" href="gst-plugins-good-plugins-sbcparse.html#GstSbcParse-struct" title="struct GstSbcParse">GstSbcParse</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-sbcparse.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://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</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 href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstBaseParse.html#GstBaseParse">GstBaseParse</a>
+                           +----GstSbcParse
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-sbcparse.description"></a><h2>Description</h2>
+<p>
+The sbcparse element will parse a bluetooth SBC audio stream into
+frames and timestamp them properly.
+</p>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="idp21845472"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            audioparsers
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Tim-Philipp Müller &lt;tim.muller@collabora.co.uk&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Parser/Audio</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="idp5823488"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/x-sbc</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/x-sbc, parsed=(boolean)true, channels=(int)[ 1, 2 ], rate=(int){ 16000, 32000, 44100, 48000 }</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-sbcparse.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstSbcParse-struct"></a><h3>struct GstSbcParse</h3>
+<pre class="programlisting">struct GstSbcParse;</pre>
+<p>
+</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-sbcparse.see-also"></a><h2>See Also</h2>
+sbcdec, sbcenc
+</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/plugins/html/gst-plugins-good-plugins-scaletempo.html b/docs/plugins/html/gst-plugins-good-plugins-scaletempo.html
new file mode 100644
index 000000000..d46ab8020
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-scaletempo.html
@@ -0,0 +1,274 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>scaletempo</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-sbcparse.html" title="sbcparse">
+<link rel="next" href="gst-plugins-good-plugins-shagadelictv.html" title="shagadelictv">
+<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-good-plugins-sbcparse.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-good-plugins-shagadelictv.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-good-plugins-scaletempo.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-scaletempo.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-scaletempo.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-scaletempo.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-scaletempo"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-scaletempo.top_of_page"></a>scaletempo</span></h2>
+<p>scaletempo — Sync audio tempo with playback rate</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-good-plugins-scaletempo.synopsis"></a><h2>Synopsis</h2>
+<a name="GstScaletempo"></a><pre class="synopsis">struct              <a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo-struct" title="struct GstScaletempo">GstScaletempo</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-scaletempo.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://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</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 href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a>
+                           +----GstScaletempo
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-scaletempo.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+  "<a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--overlap" title='The "overlap" property'>overlap</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-good-plugins-scaletempo.html#GstScaletempo--rate" title='The "rate" property'>rate</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read
+  "<a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--search" title='The "search" property'>search</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-good-plugins-scaletempo.html#GstScaletempo--stride" title='The "stride" property'>stride</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-scaletempo.description"></a><h2>Description</h2>
+<p>
+Scale tempo while maintaining pitch
+(WSOLA-like technique with cross correlation)
+Inspired by SoundTouch library by Olli Parviainen
+</p>
+<p>
+Use Sceletempo to apply playback rates without the chipmunk effect.
+</p>
+<p>
+</p>
+<div class="refsect2">
+<a name="idp10147952"></a><h3>Example pipelines</h3>
+<p>
+</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</pre></td>
+        <td class="listing_code"><pre class="programlisting">filesrc location<span class="gtkdoc opt">=</span>media<span class="gtkdoc opt">.</span>ext <span class="gtkdoc opt">!</span> decodebin name<span class="gtkdoc opt">=</span>d \
+    d<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> scaletempo <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink \
+    d<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p>
+OR
+</p>
+<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">playbin uri<span class="gtkdoc opt">=...</span> audio_sink<span class="gtkdoc opt">=</span><span class="string">&quot;scaletempo ! audioconvert ! audioresample ! autoaudiosink&quot;</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p>
+When an application sends a seek event with rate != 1.0, Scaletempo applies
+the rate change by scaling the tempo without scaling the pitch.
+</p>
+<p>
+Scaletempo works by producing audio in constant sized chunks
+(<a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--stride" title='The "stride" property'><span class="type">"stride"</span></a>) but consuming chunks proportional to the playback
+rate.
+</p>
+<p>
+Scaletempo then smooths the output by blending the end of one stride with
+the next (<a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--overlap" title='The "overlap" property'><span class="type">"overlap"</span></a>).
+</p>
+<p>
+Scaletempo smooths the overlap further by searching within the input buffer
+for the best overlap position.  Scaletempo uses a statistical cross
+correlation (roughly a dot-product).  Scaletempo consumes most of its CPU
+cycles here. One can use the <a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--search" title='The "search" property'><span class="type">"search"</span></a> propery to tune how far
+the algoritm looks.
+</p>
+</div>
+<p>
+</p>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="idp18367216"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-audiofx.html#plugin-audiofx">audiofx</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Rov Juvano &lt;rovjuvano@users.sourceforge.net&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Filter/Effect/Rate</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="idp12706064"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/x-raw, format=(string)F32LE, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-raw, format=(string)S16LE, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/x-raw, format=(string)F32LE, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-raw, format=(string)S16LE, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-scaletempo.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstScaletempo-struct"></a><h3>struct GstScaletempo</h3>
+<pre class="programlisting">struct GstScaletempo;</pre>
+<p>
+</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-scaletempo.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstScaletempo--overlap"></a><h3>The <code class="literal">"overlap"</code> property</h3>
+<pre class="programlisting">  "overlap"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write</pre>
+<p>Percentage of stride to overlap.</p>
+<p>Allowed values: [0,1]</p>
+<p>Default value: 0.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstScaletempo--rate"></a><h3>The <code class="literal">"rate"</code> property</h3>
+<pre class="programlisting">  "rate"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read</pre>
+<p>Current playback rate.</p>
+<p>Allowed values: [-2.14748e+09,2.14748e+09]</p>
+<p>Default value: 1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstScaletempo--search"></a><h3>The <code class="literal">"search"</code> property</h3>
+<pre class="programlisting">  "search"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write</pre>
+<p>Length in milliseconds to search for best overlap position.</p>
+<p>Allowed values: &lt;= 500</p>
+<p>Default value: 14</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstScaletempo--stride"></a><h3>The <code class="literal">"stride"</code> property</h3>
+<pre class="programlisting">  "stride"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write</pre>
+<p>Length in milliseconds to output each stride.</p>
+<p>Allowed values: [1,5000]</p>
+<p>Default value: 30</p>
+</div>
+</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/plugins/html/gst-plugins-good-plugins-shagadelictv.html b/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html
index ad6b5cc2d..3dbc6dbe0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>shagadelictv</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtpssrcdemux.html" title="rtpssrcdemux">
+<link rel="prev" href="gst-plugins-good-plugins-scaletempo.html" title="scaletempo">
 <link rel="next" href="gst-plugins-good-plugins-shapewipe.html" title="shapewipe">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -14,7 +14,7 @@
 <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-good-plugins-rtpssrcdemux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-scaletempo.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.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 Good Plugins 1.0 Plugins Reference Manual</th>
@@ -62,7 +62,7 @@ Oh behave, ShagedelicTV makes images shagadelic!
 <p>
 </p>
 <div class="refsect2">
-<a name="idp17545888"></a><h3>Example launch line</h3>
+<a name="idp12809520"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -80,9 +80,12 @@ Oh behave, ShagedelicTV makes images shagadelic!
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8801728"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp15318576"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -103,9 +106,12 @@ Oh behave, ShagedelicTV makes images shagadelic!
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp18966656"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp16711568"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -125,8 +131,11 @@ Oh behave, ShagedelicTV makes images shagadelic!
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html b/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html
index 7d623d82c..49b79e9b2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>shapewipe</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-shagadelictv.html" title="shagadelictv">
@@ -77,13 +77,13 @@ page.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp15946928"></a><h3>Example launch line</h3>
+<a name="idp19449664"></a><h3>Example launch line</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><span class="number">1.0</span> <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>format<span class="gtkdoc opt">=(</span>string<span class="gtkdoc opt">)</span>AYUV<span class="gtkdoc opt">,</span>width<span class="gtkdoc opt">=</span><span class="number">640</span><span class="gtkdoc opt">,</span>height<span class="gtkdoc opt">=</span><span class="number">480</span> <span class="gtkdoc opt">!</span> shapewipe position<span class="gtkdoc opt">=</span><span class="number">0.5</span> name<span class="gtkdoc opt">=</span>shape <span class="gtkdoc opt">!</span> videomixer name<span class="gtkdoc opt">=</span>mixer <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink     filesrc location<span class="gtkdoc opt">=</span>mask<span class="gtkdoc opt">.</span>png <span class="gtkdoc opt">!</span> typefind <span class="gtkdoc opt">!</span> decodebin2 <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> videoscale <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> shape<span class="gtkdoc opt">.</span>mask_sink    videotestsrc pattern<span class="gtkdoc opt">=</span>snow <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>format<span class="gtkdoc opt">=(</span>string<span class="gtkdoc opt">)</span>AYUV<span class="gtkdoc opt">,</span>width<span class="gtkdoc opt">=</span><span class="number">640</span><span class="gtkdoc opt">,</span>height<span class="gtkdoc opt">=</span><span class="number">480</span> <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> mixer<span class="gtkdoc opt">.</span></pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <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>format<span class="gtkdoc opt">=</span>AYUV<span class="gtkdoc opt">,</span>width<span class="gtkdoc opt">=</span><span class="number">640</span><span class="gtkdoc opt">,</span>height<span class="gtkdoc opt">=</span><span class="number">480</span> <span class="gtkdoc opt">!</span> shapewipe position<span class="gtkdoc opt">=</span><span class="number">0.5</span> name<span class="gtkdoc opt">=</span>shape <span class="gtkdoc opt">!</span> videomixer name<span class="gtkdoc opt">=</span>mixer <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink     filesrc location<span class="gtkdoc opt">=</span>mask<span class="gtkdoc opt">.</span>png <span class="gtkdoc opt">!</span> typefind <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> videoscale <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> shape<span class="gtkdoc opt">.</span>mask_sink    videotestsrc pattern<span class="gtkdoc opt">=</span>snow <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>format<span class="gtkdoc opt">=</span>AYUV<span class="gtkdoc opt">,</span>width<span class="gtkdoc opt">=</span><span class="number">640</span><span class="gtkdoc opt">,</span>height<span class="gtkdoc opt">=</span><span class="number">480</span> <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> mixer<span class="gtkdoc opt">.</span></pre></td>
       </tr>
     </tbody>
   </table>
@@ -95,9 +95,12 @@ page.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp18173456"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13166800"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -118,9 +121,12 @@ page.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp16893152"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp16658832"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -144,8 +150,11 @@ page.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -165,8 +174,11 @@ page.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-smpte.html b/docs/plugins/html/gst-plugins-good-plugins-smpte.html
index 39e483f65..9772eb7c4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-smpte.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-smpte.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>smpte</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-shapewipe.html" title="shapewipe">
@@ -80,7 +80,7 @@ banding.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7715312"></a><h3>Sample pipelines</h3>
+<a name="idp17804352"></a><h3>Sample pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -101,9 +101,12 @@ edges of the transition are smoothed with a 20000 big border.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp16494912"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp20131088"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -124,9 +127,12 @@ edges of the transition are smoothed with a 20000 big border.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp20368032"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp18767456"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -146,8 +152,11 @@ edges of the transition are smoothed with a 20000 big border.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -167,8 +176,11 @@ edges of the transition are smoothed with a 20000 big border.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html b/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html
index 844100702..c5b8bd20c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>smptealpha</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-smpte.html" title="smpte">
@@ -87,7 +87,7 @@ avoid banding.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp16071904"></a><h3>Sample pipelines</h3>
+<a name="idp20486816"></a><h3>Sample pipelines</h3>
 <p>
 Here is a pipeline to demonstrate the smpte transition :
 </p>
@@ -106,9 +106,12 @@ transparent image. The edges of the transition are smoothed with a
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14168832"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp21775280"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -129,9 +132,12 @@ transparent image. The edges of the transition are smoothed with a
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp17946560"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp19446880"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -175,8 +181,11 @@ transparent image. The edges of the transition are smoothed with a
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html b/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html
index d6f0af59b..bee9acbf1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>souphttpsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-smptealpha.html" title="smptealpha">
@@ -91,9 +91,12 @@ GstSoupHTTPSrc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp18084912"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp22749904"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -114,9 +117,12 @@ GstSoupHTTPSrc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp16583856"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp22084160"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-spectrum.html b/docs/plugins/html/gst-plugins-good-plugins-spectrum.html
index 0b97fddcc..b80775e5b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-spectrum.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-spectrum.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>spectrum</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-souphttpsrc.html" title="souphttpsrc">
@@ -81,7 +81,7 @@ by the <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum-
 <p>
 The message's structure contains some combination of these fields:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
   <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a>
   <code class="classname">"timestamp"</code>:
@@ -126,13 +126,13 @@ The message's structure contains some combination of these fields:
 </p>
 <p>
 If <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--multi-channel" title='The "multi-channel" property'><span class="type">"multi-channel"</span></a> property is set to true. magnitude and phase
-fields will be each a nested <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html#GstValueArray"><span class="type">GstValueArray</span></a>. The first dimension are the
+fields will be each a nested <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstControlSource.html#GstValueArray"><span class="type">GstValueArray</span></a>. The first dimension are the
 channels and the second dimension are the values.
 </p>
 <p>
 </p>
 <div class="refsect2">
-<a name="idp18246400"></a><h3>Example application</h3>
+<a name="idp19280448"></a><h3>Example application</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -277,8 +277,8 @@ channels and the second dimension are the values.
 <span class="comment"> *</span>
 <span class="comment"> * You should have received a copy of the GNU Library General Public</span>
 <span class="comment"> * License along with this library; if not, write to the</span>
-<span class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</span>
-<span class="comment"> * Boston, MA 02111-1307, USA.</span>
+<span class="comment"> * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,</span>
+<span class="comment"> * Boston, MA 02110-1301, USA.</span>
 <span class="comment"> */</span>
 
 <span class="gtkdoc ppc">#include &lt;stdio.h&gt;</span>
@@ -399,9 +399,12 @@ Last reviewed on 2011-03-10 (0.10.29)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp18942304"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp18798464"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -422,9 +425,12 @@ Last reviewed on 2011-03-10 (0.10.29)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp20858976"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp16674192"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -444,8 +450,11 @@ Last reviewed on 2011-03-10 (0.10.29)
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -528,21 +537,15 @@ Last reviewed on 2011-03-10 (0.10.29)
 <div class="refsect2">
 <a name="GstSpectrum--post-messages"></a><h3>The <code class="literal">"post-messages"</code> property</h3>
 <pre class="programlisting">  "post-messages"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>
-Post messages on the bus with spectrum information.
-</p>
+<p>Whether to post a 'spectrum' element message on the bus for each passed interval.</p>
 <p>Default value: TRUE</p>
-<p class="since">Since 0.10.17</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstSpectrum--multi-channel"></a><h3>The <code class="literal">"multi-channel"</code> property</h3>
 <pre class="programlisting">  "multi-channel"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>
-Send separate results for each channel
-</p>
+<p>Send separate results for each channel.</p>
 <p>Default value: FALSE</p>
-<p class="since">Since 0.10.29</p>
 </div>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-speexdec.html b/docs/plugins/html/gst-plugins-good-plugins-speexdec.html
index 84714614f..b897bd7c5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-speexdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-speexdec.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>speexdec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-speexenc.html" title="speexenc">
@@ -66,9 +66,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp20449360"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp15659776"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -89,9 +92,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp22262960"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp15537584"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -111,8 +117,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-speexenc.html b/docs/plugins/html/gst-plugins-good-plugins-speexenc.html
index 9a8ec3e74..bf8585215 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-speexenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-speexenc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>speexenc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-spectrum.html" title="spectrum">
@@ -83,9 +83,12 @@ GstSpeexEnc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp20620160"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp17926832"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -106,9 +109,12 @@ GstSpeexEnc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp19950896"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp22422992"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -132,8 +138,11 @@ GstSpeexEnc implements
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html b/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html
index f93df20e2..444adeed1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>splitfilesrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-speexdec.html" title="speexdec">
@@ -85,7 +85,7 @@ directories). The results will be sorted.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp21461856"></a><h3>Example launch lines</h3>
+<a name="idp19158144"></a><h3>Example launch lines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -114,9 +114,12 @@ directories). The results will be sorted.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp13129296"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp21955568"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -137,9 +140,12 @@ directories). The results will be sorted.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp22299968"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp20463072"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-streaktv.html b/docs/plugins/html/gst-plugins-good-plugins-streaktv.html
index 3501d1881..27960532f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-streaktv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-streaktv.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>streaktv</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-splitfilesrc.html" title="splitfilesrc">
@@ -70,7 +70,7 @@ StreakTV makes after images of moving objects.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp18916224"></a><h3>Example launch line</h3>
+<a name="idp6328688"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -88,9 +88,12 @@ StreakTV makes after images of moving objects.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp13665040"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5730240"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -111,9 +114,12 @@ StreakTV makes after images of moving objects.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp18850976"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp21689312"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -133,8 +139,11 @@ StreakTV makes after images of moving objects.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-taginject.html b/docs/plugins/html/gst-plugins-good-plugins-taginject.html
index 997722bfc..4c7ca9c89 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-taginject.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-taginject.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>taginject</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-streaktv.html" title="streaktv">
@@ -70,7 +70,7 @@ unmodified.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp14798864"></a><h3>Example launch lines</h3>
+<a name="idp21637472"></a><h3>Example launch lines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -99,9 +99,12 @@ unmodified.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8282304"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp18914784"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -122,9 +125,12 @@ unmodified.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp17510512"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp22777376"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -144,8 +150,11 @@ unmodified.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-udpsink.html b/docs/plugins/html/gst-plugins-good-plugins-udpsink.html
index d93e9fb81..e72eb94c4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-udpsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-udpsink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>udpsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-udpsrc.html" title="udpsrc">
@@ -80,7 +80,7 @@ It can be combined with RTP payloaders to implement RTP streaming.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp18666624"></a><h3>Examples</h3>
+<a name="idp20366480"></a><h3>Examples</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -98,9 +98,12 @@ It can be combined with RTP payloaders to implement RTP streaming.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp18651392"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp21894800"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -121,9 +124,12 @@ It can be combined with RTP payloaders to implement RTP streaming.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14562336"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp21567760"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html b/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html
index 7bebc12a7..1da6d3722 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>udpsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-taginject.html" title="taginject">
@@ -83,6 +83,7 @@ GstUDPSrc implements
   "<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--close-socket" title='The "close-socket" property'>close-socket</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-good-plugins-udpsrc.html#GstUDPSrc--socket" title='The "socket" property'>socket</a>"                   <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>*              : Read / Write
   "<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--used-socket" title='The "used-socket" property'>used-socket</a>"              <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>*              : Read
+  "<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--bind-address" title='The "bind-address" property'>bind-address</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -141,7 +142,7 @@ will generate an element message named
 if no data was recieved in the given timeout.
 The message's structure contains one field:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
   <span class="type">guint64</span>
   <code class="classname">"timeout"</code>: the timeout in microseconds that
   expired when waiting for data.
@@ -160,7 +161,7 @@ is responsible for closing the file descriptor.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp17776512"></a><h3>Examples</h3>
+<a name="idp23149408"></a><h3>Examples</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -206,9 +207,12 @@ Last reviewed on 2007-09-20 (0.10.7)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp22748688"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp22406192"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -229,9 +233,12 @@ Last reviewed on 2007-09-20 (0.10.7)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp20504736"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp21070560"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -380,6 +387,13 @@ Last reviewed on 2007-09-20 (0.10.7)
 <pre class="programlisting">  "used-socket"              <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>*              : Read</pre>
 <p>Socket currently in use for UDP reception. (NULL = no socket).</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstUDPSrc--bind-address"></a><h3>The <code class="literal">"bind-address"</code> property</h3>
+<pre class="programlisting">  "bind-address"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write</pre>
+<p>Address to bind the socket to. This is equivalent to the multicast-group property.</p>
+<p>Default value: "0.0.0.0"</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-udpsrc.see-also"></a><h2>See Also</h2>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html
index af41c4755..424ae3abb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>v4l2radio</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-v4l2sink.html" title="v4l2sink">
@@ -60,7 +60,7 @@
 <a name="gst-plugins-good-plugins-v4l2radio.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstV4l2Radio implements
- <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a> and  GstTuner.</p>
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttuner.html#GstTuner">GstTuner</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-v4l2radio.properties"></a><h2>Properties</h2>
@@ -74,9 +74,12 @@ GstV4l2Radio implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp19141536"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp22480080"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -97,7 +100,7 @@ GstV4l2Radio implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp19783456"></a><h3>Element Pads</h3>
+<a name="idp19050880"></a><h3>Element Pads</h3>
 </div>
 </div>
 <p>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html
index 24fcd4362..00fae9fd3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>v4l2sink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-v4l2src.html" title="v4l2src">
@@ -62,7 +62,7 @@
 <a name="gst-plugins-good-plugins-v4l2sink.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstV4l2Sink implements
- GstTuner,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay">GstVideoOverlay</a>,  GstNavigation,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation">GstVideoOrientation</a>.</p>
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttuner.html#GstTuner">GstTuner</a>,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay">GstVideoOverlay</a>,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigation">GstNavigation</a>,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation">GstVideoOrientation</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-v4l2sink.properties"></a><h2>Properties</h2>
@@ -87,6 +87,9 @@ GstV4l2Sink implements
   "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--min-queued-bufs" title='The "min-queued-bufs" property'>min-queued-bufs</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-good-plugins-v4l2sink.html#GstV4l2Sink--io-mode" title='The "io-mode" property'>io-mode</a>"                  <span class="type">GstV4l2IOMode</span>         : Read / Write
   "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--norm" title='The "norm" property'>norm</a>"                     <span class="type">V4L2_TV_norms</span>         : Read / Write
+  "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--extra-controls" title='The "extra-controls" property'>extra-controls</a>"           <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>*         : Read / Write
+  "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--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-good-plugins-v4l2sink.html#GstV4l2Sink--pixel-aspect-ratio" title='The "pixel-aspect-ratio" property'>pixel-aspect-ratio</a>"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -94,9 +97,12 @@ GstV4l2Sink implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp18683936"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp21954112"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -117,9 +123,12 @@ GstV4l2Sink implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp21433120"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp20516960"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -227,6 +236,14 @@ GstV4l2Sink implements
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
+<td> video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-h263, variant=(string)itu, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
 <td> video/x-h264, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td>
 </tr>
 <tr>
@@ -404,6 +421,26 @@ GstV4l2Sink implements
 <p>video standard.</p>
 <p>Default value: none</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstV4l2Sink--extra-controls"></a><h3>The <code class="literal">"extra-controls"</code> property</h3>
+<pre class="programlisting">  "extra-controls"           <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>*         : Read / Write</pre>
+<p>Extra v4l2 controls (CIDs) for the device.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstV4l2Sink--force-aspect-ratio"></a><h3>The <code class="literal">"force-aspect-ratio"</code> property</h3>
+<pre class="programlisting">  "force-aspect-ratio"       <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 pixel aspect ratio will be enforced.</p>
+<p>Default value: TRUE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstV4l2Sink--pixel-aspect-ratio"></a><h3>The <code class="literal">"pixel-aspect-ratio"</code> property</h3>
+<pre class="programlisting">  "pixel-aspect-ratio"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write</pre>
+<p>Overwrite the pixel aspect ratio of the device.</p>
+<p>Default value: "1/1"</p>
+</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html
index 58550d2b4..6c3696d36 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>v4l2src</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-udpsink.html" title="udpsink">
@@ -64,7 +64,7 @@
 <a name="gst-plugins-good-plugins-v4l2src.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstV4l2Src implements
- <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>,  GstTuner,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation">GstVideoOrientation</a>.</p>
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttuner.html#GstTuner">GstTuner</a>,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation">GstVideoOrientation</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-v4l2src.properties"></a><h2>Properties</h2>
@@ -82,6 +82,9 @@ GstV4l2Src implements
   "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--saturation" title='The "saturation" property'>saturation</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-good-plugins-v4l2src.html#GstV4l2Src--norm" title='The "norm" property'>norm</a>"                     <span class="type">V4L2_TV_norms</span>         : Read / Write
   "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--io-mode" title='The "io-mode" property'>io-mode</a>"                  <span class="type">GstV4l2IOMode</span>         : Read / Write
+  "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--extra-controls" title='The "extra-controls" property'>extra-controls</a>"           <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>*         : Read / Write
+  "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--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-good-plugins-v4l2src.html#GstV4l2Src--pixel-aspect-ratio" title='The "pixel-aspect-ratio" property'>pixel-aspect-ratio</a>"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -95,9 +98,12 @@ GstV4l2Src implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp17849376"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp21954384"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -118,9 +124,12 @@ GstV4l2Src implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp18312560"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp18838560"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -228,6 +237,14 @@ GstV4l2Src implements
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
+<td> video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-h263, variant=(string)itu, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
 <td> video/x-h264, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td>
 </tr>
 <tr>
@@ -356,6 +373,26 @@ GstV4l2Src implements
 <p>I/O mode.</p>
 <p>Default value: GST_V4L2_IO_AUTO</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstV4l2Src--extra-controls"></a><h3>The <code class="literal">"extra-controls"</code> property</h3>
+<pre class="programlisting">  "extra-controls"           <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>*         : Read / Write</pre>
+<p>Extra v4l2 controls (CIDs) for the device.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstV4l2Src--force-aspect-ratio"></a><h3>The <code class="literal">"force-aspect-ratio"</code> property</h3>
+<pre class="programlisting">  "force-aspect-ratio"       <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 pixel aspect ratio will be enforced.</p>
+<p>Default value: TRUE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstV4l2Src--pixel-aspect-ratio"></a><h3>The <code class="literal">"pixel-aspect-ratio"</code> property</h3>
+<pre class="programlisting">  "pixel-aspect-ratio"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write</pre>
+<p>Overwrite the pixel aspect ratio of the device.</p>
+<p>Default value: "1/1"</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-v4l2src.signal-details"></a><h2>Signal Details</h2>
@@ -363,14 +400,15 @@ GstV4l2Src implements
 <a name="GstV4l2Src-prepare-format"></a><h3>The <code class="literal">"prepare-format"</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src"><span class="type">GstV4l2Src</span></a> *gstv4l2src,
                                                         <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#guint"><span class="type">guint</span></a>       arg2,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>       arg3,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>       arg4,
+                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>    *arg2,
                                                         <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>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstv4l2src</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html b/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html
index 0c4c5cfed..acb48635d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vertigotv</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-v4l2radio.html" title="v4l2radio">
@@ -79,7 +79,7 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp12293168"></a><h3>Example launch line</h3>
+<a name="idp20200016"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -97,9 +97,12 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp22620368"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp18595744"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -120,9 +123,12 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp18046752"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp21148352"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -142,8 +148,11 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -203,8 +212,11 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling.
                                                         <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>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstvertigotv</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videobalance.html b/docs/plugins/html/gst-plugins-good-plugins-videobalance.html
index 8ef57d6de..3958d3255 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videobalance.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videobalance.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videobalance</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-vertigotv.html" title="vertigotv">
@@ -62,7 +62,7 @@
 <a name="gst-plugins-good-plugins-videobalance.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstVideoBalance implements
- GstImplementsInterface and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a>.</p>
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstImplementsInterface.html">GstImplementsInterface</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-videobalance.properties"></a><h2>Properties</h2>
@@ -81,7 +81,7 @@ Adjusts brightness, contrast, hue, saturation on a video stream.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp18972416"></a><h3>Example launch line</h3>
+<a name="idp18703072"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -103,9 +103,12 @@ Last reviewed on 2010-04-18 (0.10.22)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp20333760"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp20200176"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -126,9 +129,12 @@ Last reviewed on 2010-04-18 (0.10.22)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp21869040"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp16867104"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -148,8 +154,11 @@ Last reviewed on 2010-04-18 (0.10.22)
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videobox.html b/docs/plugins/html/gst-plugins-good-plugins-videobox.html
index 7d824d9ff..bbb3d7c6b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videobox.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videobox.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videobox</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-videobalance.html" title="videobalance">
@@ -122,9 +122,12 @@ Sample pipeline:
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp18217712"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp23855600"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -145,9 +148,12 @@ Sample pipeline:
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp18325296"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp22156112"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -167,8 +173,11 @@ Sample pipeline:
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videocrop.html b/docs/plugins/html/gst-plugins-good-plugins-videocrop.html
index 2642dc238..bd59b8f93 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videocrop.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videocrop.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videocrop</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-videobox.html" title="videobox">
@@ -92,7 +92,7 @@ most use cases, but it might matter for yours.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp18893904"></a><h3>Example launch line</h3>
+<a name="idp20648320"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -110,9 +110,12 @@ most use cases, but it might matter for yours.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp15231424"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp23616976"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -133,9 +136,12 @@ most use cases, but it might matter for yours.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp18384720"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp18971696"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -151,12 +157,15 @@ most use cases, but it might matter for yours.
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, NV12, NV21, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -172,7 +181,7 @@ most use cases, but it might matter for yours.
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, NV12, NV21, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
@@ -195,32 +204,32 @@ most use cases, but it might matter for yours.
 <div class="refsect2">
 <a name="GstVideoCrop--bottom"></a><h3>The <code class="literal">"bottom"</code> property</h3>
 <pre class="programlisting">  "bottom"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
-<p>Pixels to crop at bottom.</p>
-<p>Allowed values: &gt;= 0</p>
+<p>Pixels to crop at bottom (-1 to auto-crop).</p>
+<p>Allowed values: &gt;= G_MAXULONG</p>
 <p>Default value: 0</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstVideoCrop--left"></a><h3>The <code class="literal">"left"</code> property</h3>
 <pre class="programlisting">  "left"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
-<p>Pixels to crop at left.</p>
-<p>Allowed values: &gt;= 0</p>
+<p>Pixels to crop at left (-1 to auto-crop).</p>
+<p>Allowed values: &gt;= G_MAXULONG</p>
 <p>Default value: 0</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstVideoCrop--right"></a><h3>The <code class="literal">"right"</code> property</h3>
 <pre class="programlisting">  "right"                    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
-<p>Pixels to crop at right.</p>
-<p>Allowed values: &gt;= 0</p>
+<p>Pixels to crop at right (-1 to auto-crop).</p>
+<p>Allowed values: &gt;= G_MAXULONG</p>
 <p>Default value: 0</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstVideoCrop--top"></a><h3>The <code class="literal">"top"</code> property</h3>
 <pre class="programlisting">  "top"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
-<p>Pixels to crop at top.</p>
-<p>Allowed values: &gt;= 0</p>
+<p>Pixels to crop at top (-1 to auto-crop).</p>
+<p>Allowed values: &gt;= G_MAXULONG</p>
 <p>Default value: 0</p>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videoflip.html b/docs/plugins/html/gst-plugins-good-plugins-videoflip.html
index fcfe5159c..238a1a0ca 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videoflip.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videoflip.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videoflip</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-videocrop.html" title="videocrop">
@@ -71,7 +71,7 @@ Flips and rotates video.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp11271056"></a><h3>Example launch line</h3>
+<a name="idp23604960"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -92,9 +92,12 @@ Last reviewed on 2010-04-18 (0.10.22)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp22652768"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10678912"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -115,9 +118,12 @@ Last reviewed on 2010-04-18 (0.10.22)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp16249840"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp23961728"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -133,12 +139,15 @@ Last reviewed on 2010-04-18 (0.10.22)
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, format=(string){ AYUV, ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/x-raw, format=(string){ AYUV, ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -154,7 +163,7 @@ Last reviewed on 2010-04-18 (0.10.22)
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, format=(string){ AYUV, ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/x-raw, format=(string){ AYUV, ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
@@ -189,8 +198,11 @@ Opaque datastructure.
 <p>
 The different flip methods.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-VIDEO-FLIP-METHOD-IDENTITY:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FLIP_METHOD_IDENTITY</code></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videomixer.html b/docs/plugins/html/gst-plugins-good-plugins-videomixer.html
index 099ee4c47..9d9a04970 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videomixer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videomixer.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videomixer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-videoflip.html" title="videoflip">
@@ -54,12 +54,12 @@ No colorspace conversion is done.
 </p>
 <p>
 Individual parameters for each input stream can be configured on the
-<span class="type">GstVideoMixer2Pad</span>.
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good/html/GstVideoMixer2Pad.html"><span class="type">GstVideoMixer2Pad</span></a>.
 </p>
 <p>
 </p>
 <div class="refsect2">
-<a name="idp15866944"></a><h3>Sample pipelines</h3>
+<a name="idp19230608"></a><h3>Sample pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -160,9 +160,12 @@ framerate of the output video is 10 frames per second.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp16747632"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp16547136"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -183,9 +186,12 @@ framerate of the output video is 10 frames per second.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp21685152"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp23241472"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -205,8 +211,11 @@ framerate of the output video is 10 frames per second.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html b/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html
index c36a69646..317abe41d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vp8dec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-videomixer.html" title="videomixer">
@@ -70,9 +70,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp21854144"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp22516320"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -93,9 +96,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp16422064"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp21321776"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -115,8 +121,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html b/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html
index ad6a51b7f..c8a87fb14 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vp8enc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-vp8dec.html" title="vp8dec">
@@ -124,6 +124,7 @@ GstVP8Enc implements
   "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-minsection" title='The "twopass-vbr-minsection" property'>twopass-vbr-minsection</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-good-plugins-vp8enc.html#GstVP8Enc--undershoot" title='The "undershoot" property'>undershoot</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-good-plugins-vp8enc.html#GstVP8Enc--vertical-scaling-mode" title='The "vertical-scaling-mode" property'>vertical-scaling-mode</a>"    <span class="type">GstVP8EncScalingMode</span>  : Read / Write
+  "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--timebase" title='The "timebase" property'>timebase</a>"                 <span class="type">GstFraction</span>           : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -131,9 +132,12 @@ GstVP8Enc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp23900400"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp25147936"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -154,9 +158,12 @@ GstVP8Enc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp23907808"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp25155344"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -176,8 +183,11 @@ GstVP8Enc implements
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -649,6 +659,12 @@ GstVP8Enc implements
 <p>Vertical scaling mode.</p>
 <p>Default value: Normal</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstVP8Enc--timebase"></a><h3>The <code class="literal">"timebase"</code> property</h3>
+<pre class="programlisting">  "timebase"                 <span class="type">GstFraction</span>           : Read / Write</pre>
+<p>Fraction of one second that is the shortest interframe time - normally left as zero which will default to the framerate.</p>
+</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-warptv.html b/docs/plugins/html/gst-plugins-good-plugins-warptv.html
index 707fafc5f..3c45109e8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-warptv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-warptv.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>warptv</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-vp8enc.html" title="vp8enc">
@@ -62,7 +62,7 @@ WarpTV does realtime goo'ing of the video input.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp23811936"></a><h3>Example launch line</h3>
+<a name="idp21797648"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -80,9 +80,12 @@ WarpTV does realtime goo'ing of the video input.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9071744"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp23932944"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -103,9 +106,12 @@ WarpTV does realtime goo'ing of the video input.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp19689024"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp23695440"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -125,8 +131,11 @@ WarpTV does realtime goo'ing of the video input.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html b/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html
index a7fb0014d..228939628 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>waveformsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-wavenc.html" title="wavenc">
@@ -45,9 +45,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp15373696"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp25057792"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -68,7 +71,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp22706464"></a><h3>Element Pads</h3>
+<a name="idp23705008"></a><h3>Element Pads</h3>
 </div>
 </div>
 <p>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavenc.html b/docs/plugins/html/gst-plugins-good-plugins-wavenc.html
index 430c9668b..5f5a1b7bb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavenc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>wavenc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-warptv.html" title="warptv">
@@ -26,6 +26,8 @@
                   <a href="#gst-plugins-good-plugins-wavenc.description" class="shortcut">Description</a>
                    | 
                   <a href="#gst-plugins-good-plugins-wavenc.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#gst-plugins-good-plugins-wavenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
 </td></tr>
 </table>
 <div class="refentry">
@@ -53,16 +55,54 @@
 </pre>
 </div>
 <div class="refsect1">
+<a name="gst-plugins-good-plugins-wavenc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+GstWavEnc implements
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html">GstTagSetter</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTocSetter.html#GstTocSetter">GstTocSetter</a>.</p>
+</div>
+<div class="refsect1">
 <a name="gst-plugins-good-plugins-wavenc.description"></a><h2>Description</h2>
 <p>
-Format a audio stream into the wav format.
+Format an audio stream into the wav format.
+</p>
+<p>
+</p>
+<div class="refsect2">
+<a name="idp24056928"></a><h3>Example launch line</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><span class="number">1.0</span> cdparanoiasrc mode<span class="gtkdoc opt">=</span>continuous <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> wavenc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>cd<span class="gtkdoc opt">.</span>wav</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Rip a whole audio CD into a single wav file, with the track table written into a CUE sheet inside the file
+<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><span class="number">1.0</span> cdparanoiasrc track<span class="gtkdoc opt">=</span><span class="number">5</span> <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> wavenc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>track5<span class="gtkdoc opt">.</span>wav</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Rip track 5 of an audio CD into a single wav file containing unencoded raw audio samples.
+</div>
+<p>
 </p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp19055744"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp24974896"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -83,9 +123,12 @@ Format a audio stream into the wav format.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp22133408"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7251776"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -117,8 +160,11 @@ Format a audio stream into the wav format.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html
index 4790ff4b2..a63c571c0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>wavpackdec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-waveformsink.html" title="waveformsink">
@@ -58,9 +58,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp16756368"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp2869728"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -81,9 +84,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp16438000"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9508704"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -103,8 +109,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html
index 2e1a3e643..b09404b02 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>wavpackenc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-wavpackdec.html" title="wavpackdec">
@@ -80,9 +80,12 @@ GstWavpackEnc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp12688160"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp20018592"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -103,9 +106,12 @@ GstWavpackEnc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp19750368"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp24230080"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -125,8 +131,11 @@ GstWavpackEnc implements
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -146,8 +155,11 @@ GstWavpackEnc implements
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html
index 68b3ffd2d..30314fe78 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>wavpackparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-wavpackenc.html" title="wavpackenc">
@@ -61,7 +61,7 @@ This is an Wavpack parser.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp18042816"></a><h3>Example launch line</h3>
+<a name="idp24250064"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -79,9 +79,12 @@ This is an Wavpack parser.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp22702560"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp24764048"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -102,9 +105,12 @@ This is an Wavpack parser.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp20437536"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6615088"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -124,8 +130,11 @@ This is an Wavpack parser.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavparse.html b/docs/plugins/html/gst-plugins-good-plugins-wavparse.html
index 8f3b7b8f3..e054cb782 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>wavparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-wavpackparse.html" title="wavpackparse">
@@ -72,7 +72,7 @@ stream from a network source.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp22595584"></a><h3>Example launch line</h3>
+<a name="idp21086512"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -105,9 +105,12 @@ Last reviewed on 2007-02-14 (0.10.6)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp23857184"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp19290016"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -128,9 +131,12 @@ Last reviewed on 2007-02-14 (0.10.6)
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp20482944"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp17485552"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -150,8 +156,11 @@ Last reviewed on 2007-02-14 (0.10.6)
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-webmmux.html b/docs/plugins/html/gst-plugins-good-plugins-webmmux.html
index 4b17ab286..bced44546 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-webmmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-webmmux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>webmmux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-wavparse.html" title="wavparse">
@@ -69,7 +69,7 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file.
 <p>
 </p>
 <div class="refsect2">
-<a name="idp21656528"></a><h3>Example launch line</h3>
+<a name="idp24063968"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -108,9 +108,12 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp21654688"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp22072640"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -131,9 +134,12 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file.
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp21958912"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp18408928"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -153,8 +159,11 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -198,8 +207,11 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file.
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -217,10 +229,17 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file.
 <td><p><span class="term">details</span></p></td>
 <td>video/x-vp8, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-vp9, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html b/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html
index 795adaee1..c4a7cc607 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ximagesrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-webmmux.html" title="webmmux">
@@ -77,9 +77,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp23238272"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp23832208"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -100,9 +103,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp22667888"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp22572480"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-y4menc.html b/docs/plugins/html/gst-plugins-good-plugins-y4menc.html
index 213e969ff..9e74de280 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-y4menc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-y4menc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>y4menc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-ximagesrc.html" title="ximagesrc">
@@ -57,7 +57,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp22269456"></a><h3>Example launch line</h3>
+<a name="idp23969600"></a><h3>Example launch line</h3>
 <p>
 Creates a YU4MPEG2 raw video stream as defined by the mjpegtools project.
 </p>
@@ -77,9 +77,12 @@ gst-launch-0.10 videotestsrc num-buffers=250 \
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp21858000"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp23091712"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -100,9 +103,12 @@ gst-launch-0.10 videotestsrc num-buffers=250 \
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp18914368"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6050048"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -122,8 +128,11 @@ gst-launch-0.10 videotestsrc num-buffers=250 \
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index c6cac8b64..3be048f6d 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="next" href="ch01.html" title="gst-plugins-good Elements">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
@@ -15,14 +15,14 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Good Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Good Plugins 1.0 (1.0.8)
+      for GStreamer Good Plugins 1.0 (1.1.2)
       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-good/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good/html/</a>.
     </p></div>
 </div>
 <hr>
 </div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt><span class="chapter"><a href="ch01.html">gst-plugins-good Elements</a></span></dt>
 <dd><dl>
 <dt>
@@ -152,6 +152,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-directsoundsink.html">directsoundsink</a></span><span class="refpurpose"> — DirectSound audio sink</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-dtmfsrc.html">dtmfsrc</a></span><span class="refpurpose"> — Generates DTMF tones</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-dv1394src.html">dv1394src</a></span><span class="refpurpose"> — Source for DV video data from firewire port</span>
 </dt>
 <dt>
@@ -197,9 +200,6 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-gamma.html">gamma</a></span><span class="refpurpose"> — Adjusts gamma on a video stream</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-gdkpixbufoverlay.html">gdkpixbufoverlay</a></span><span class="refpurpose"> — Overlay an image onto a video stream</span>
-</dt>
-<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-gdkpixbufsink.html">gdkpixbufsink</a></span><span class="refpurpose"> — Output images as GdkPixbuf objects in bus messages</span>
 </dt>
 <dt>
@@ -356,21 +356,57 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdec.html">rtpdec</a></span><span class="refpurpose"> — Accepts raw RTP and RTCP packets and sends them forward</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpac3depay.html">rtpac3depay</a></span><span class="refpurpose"> — Extracts AC3 audio from RTP packets (RFC 4184)</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpac3pay.html">rtpac3pay</a></span><span class="refpurpose"> — Payload AC3 audio as RTP packets (RFC 4184)</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpamrdepay.html">rtpamrdepay</a></span><span class="refpurpose"> — Extracts AMR or AMR-WB audio from RTP packets (RFC 3267)</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpamrpay.html">rtpamrpay</a></span><span class="refpurpose"> — Payload-encode AMR or AMR-WB audio into RTP packets (RFC 3267)</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbvdepay.html">rtpbvdepay</a></span><span class="refpurpose"> — Extracts BroadcomVoice audio from RTP packets (RFC 4298)</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbvpay.html">rtpbvpay</a></span><span class="refpurpose"> — Packetize BroadcomVoice audio streams into RTP packets (RFC 4298)</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL16depay.html">rtpL16depay</a></span><span class="refpurpose"> — Extracts raw audio from RTP packets</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL16pay.html">rtpL16pay</a></span><span class="refpurpose"> — Payload-encode Raw audio into RTP packets (RFC 3551)</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpj2kpay.html">rtpj2kpay</a></span><span class="refpurpose"> — Payload-encodes JPEG 2000 pictures into RTP packets (RFC 5371)</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpjpegpay.html">rtpjpegpay</a></span><span class="refpurpose"> — Payload-encodes JPEG pictures into RTP packets (RFC 2435)</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpsbcpay.html">rtpsbcpay</a></span><span class="refpurpose"> — Payload SBC audio as RTP packets</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtspsrc.html">rtspsrc</a></span><span class="refpurpose"> — Receive data over the network via RTSP (RFC 2326)</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbin.html">rtpbin</a></span><span class="refpurpose"> — Real-Time Transport Protocol bin</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdtmfmux.html">rtpdtmfmux</a></span><span class="refpurpose"> — mixes RTP DTMF streams into other RTP streams</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdtmfsrc.html">rtpdtmfsrc</a></span><span class="refpurpose"> — Generates RTP DTMF packets</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpjitterbuffer.html">rtpjitterbuffer</a></span><span class="refpurpose"> — A buffer that deals with network jitter and other transmission faults</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmux.html">rtpmux</a></span><span class="refpurpose"> — multiplex N rtp streams into one</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpptdemux.html">rtpptdemux</a></span><span class="refpurpose"> — Parses codec streams transmitted in the same RTP session</span>
 </dt>
 <dt>
@@ -380,6 +416,12 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpssrcdemux.html">rtpssrcdemux</a></span><span class="refpurpose"> — Splits RTP streams based on the SSRC</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-sbcparse.html">sbcparse</a></span><span class="refpurpose"> — Parses an SBC bluetooth audio stream</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-scaletempo.html">scaletempo</a></span><span class="refpurpose"> — Sync audio tempo with playback rate</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-shagadelictv.html">shagadelictv</a></span><span class="refpurpose"> — Oh behave, ShagedelicTV makes images shagadelic!</span>
 </dt>
 <dt>
@@ -485,211 +527,214 @@
 <dt><span class="chapter"><a href="ch02.html">gst-plugins-good Plugins</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-1394.html">1394</a></span><span class="refpurpose"> — <a name="plugin-1394"></a>Source for video data via IEEE1394 interface</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-1394.html">1394</a></span><span class="refpurpose">Source for video data via IEEE1394 interface</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-aasink.html">aasink</a></span><span class="refpurpose">ASCII Art video sink</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-aasink.html">aasink</a></span><span class="refpurpose"> — <a name="plugin-aasink"></a>ASCII Art video sink</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alaw.html">alaw</a></span><span class="refpurpose">ALaw audio conversion routines</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alaw.html">alaw</a></span><span class="refpurpose"> — <a name="plugin-alaw"></a>ALaw audio conversion routines</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alpha.html">alpha</a></span><span class="refpurpose">adds an alpha channel to video - constant or via chroma-keying</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alpha.html">alpha</a></span><span class="refpurpose"> — <a name="plugin-alpha"></a>adds an alpha channel to video - constant or via chroma-keying</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alphacolor.html">alphacolor</a></span><span class="refpurpose">RGBA from/to AYUV colorspace conversion preserving the alpha channel</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alphacolor.html">alphacolor</a></span><span class="refpurpose"> — <a name="plugin-alphacolor"></a>RGBA from/to AYUV colorspace conversion preserving the alpha channel</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-apetag.html">apetag</a></span><span class="refpurpose">APEv1/2 tag reader</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-apetag.html">apetag</a></span><span class="refpurpose"> — <a name="plugin-apetag"></a>APEv1/2 tag reader</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-audiofx.html">audiofx</a></span><span class="refpurpose">Audio effects plugin</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-audiofx.html">audiofx</a></span><span class="refpurpose"> — <a name="plugin-audiofx"></a>Audio effects plugin</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-auparse.html">auparse</a></span><span class="refpurpose">parses au streams</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-auparse.html">auparse</a></span><span class="refpurpose"> — <a name="plugin-auparse"></a>parses au streams</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-autodetect.html">autodetect</a></span><span class="refpurpose">Plugin contains auto-detection plugins for video/audio in- and outputs</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-autodetect.html">autodetect</a></span><span class="refpurpose"> — <a name="plugin-autodetect"></a>Plugin contains auto-detection plugins for video/audio in- and outputs</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-avi.html">avi</a></span><span class="refpurpose">AVI stream handling</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-avi.html">avi</a></span><span class="refpurpose"> — <a name="plugin-avi"></a>AVI stream handling</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cacasink.html">cacasink</a></span><span class="refpurpose">Colored ASCII Art video sink</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cacasink.html">cacasink</a></span><span class="refpurpose"> — <a name="plugin-cacasink"></a>Colored ASCII Art video sink</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cairo.html">cairo</a></span><span class="refpurpose">Cairo-based elements</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cairo.html">cairo</a></span><span class="refpurpose"> — <a name="plugin-cairo"></a>Cairo-based elements</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cutter.html">cutter</a></span><span class="refpurpose">Audio Cutter to split audio into non-silent bits</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-cutter.html">cutter</a></span><span class="refpurpose"> — <a name="plugin-cutter"></a>Audio Cutter to split audio into non-silent bits</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-debug.html">debug</a></span><span class="refpurpose">elements for testing and debugging</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-debug.html">debug</a></span><span class="refpurpose"> — <a name="plugin-debug"></a>elements for testing and debugging</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-deinterlace.html">deinterlace</a></span><span class="refpurpose">Deinterlacer</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-deinterlace.html">deinterlace</a></span><span class="refpurpose"> — <a name="plugin-deinterlace"></a>Deinterlacer</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-directsound.html">directsound</a></span><span class="refpurpose">DirectSound plugin</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-directsound.html">directsound</a></span><span class="refpurpose"> — <a name="plugin-directsound"></a>DirectSound plugin</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-dtmf.html">dtmf</a></span><span class="refpurpose">DTMF plugins</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-dv.html">dv</a></span><span class="refpurpose"> — <a name="plugin-dv"></a>DV demuxer and decoder based on libdv (libdv.sf.net)</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-dv.html">dv</a></span><span class="refpurpose">DV demuxer and decoder based on libdv (libdv.sf.net)</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-equalizer.html">equalizer</a></span><span class="refpurpose"> — <a name="plugin-equalizer"></a>GStreamer audio equalizers</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-equalizer.html">equalizer</a></span><span class="refpurpose">GStreamer audio equalizers</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-effectv.html">effectv</a></span><span class="refpurpose"> — <a name="plugin-effectv"></a>effect plugins from the effectv project</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-effectv.html">effectv</a></span><span class="refpurpose">effect plugins from the effectv project</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flac.html">flac</a></span><span class="refpurpose"> — <a name="plugin-flac"></a>The FLAC Lossless compressor Codec</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flac.html">flac</a></span><span class="refpurpose">The FLAC Lossless compressor Codec</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flv.html">flv</a></span><span class="refpurpose"> — <a name="plugin-flv"></a>FLV muxing and demuxing plugin</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flv.html">flv</a></span><span class="refpurpose">FLV muxing and demuxing plugin</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flxdec.html">flxdec</a></span><span class="refpurpose"> — <a name="plugin-flxdec"></a>FLC/FLI/FLX video decoder</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flxdec.html">flxdec</a></span><span class="refpurpose">FLC/FLI/FLX video decoder</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-gdkpixbuf.html">gdkpixbuf</a></span><span class="refpurpose"> — <a name="plugin-gdkpixbuf"></a>GdkPixbuf-based image decoder, overlay and sink</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-gdkpixbuf.html">gdkpixbuf</a></span><span class="refpurpose">GdkPixbuf-based image decoder, overlay and sink</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom.html">goom</a></span><span class="refpurpose"> — <a name="plugin-goom"></a>GOOM visualization filter</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom.html">goom</a></span><span class="refpurpose">GOOM visualization filter</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom2k1.html">goom2k1</a></span><span class="refpurpose"> — <a name="plugin-goom2k1"></a>GOOM 2k1 visualization filter</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom2k1.html">goom2k1</a></span><span class="refpurpose">GOOM 2k1 visualization filter</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-icydemux.html">icydemux</a></span><span class="refpurpose"> — <a name="plugin-icydemux"></a>Demux ICY tags from a stream</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-icydemux.html">icydemux</a></span><span class="refpurpose">Demux ICY tags from a stream</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-id3demux.html">id3demux</a></span><span class="refpurpose"> — <a name="plugin-id3demux"></a>Demux ID3v1 and ID3v2 tags from a file</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-id3demux.html">id3demux</a></span><span class="refpurpose">Demux ID3v1 and ID3v2 tags from a file</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-imagefreeze.html">imagefreeze</a></span><span class="refpurpose"> — <a name="plugin-imagefreeze"></a>Still frame stream generator</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-imagefreeze.html">imagefreeze</a></span><span class="refpurpose">Still frame stream generator</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-interleave.html">interleave</a></span><span class="refpurpose"> — <a name="plugin-interleave"></a>Audio interleaver/deinterleaver</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-interleave.html">interleave</a></span><span class="refpurpose">Audio interleaver/deinterleaver</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-isomp4.html">isomp4</a></span><span class="refpurpose"> — <a name="plugin-isomp4"></a>ISO base media file format support (mp4, 3gpp, qt, mj2)</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-isomp4.html">isomp4</a></span><span class="refpurpose">ISO base media file format support (mp4, 3gpp, qt, mj2)</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-jack.html">jack</a></span><span class="refpurpose"> — <a name="plugin-jack"></a>JACK audio elements</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-jack.html">jack</a></span><span class="refpurpose">JACK audio elements</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-jpeg.html">jpeg</a></span><span class="refpurpose"> — <a name="plugin-jpeg"></a>JPeg plugin library</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-jpeg.html">jpeg</a></span><span class="refpurpose">JPeg plugin library</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-level.html">level</a></span><span class="refpurpose"> — <a name="plugin-level"></a>Audio level plugin</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-level.html">level</a></span><span class="refpurpose">Audio level plugin</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-matroska.html">matroska</a></span><span class="refpurpose"> — <a name="plugin-matroska"></a>Matroska and WebM stream handling</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-matroska.html">matroska</a></span><span class="refpurpose">Matroska and WebM stream handling</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-monoscope.html">monoscope</a></span><span class="refpurpose"> — <a name="plugin-monoscope"></a>Monoscope visualization</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-monoscope.html">monoscope</a></span><span class="refpurpose">Monoscope visualization</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-mulaw.html">mulaw</a></span><span class="refpurpose"> — <a name="plugin-mulaw"></a>MuLaw audio conversion routines</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-mulaw.html">mulaw</a></span><span class="refpurpose">MuLaw audio conversion routines</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-multifile.html">multifile</a></span><span class="refpurpose"> — <a name="plugin-multifile"></a>Reads/Writes buffers from/to sequentially named files</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-multifile.html">multifile</a></span><span class="refpurpose">Reads/Writes buffers from/to sequentially named files</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-multipart.html">multipart</a></span><span class="refpurpose"> — <a name="plugin-multipart"></a>multipart stream manipulation</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-multipart.html">multipart</a></span><span class="refpurpose">multipart stream manipulation</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-navigationtest.html">navigationtest</a></span><span class="refpurpose"> — <a name="plugin-navigationtest"></a>Template for a video filter</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-navigationtest.html">navigationtest</a></span><span class="refpurpose">Template for a video filter</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-oss4.html">oss4</a></span><span class="refpurpose"> — <a name="plugin-oss4"></a>Open Sound System (OSS) version 4 support for GStreamer</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-oss4.html">oss4</a></span><span class="refpurpose">Open Sound System (OSS) version 4 support for GStreamer</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-ossaudio.html">ossaudio</a></span><span class="refpurpose"> — <a name="plugin-ossaudio"></a>OSS (Open Sound System) support for GStreamer</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-ossaudio.html">ossaudio</a></span><span class="refpurpose">OSS (Open Sound System) support for GStreamer</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-osxaudio.html">osxaudio</a></span><span class="refpurpose"> — <a name="plugin-osxaudio"></a>OSX (Mac OS X) audio support for GStreamer</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-osxaudio.html">osxaudio</a></span><span class="refpurpose">OSX (Mac OS X) audio support for GStreamer</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-osxvideo.html">osxvideo</a></span><span class="refpurpose"> — <a name="plugin-osxvideo"></a>OSX native video output plugin</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-osxvideo.html">osxvideo</a></span><span class="refpurpose">OSX native video output plugin</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-png.html">png</a></span><span class="refpurpose"> — <a name="plugin-png"></a>PNG plugin library</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-png.html">png</a></span><span class="refpurpose">PNG plugin library</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-pulseaudio.html">pulseaudio</a></span><span class="refpurpose"> — <a name="plugin-pulseaudio"></a>PulseAudio plugin library</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-pulseaudio.html">pulseaudio</a></span><span class="refpurpose">PulseAudio plugin library</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-replaygain.html">replaygain</a></span><span class="refpurpose"> — <a name="plugin-replaygain"></a>ReplayGain volume normalization</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-replaygain.html">replaygain</a></span><span class="refpurpose">ReplayGain volume normalization</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtp.html">rtp</a></span><span class="refpurpose"> — <a name="plugin-rtp"></a>Real-time protocol plugins</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtp.html">rtp</a></span><span class="refpurpose">Real-time protocol plugins</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtpmanager.html">rtpmanager</a></span><span class="refpurpose"> — <a name="plugin-rtpmanager"></a>RTP session management plugin library</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtpmanager.html">rtpmanager</a></span><span class="refpurpose">RTP session management plugin library</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtsp.html">rtsp</a></span><span class="refpurpose"> — <a name="plugin-rtsp"></a>transfer data via RTSP</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtsp.html">rtsp</a></span><span class="refpurpose">transfer data via RTSP</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-shapewipe.html">shapewipe</a></span><span class="refpurpose"> — <a name="plugin-shapewipe"></a>Shape Wipe transition filter</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-shapewipe.html">shapewipe</a></span><span class="refpurpose">Shape Wipe transition filter</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-shout2send.html">shout2send</a></span><span class="refpurpose"> — <a name="plugin-shout2send"></a>Sends data to an icecast server using libshout2</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-shout2send.html">shout2send</a></span><span class="refpurpose">Sends data to an icecast server using libshout2</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-smpte.html">smpte</a></span><span class="refpurpose"> — <a name="plugin-smpte"></a>Apply the standard SMPTE transitions on video images</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-smpte.html">smpte</a></span><span class="refpurpose">Apply the standard SMPTE transitions on video images</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-soup.html">soup</a></span><span class="refpurpose"> — <a name="plugin-soup"></a>libsoup HTTP client src/sink</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-soup.html">soup</a></span><span class="refpurpose">libsoup HTTP client src/sink</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-spectrum.html">spectrum</a></span><span class="refpurpose"> — <a name="plugin-spectrum"></a>Run an FFT on the audio signal, output spectrum data</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-spectrum.html">spectrum</a></span><span class="refpurpose">Run an FFT on the audio signal, output spectrum data</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-speex.html">speex</a></span><span class="refpurpose"> — <a name="plugin-speex"></a>Speex plugin library</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-speex.html">speex</a></span><span class="refpurpose">Speex plugin library</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-taglib.html">taglib</a></span><span class="refpurpose"> — <a name="plugin-taglib"></a>Tag writing plug-in based on taglib</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-taglib.html">taglib</a></span><span class="refpurpose">Tag writing plug-in based on taglib</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-udp.html">udp</a></span><span class="refpurpose"> — <a name="plugin-udp"></a>transfer data via UDP</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-udp.html">udp</a></span><span class="refpurpose">transfer data via UDP</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-video4linux2.html">video4linux2</a></span><span class="refpurpose"> — <a name="plugin-video4linux2"></a>elements for Video 4 Linux</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-video4linux2.html">video4linux2</a></span><span class="refpurpose">elements for Video 4 Linux</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videobox.html">videobox</a></span><span class="refpurpose"> — <a name="plugin-videobox"></a>resizes a video by adding borders or cropping</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videobox.html">videobox</a></span><span class="refpurpose">resizes a video by adding borders or cropping</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videocrop.html">videocrop</a></span><span class="refpurpose"> — <a name="plugin-videocrop"></a>Crops video into a user-defined region</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videocrop.html">videocrop</a></span><span class="refpurpose">Crops video into a user-defined region</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videofilter.html">videofilter</a></span><span class="refpurpose"> — <a name="plugin-videofilter"></a>Video filters plugin</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videofilter.html">videofilter</a></span><span class="refpurpose">Video filters plugin</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videomixer.html">videomixer</a></span><span class="refpurpose"> — <a name="plugin-videomixer"></a>Video mixer</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-videomixer.html">videomixer</a></span><span class="refpurpose">Video mixer</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-vpx.html">vpx</a></span><span class="refpurpose"> — <a name="plugin-vpx"></a>VP8 plugin</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-vpx.html">vpx</a></span><span class="refpurpose">VP8 plugin</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-waveform.html">waveform</a></span><span class="refpurpose"> — <a name="plugin-waveform"></a>WaveForm API based plugin</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-waveform.html">waveform</a></span><span class="refpurpose">WaveForm API based plugin</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavenc.html">wavenc</a></span><span class="refpurpose"> — <a name="plugin-wavenc"></a>Encode raw audio into WAV</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavenc.html">wavenc</a></span><span class="refpurpose">Encode raw audio into WAV</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavpack.html">wavpack</a></span><span class="refpurpose"> — <a name="plugin-wavpack"></a>Wavpack lossless/lossy audio format handling</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavpack.html">wavpack</a></span><span class="refpurpose">Wavpack lossless/lossy audio format handling</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavparse.html">wavparse</a></span><span class="refpurpose"> — <a name="plugin-wavparse"></a>Parse a .wav file into raw audio</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-wavparse.html">wavparse</a></span><span class="refpurpose">Parse a .wav file into raw audio</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-ximagesrc.html">ximagesrc</a></span><span class="refpurpose"> — <a name="plugin-ximagesrc"></a>X11 video input plugin using standard Xlib calls</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-ximagesrc.html">ximagesrc</a></span><span class="refpurpose">X11 video input plugin using standard Xlib calls</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-y4menc.html">y4menc</a></span><span class="refpurpose"> — <a name="plugin-y4menc"></a>Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-y4menc.html">y4menc</a></span><span class="refpurpose">Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="ch03.html">gst-plugins-good Base Classes</a></span></dt>
diff --git a/docs/plugins/html/index.sgml b/docs/plugins/html/index.sgml
index 4c77d302c..270b80f01 100644
--- a/docs/plugins/html/index.sgml
+++ b/docs/plugins/html/index.sgml
@@ -478,6 +478,17 @@
 <ANCHOR id="gst-plugins-good-plugins-directsoundsink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-directsoundsink.html#gst-plugins-good-plugins-directsoundsink.description">
 <ANCHOR id="gst-plugins-good-plugins-directsoundsink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-directsoundsink.html#gst-plugins-good-plugins-directsoundsink.details">
 <ANCHOR id="GstDirectSoundSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-directsoundsink.html#GstDirectSoundSink">
+<ANCHOR id="gst-plugins-good-plugins-dtmfsrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html">
+<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.synopsis">
+<ANCHOR id="GstDTMFSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc">
+<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.properties">
+<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.description">
+<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.details">
+<ANCHOR id="GstDTMFSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc-struct">
+<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.property-details">
+<ANCHOR id="GstDTMFSrc--interval" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc--interval">
+<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.see-also">
 <ANCHOR id="gst-plugins-good-plugins-dv1394src" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html">
 <ANCHOR id="gst-plugins-good-plugins-dv1394src.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#gst-plugins-good-plugins-dv1394src.synopsis">
 <ANCHOR id="GstDV1394Src" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#GstDV1394Src">
@@ -657,23 +668,6 @@
 <ANCHOR id="GstGamma-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#GstGamma-struct">
 <ANCHOR id="gst-plugins-good-plugins-gamma.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#gst-plugins-good-plugins-gamma.property-details">
 <ANCHOR id="GstGamma--gamma" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#GstGamma--gamma">
-<ANCHOR id="gst-plugins-good-plugins-gdkpixbufoverlay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html">
-<ANCHOR id="gst-plugins-good-plugins-gdkpixbufoverlay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#gst-plugins-good-plugins-gdkpixbufoverlay.synopsis">
-<ANCHOR id="GstGdkPixbufOverlay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay">
-<ANCHOR id="gst-plugins-good-plugins-gdkpixbufoverlay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#gst-plugins-good-plugins-gdkpixbufoverlay.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-gdkpixbufoverlay.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#gst-plugins-good-plugins-gdkpixbufoverlay.properties">
-<ANCHOR id="gst-plugins-good-plugins-gdkpixbufoverlay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#gst-plugins-good-plugins-gdkpixbufoverlay.description">
-<ANCHOR id="gst-plugins-good-plugins-gdkpixbufoverlay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#gst-plugins-good-plugins-gdkpixbufoverlay.details">
-<ANCHOR id="GstGdkPixbufOverlay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay-struct">
-<ANCHOR id="gst-plugins-good-plugins-gdkpixbufoverlay.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#gst-plugins-good-plugins-gdkpixbufoverlay.property-details">
-<ANCHOR id="GstGdkPixbufOverlay--location" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--location">
-<ANCHOR id="GstGdkPixbufOverlay--offset-x" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--offset-x">
-<ANCHOR id="GstGdkPixbufOverlay--offset-y" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--offset-y">
-<ANCHOR id="GstGdkPixbufOverlay--overlay-height" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--overlay-height">
-<ANCHOR id="GstGdkPixbufOverlay--overlay-width" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--overlay-width">
-<ANCHOR id="GstGdkPixbufOverlay--relative-x" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--relative-x">
-<ANCHOR id="GstGdkPixbufOverlay--relative-y" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--relative-y">
-<ANCHOR id="GstGdkPixbufOverlay--alpha" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--alpha">
 <ANCHOR id="gst-plugins-good-plugins-gdkpixbufsink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html">
 <ANCHOR id="gst-plugins-good-plugins-gdkpixbufsink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#gst-plugins-good-plugins-gdkpixbufsink.synopsis">
 <ANCHOR id="GstGdkPixbufSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink">
@@ -832,6 +826,7 @@
 <ANCHOR id="GstLevel--message" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#GstLevel--message">
 <ANCHOR id="GstLevel--peak-falloff" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#GstLevel--peak-falloff">
 <ANCHOR id="GstLevel--peak-ttl" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#GstLevel--peak-ttl">
+<ANCHOR id="GstLevel--post-messages" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#GstLevel--post-messages">
 <ANCHOR id="gst-plugins-good-plugins-matroskamux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html">
 <ANCHOR id="gst-plugins-good-plugins-matroskamux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#gst-plugins-good-plugins-matroskamux.synopsis">
 <ANCHOR id="GstMatroskaMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux">
@@ -877,9 +872,11 @@
 <ANCHOR id="GstMJ2Mux--trak-timescale" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--trak-timescale">
 <ANCHOR id="gst-plugins-good-plugins-monoscope" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html">
 <ANCHOR id="gst-plugins-good-plugins-monoscope.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.synopsis">
+<ANCHOR id="GstMonoscope" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#GstMonoscope">
+<ANCHOR id="gst-plugins-good-plugins-monoscope.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.object-hierarchy">
 <ANCHOR id="gst-plugins-good-plugins-monoscope.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.description">
 <ANCHOR id="gst-plugins-good-plugins-monoscope.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.details">
-<ANCHOR id="GstMonoscope" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#GstMonoscope">
+<ANCHOR id="GstMonoscope-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#GstMonoscope-struct">
 <ANCHOR id="gst-plugins-good-plugins-monoscope.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.see-also">
 <ANCHOR id="gst-plugins-good-plugins-mpegaudioparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html">
 <ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.synopsis">
@@ -1011,6 +1008,10 @@
 <ANCHOR id="GstMultiUDPSink--used-socket" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--used-socket">
 <ANCHOR id="GstMultiUDPSink--force-ipv4" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--force-ipv4">
 <ANCHOR id="GstMultiUDPSink--multicast-iface" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--multicast-iface">
+<ANCHOR id="GstMultiUDPSink--bind-address" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bind-address">
+<ANCHOR id="GstMultiUDPSink--bind-port" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bind-port">
+<ANCHOR id="GstMultiUDPSink--socket-v6" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--socket-v6">
+<ANCHOR id="GstMultiUDPSink--used-socket-v6" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--used-socket-v6">
 <ANCHOR id="gst-plugins-good-plugins-multiudpsink.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#gst-plugins-good-plugins-multiudpsink.signal-details">
 <ANCHOR id="GstMultiUDPSink-add" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-add">
 <ANCHOR id="GstMultiUDPSink-clear" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-clear">
@@ -1328,6 +1329,64 @@
 <ANCHOR id="GstRTPDec-on-ssrc-collision" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-collision">
 <ANCHOR id="GstRTPDec-on-ssrc-validated" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-validated">
 <ANCHOR id="GstRTPDec-on-timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-timeout">
+<ANCHOR id="gst-plugins-good-plugins-rtpac3depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpac3depay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.synopsis">
+<ANCHOR id="GstRtpAC3Depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#GstRtpAC3Depay">
+<ANCHOR id="gst-plugins-good-plugins-rtpac3depay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpac3depay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpac3depay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.details">
+<ANCHOR id="GstRtpAC3Depay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#GstRtpAC3Depay-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpac3depay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtpac3pay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpac3pay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#gst-plugins-good-plugins-rtpac3pay.synopsis">
+<ANCHOR id="GstRtpAC3Pay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#GstRtpAC3Pay">
+<ANCHOR id="gst-plugins-good-plugins-rtpac3pay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#gst-plugins-good-plugins-rtpac3pay.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpac3pay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#gst-plugins-good-plugins-rtpac3pay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpac3pay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#gst-plugins-good-plugins-rtpac3pay.details">
+<ANCHOR id="GstRtpAC3Pay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#GstRtpAC3Pay-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpac3pay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#gst-plugins-good-plugins-rtpac3pay.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtpamrdepay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpamrdepay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#gst-plugins-good-plugins-rtpamrdepay.synopsis">
+<ANCHOR id="GstRtpAMRDepay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#GstRtpAMRDepay">
+<ANCHOR id="gst-plugins-good-plugins-rtpamrdepay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#gst-plugins-good-plugins-rtpamrdepay.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpamrdepay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#gst-plugins-good-plugins-rtpamrdepay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpamrdepay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#gst-plugins-good-plugins-rtpamrdepay.details">
+<ANCHOR id="GstRtpAMRDepay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#GstRtpAMRDepay-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpamrdepay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#gst-plugins-good-plugins-rtpamrdepay.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtpamrpay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpamrpay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.synopsis">
+<ANCHOR id="GstRtpAMRPay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#GstRtpAMRPay">
+<ANCHOR id="gst-plugins-good-plugins-rtpamrpay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpamrpay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpamrpay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.details">
+<ANCHOR id="GstRtpAMRPay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#GstRtpAMRPay-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpamrpay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtpbvdepay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpbvdepay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html#gst-plugins-good-plugins-rtpbvdepay.synopsis">
+<ANCHOR id="gst-plugins-good-plugins-rtpbvdepay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html#gst-plugins-good-plugins-rtpbvdepay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpbvdepay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html#gst-plugins-good-plugins-rtpbvdepay.details">
+<ANCHOR id="gst-plugins-good-plugins-rtpbvdepay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html#gst-plugins-good-plugins-rtpbvdepay.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtpbvpay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpbvpay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html#gst-plugins-good-plugins-rtpbvpay.synopsis">
+<ANCHOR id="gst-plugins-good-plugins-rtpbvpay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html#gst-plugins-good-plugins-rtpbvpay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpbvpay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html#gst-plugins-good-plugins-rtpbvpay.details">
+<ANCHOR id="gst-plugins-good-plugins-rtpbvpay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html#gst-plugins-good-plugins-rtpbvpay.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.synopsis">
+<ANCHOR id="GstRtpL16Depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.details">
+<ANCHOR id="GstRtpL16Depay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16pay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.synopsis">
+<ANCHOR id="GstRtpL16Pay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#GstRtpL16Pay">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.details">
+<ANCHOR id="GstRtpL16Pay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#GstRtpL16Pay-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.see-also">
 <ANCHOR id="gst-plugins-good-plugins-rtpj2kpay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html">
 <ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.synopsis">
 <ANCHOR id="GstRtpJ2KPay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay">
@@ -1350,12 +1409,23 @@
 <ANCHOR id="GstRtpJPEGPay--quality" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--quality">
 <ANCHOR id="GstRtpJPEGPay--type" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--type">
 <ANCHOR id="GstRtpJPEGPay--buffer-list" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--buffer-list">
+<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.synopsis">
+<ANCHOR id="GstRtpSBCPay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay">
+<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.properties">
+<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.details">
+<ANCHOR id="GstRtpSBCPay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.property-details">
+<ANCHOR id="GstRtpSBCPay--min-frames" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay--min-frames">
 <ANCHOR id="gst-plugins-good-plugins-rtspsrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html">
 <ANCHOR id="gst-plugins-good-plugins-rtspsrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.synopsis">
 <ANCHOR id="GstRTSPSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc">
 <ANCHOR id="gst-plugins-good-plugins-rtspsrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.object-hierarchy">
 <ANCHOR id="gst-plugins-good-plugins-rtspsrc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.implemented-interfaces">
 <ANCHOR id="gst-plugins-good-plugins-rtspsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.properties">
+<ANCHOR id="gst-plugins-good-plugins-rtspsrc.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.signals">
 <ANCHOR id="gst-plugins-good-plugins-rtspsrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.description">
 <ANCHOR id="gst-plugins-good-plugins-rtspsrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.details">
 <ANCHOR id="GstRTSPSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-struct">
@@ -1381,6 +1451,16 @@
 <ANCHOR id="GstRTSPSrc--do-rtsp-keep-alive" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-rtsp-keep-alive">
 <ANCHOR id="GstRTSPSrc--drop-on-latency" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--drop-on-latency">
 <ANCHOR id="GstRTSPSrc--probation" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--probation">
+<ANCHOR id="GstRTSPSrc--udp-reconnect" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--udp-reconnect">
+<ANCHOR id="GstRTSPSrc--proxy-id" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-id">
+<ANCHOR id="GstRTSPSrc--proxy-pw" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-pw">
+<ANCHOR id="GstRTSPSrc--multicast-iface" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--multicast-iface">
+<ANCHOR id="GstRTSPSrc--ntp-sync" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-sync">
+<ANCHOR id="GstRTSPSrc--use-pipeline-clock" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--use-pipeline-clock">
+<ANCHOR id="gst-plugins-good-plugins-rtspsrc.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.signal-details">
+<ANCHOR id="GstRTSPSrc-handle-request" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-handle-request">
+<ANCHOR id="GstRTSPSrc-on-sdp" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-on-sdp">
+<ANCHOR id="GstRTSPSrc-select-stream" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-select-stream">
 <ANCHOR id="gst-plugins-good-plugins-rtpbin" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html">
 <ANCHOR id="gst-plugins-good-plugins-rtpbin.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.synopsis">
 <ANCHOR id="GstRtpBin" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin">
@@ -1419,6 +1499,33 @@
 <ANCHOR id="GstRtpBin-request-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-pt-map">
 <ANCHOR id="GstRtpBin-reset-sync" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-reset-sync">
 <ANCHOR id="GstRtpBin-payload-type-change" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-payload-type-change">
+<ANCHOR id="gst-plugins-good-plugins-rtpbin.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.synopsis">
+<ANCHOR id="GstRTPDTMFMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.details">
+<ANCHOR id="GstRTPDTMFMux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.synopsis">
+<ANCHOR id="GstRTPDTMFSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.properties">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.details">
+<ANCHOR id="GstRTPDTMFSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.property-details">
+<ANCHOR id="GstRTPDTMFSrc--clock-rate" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--clock-rate">
+<ANCHOR id="GstRTPDTMFSrc--packet-redundancy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--packet-redundancy">
+<ANCHOR id="GstRTPDTMFSrc--pt" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--pt">
+<ANCHOR id="GstRTPDTMFSrc--seqnum" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--seqnum">
+<ANCHOR id="GstRTPDTMFSrc--seqnum-offset" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--seqnum-offset">
+<ANCHOR id="GstRTPDTMFSrc--ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--ssrc">
+<ANCHOR id="GstRTPDTMFSrc--timestamp" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp">
+<ANCHOR id="GstRTPDTMFSrc--timestamp-offset" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp-offset">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.see-also">
 <ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html">
 <ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#gst-plugins-good-plugins-rtpjitterbuffer.synopsis">
 <ANCHOR id="GstRtpJitterBuffer" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer">
@@ -1441,6 +1548,20 @@
 <ANCHOR id="GstRtpJitterBuffer-on-npt-stop" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-on-npt-stop">
 <ANCHOR id="GstRtpJitterBuffer-request-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map">
 <ANCHOR id="GstRtpJitterBuffer-set-active" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-set-active">
+<ANCHOR id="gst-plugins-good-plugins-rtpmux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpmux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.synopsis">
+<ANCHOR id="GstRTPMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#GstRTPMux">
+<ANCHOR id="gst-plugins-good-plugins-rtpmux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpmux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.properties">
+<ANCHOR id="gst-plugins-good-plugins-rtpmux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpmux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.details">
+<ANCHOR id="GstRTPMux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#GstRTPMux-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpmux.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.property-details">
+<ANCHOR id="GstRTPMux--seqnum" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum">
+<ANCHOR id="GstRTPMux--seqnum-offset" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum-offset">
+<ANCHOR id="GstRTPMux--ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#GstRTPMux--ssrc">
+<ANCHOR id="GstRTPMux--timestamp-offset" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#GstRTPMux--timestamp-offset">
+<ANCHOR id="gst-plugins-good-plugins-rtpmux.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.see-also">
 <ANCHOR id="gst-plugins-good-plugins-rtpptdemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html">
 <ANCHOR id="gst-plugins-good-plugins-rtpptdemux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#gst-plugins-good-plugins-rtpptdemux.synopsis">
 <ANCHOR id="GstRtpPtDemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux">
@@ -1500,6 +1621,27 @@
 <ANCHOR id="GstRtpSsrcDemux-clear-ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-clear-ssrc">
 <ANCHOR id="GstRtpSsrcDemux-new-ssrc-pad" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-new-ssrc-pad">
 <ANCHOR id="GstRtpSsrcDemux-removed-ssrc-pad" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-removed-ssrc-pad">
+<ANCHOR id="gst-plugins-good-plugins-sbcparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html">
+<ANCHOR id="gst-plugins-good-plugins-sbcparse.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.synopsis">
+<ANCHOR id="GstSbcParse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#GstSbcParse">
+<ANCHOR id="gst-plugins-good-plugins-sbcparse.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-sbcparse.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.description">
+<ANCHOR id="gst-plugins-good-plugins-sbcparse.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.details">
+<ANCHOR id="GstSbcParse-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#GstSbcParse-struct">
+<ANCHOR id="gst-plugins-good-plugins-sbcparse.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.see-also">
+<ANCHOR id="gst-plugins-good-plugins-scaletempo" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html">
+<ANCHOR id="gst-plugins-good-plugins-scaletempo.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.synopsis">
+<ANCHOR id="GstScaletempo" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#GstScaletempo">
+<ANCHOR id="gst-plugins-good-plugins-scaletempo.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-scaletempo.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.properties">
+<ANCHOR id="gst-plugins-good-plugins-scaletempo.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.description">
+<ANCHOR id="gst-plugins-good-plugins-scaletempo.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.details">
+<ANCHOR id="GstScaletempo-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#GstScaletempo-struct">
+<ANCHOR id="gst-plugins-good-plugins-scaletempo.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.property-details">
+<ANCHOR id="GstScaletempo--overlap" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#GstScaletempo--overlap">
+<ANCHOR id="GstScaletempo--rate" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#GstScaletempo--rate">
+<ANCHOR id="GstScaletempo--search" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#GstScaletempo--search">
+<ANCHOR id="GstScaletempo--stride" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#GstScaletempo--stride">
 <ANCHOR id="gst-plugins-good-plugins-shagadelictv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shagadelictv.html">
 <ANCHOR id="gst-plugins-good-plugins-shagadelictv.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shagadelictv.html#gst-plugins-good-plugins-shagadelictv.synopsis">
 <ANCHOR id="GstShagadelicTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shagadelictv.html#GstShagadelicTV">
@@ -1679,6 +1821,7 @@
 <ANCHOR id="GstUDPSrc--close-socket" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--close-socket">
 <ANCHOR id="GstUDPSrc--socket" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--socket">
 <ANCHOR id="GstUDPSrc--used-socket" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--used-socket">
+<ANCHOR id="GstUDPSrc--bind-address" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--bind-address">
 <ANCHOR id="gst-plugins-good-plugins-udpsrc.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#gst-plugins-good-plugins-udpsrc.see-also">
 <ANCHOR id="gst-plugins-good-plugins-udpsink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html">
 <ANCHOR id="gst-plugins-good-plugins-udpsink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.synopsis">
@@ -1717,6 +1860,9 @@
 <ANCHOR id="GstV4l2Src--saturation" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--saturation">
 <ANCHOR id="GstV4l2Src--norm" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--norm">
 <ANCHOR id="GstV4l2Src--io-mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--io-mode">
+<ANCHOR id="GstV4l2Src--extra-controls" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--extra-controls">
+<ANCHOR id="GstV4l2Src--force-aspect-ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--force-aspect-ratio">
+<ANCHOR id="GstV4l2Src--pixel-aspect-ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--pixel-aspect-ratio">
 <ANCHOR id="gst-plugins-good-plugins-v4l2src.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.signal-details">
 <ANCHOR id="GstV4l2Src-prepare-format" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-prepare-format">
 <ANCHOR id="gst-plugins-good-plugins-v4l2sink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html">
@@ -1749,6 +1895,9 @@
 <ANCHOR id="GstV4l2Sink--min-queued-bufs" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--min-queued-bufs">
 <ANCHOR id="GstV4l2Sink--io-mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--io-mode">
 <ANCHOR id="GstV4l2Sink--norm" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--norm">
+<ANCHOR id="GstV4l2Sink--extra-controls" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--extra-controls">
+<ANCHOR id="GstV4l2Sink--force-aspect-ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--force-aspect-ratio">
+<ANCHOR id="GstV4l2Sink--pixel-aspect-ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--pixel-aspect-ratio">
 <ANCHOR id="gst-plugins-good-plugins-v4l2radio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html">
 <ANCHOR id="gst-plugins-good-plugins-v4l2radio.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.synopsis">
 <ANCHOR id="GstV4l2Radio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio">
@@ -1926,6 +2075,7 @@
 <ANCHOR id="GstVP8Enc--twopass-vbr-minsection" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-minsection">
 <ANCHOR id="GstVP8Enc--undershoot" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--undershoot">
 <ANCHOR id="GstVP8Enc--vertical-scaling-mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--vertical-scaling-mode">
+<ANCHOR id="GstVP8Enc--timebase" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--timebase">
 <ANCHOR id="gst-plugins-good-plugins-warptv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html">
 <ANCHOR id="gst-plugins-good-plugins-warptv.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html#gst-plugins-good-plugins-warptv.synopsis">
 <ANCHOR id="GstWarpTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html#GstWarpTV">
@@ -1937,6 +2087,7 @@
 <ANCHOR id="gst-plugins-good-plugins-wavenc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.synopsis">
 <ANCHOR id="GstWavEnc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#GstWavEnc">
 <ANCHOR id="gst-plugins-good-plugins-wavenc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-wavenc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.implemented-interfaces">
 <ANCHOR id="gst-plugins-good-plugins-wavenc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.description">
 <ANCHOR id="gst-plugins-good-plugins-wavenc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.details">
 <ANCHOR id="GstWavEnc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#GstWavEnc-struct">
@@ -2054,6 +2205,8 @@
 <ANCHOR id="plugin-deinterlace" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-deinterlace.html#plugin-deinterlace">
 <ANCHOR id="gst-plugins-good-plugins-plugin-directsound" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-directsound.html">
 <ANCHOR id="plugin-directsound" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-directsound.html#plugin-directsound">
+<ANCHOR id="gst-plugins-good-plugins-plugin-dtmf" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-dtmf.html">
+<ANCHOR id="plugin-dtmf" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-dtmf.html#plugin-dtmf">
 <ANCHOR id="gst-plugins-good-plugins-plugin-dv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-dv.html">
 <ANCHOR id="plugin-dv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-dv.html#plugin-dv">
 <ANCHOR id="gst-plugins-good-plugins-plugin-equalizer" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-equalizer.html">
diff --git a/docs/plugins/inspect/plugin-1394.xml b/docs/plugins/inspect/plugin-1394.xml
index da40af2a8..7d1dcc843 100644
--- a/docs/plugins/inspect/plugin-1394.xml
+++ b/docs/plugins/inspect/plugin-1394.xml
@@ -3,7 +3,7 @@
   <description>Source for video data via IEEE1394 interface</description>
   <filename>../../ext/raw1394/.libs/libgst1394.so</filename>
   <basename>libgst1394.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-aasink.xml b/docs/plugins/inspect/plugin-aasink.xml
index 420cd91be..cf16c514e 100644
--- a/docs/plugins/inspect/plugin-aasink.xml
+++ b/docs/plugins/inspect/plugin-aasink.xml
@@ -3,7 +3,7 @@
   <description>ASCII Art video sink</description>
   <filename>../../ext/aalib/.libs/libgstaasink.so</filename>
   <basename>libgstaasink.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-alaw.xml b/docs/plugins/inspect/plugin-alaw.xml
index a10f431aa..8829efc3d 100644
--- a/docs/plugins/inspect/plugin-alaw.xml
+++ b/docs/plugins/inspect/plugin-alaw.xml
@@ -3,7 +3,7 @@
   <description>ALaw audio conversion routines</description>
   <filename>../../gst/law/.libs/libgstalaw.so</filename>
   <basename>libgstalaw.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-alpha.xml b/docs/plugins/inspect/plugin-alpha.xml
index 7847a21a3..93c33e05c 100644
--- a/docs/plugins/inspect/plugin-alpha.xml
+++ b/docs/plugins/inspect/plugin-alpha.xml
@@ -3,7 +3,7 @@
   <description>adds an alpha channel to video - constant or via chroma-keying</description>
   <filename>../../gst/alpha/.libs/libgstalpha.so</filename>
   <basename>libgstalpha.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-alphacolor.xml b/docs/plugins/inspect/plugin-alphacolor.xml
index f82363bac..d942200e0 100644
--- a/docs/plugins/inspect/plugin-alphacolor.xml
+++ b/docs/plugins/inspect/plugin-alphacolor.xml
@@ -3,7 +3,7 @@
   <description>RGBA from/to AYUV colorspace conversion preserving the alpha channel</description>
   <filename>../../gst/alpha/.libs/libgstalphacolor.so</filename>
   <basename>libgstalphacolor.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-annodex.xml b/docs/plugins/inspect/plugin-annodex.xml
new file mode 100644
index 000000000..5d8448290
--- /dev/null
+++ b/docs/plugins/inspect/plugin-annodex.xml
@@ -0,0 +1,55 @@
+<plugin>
+  <name>annodex</name>
+  <description>annodex stream manipulation (info about annodex: http://www.annodex.net)</description>
+  <filename>../../ext/annodex/.libs/libgstannodex.so</filename>
+  <basename>libgstannodex.so</basename>
+  <version>0.11.91.1</version>
+  <license>LGPL</license>
+  <source>gst-plugins-good</source>
+  <package>GStreamer Good Plug-ins git</package>
+  <origin>Unknown package origin</origin>
+  <elements>
+    <element>
+      <name>cmmldec</name>
+      <longname>CMML stream decoder</longname>
+      <class>Codec/Decoder</class>
+      <description>Decodes CMML streams</description>
+      <author>Alessandro Decina &lt;alessandro@nnva.org&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>text/x-cmml, encoded=(boolean)true</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>text/x-cmml, encoded=(boolean)false</details>
+        </caps>
+      </pads>
+    </element>
+    <element>
+      <name>cmmlenc</name>
+      <longname>CMML streams encoder</longname>
+      <class>Codec/Encoder</class>
+      <description>Encodes CMML streams</description>
+      <author>Alessandro Decina &lt;alessandro@nnva.org&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>text/x-cmml, encoded=(boolean)false</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>text/x-cmml, encoded=(boolean)true</details>
+        </caps>
+      </pads>
+    </element>
+  </elements>
+</plugin>
\ No newline at end of file
diff --git a/docs/plugins/inspect/plugin-apetag.xml b/docs/plugins/inspect/plugin-apetag.xml
index 82a159988..73125f5dd 100644
--- a/docs/plugins/inspect/plugin-apetag.xml
+++ b/docs/plugins/inspect/plugin-apetag.xml
@@ -3,7 +3,7 @@
   <description>APEv1/2 tag reader</description>
   <filename>../../gst/apetag/.libs/libgstapetag.so</filename>
   <basename>libgstapetag.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audiofx.xml b/docs/plugins/inspect/plugin-audiofx.xml
index 66889d618..5559b1913 100644
--- a/docs/plugins/inspect/plugin-audiofx.xml
+++ b/docs/plugins/inspect/plugin-audiofx.xml
@@ -3,7 +3,7 @@
   <description>Audio effects plugin</description>
   <filename>../../gst/audiofx/.libs/libgstaudiofx.so</filename>
   <basename>libgstaudiofx.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -209,13 +209,13 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)1, layout=(string)interleaved; audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003</details>
+          <details>audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ], layout=(string)interleaved</details>
         </caps>
         <caps>
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>audio/x-raw, format=(string){ S32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)2, layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003</details>
+          <details>audio/x-raw, format=(string){ F32LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)2, layout=(string)interleaved</details>
         </caps>
       </pads>
     </element>
@@ -261,5 +261,26 @@
         </caps>
       </pads>
     </element>
+    <element>
+      <name>scaletempo</name>
+      <longname>Scaletempo</longname>
+      <class>Filter/Effect/Rate</class>
+      <description>Sync audio tempo with playback rate</description>
+      <author>Rov Juvano &lt;rovjuvano@users.sourceforge.net&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>audio/x-raw, format=(string)F32LE, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]; audio/x-raw, format=(string)S16LE, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>audio/x-raw, format=(string)F32LE, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]; audio/x-raw, format=(string)S16LE, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</details>
+        </caps>
+      </pads>
+    </element>
   </elements>
 </plugin>
\ No newline at end of file
diff --git a/docs/plugins/inspect/plugin-audioparsers.xml b/docs/plugins/inspect/plugin-audioparsers.xml
index 0b62d6e6f..58141b947 100644
--- a/docs/plugins/inspect/plugin-audioparsers.xml
+++ b/docs/plugins/inspect/plugin-audioparsers.xml
@@ -3,7 +3,7 @@
   <description>Parsers for various audio formats</description>
   <filename>../../gst/audioparsers/.libs/libgstaudioparsers.so</filename>
   <basename>libgstaudioparsers.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -41,7 +41,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>audio/x-ac3; audio/x-eac3; audio/ac3</details>
+          <details>audio/x-ac3; audio/x-eac3; audio/ac3; audio/x-private1-ac3</details>
         </caps>
         <caps>
           <name>src</name>
@@ -83,7 +83,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>audio/x-dts</details>
+          <details>audio/x-dts; audio/x-private1-dts</details>
         </caps>
         <caps>
           <name>src</name>
@@ -135,6 +135,27 @@
         </caps>
       </pads>
     </element>
+    <element>
+      <name>sbcparse</name>
+      <longname>SBC audio parser</longname>
+      <class>Codec/Parser/Audio</class>
+      <description>Parses an SBC bluetooth audio stream</description>
+      <author>Tim-Philipp Müller &lt;tim.muller@collabora.co.uk&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>audio/x-sbc</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>audio/x-sbc, parsed=(boolean)true, channels=(int)[ 1, 2 ], rate=(int){ 16000, 32000, 44100, 48000 }</details>
+        </caps>
+      </pads>
+    </element>
     <element>
       <name>wavpackparse</name>
       <longname>Wavpack audio stream parser</longname>
diff --git a/docs/plugins/inspect/plugin-auparse.xml b/docs/plugins/inspect/plugin-auparse.xml
index 030c57d68..1f42b6de2 100644
--- a/docs/plugins/inspect/plugin-auparse.xml
+++ b/docs/plugins/inspect/plugin-auparse.xml
@@ -3,7 +3,7 @@
   <description>parses au streams</description>
   <filename>../../gst/auparse/.libs/libgstauparse.so</filename>
   <basename>libgstauparse.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-autodetect.xml b/docs/plugins/inspect/plugin-autodetect.xml
index 5bf06e1dd..82c487146 100644
--- a/docs/plugins/inspect/plugin-autodetect.xml
+++ b/docs/plugins/inspect/plugin-autodetect.xml
@@ -3,7 +3,7 @@
   <description>Plugin contains auto-detection plugins for video/audio in- and outputs</description>
   <filename>../../gst/autodetect/.libs/libgstautodetect.so</filename>
   <basename>libgstautodetect.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-avi.xml b/docs/plugins/inspect/plugin-avi.xml
index c52a8972f..974dcc9bc 100644
--- a/docs/plugins/inspect/plugin-avi.xml
+++ b/docs/plugins/inspect/plugin-avi.xml
@@ -3,7 +3,7 @@
   <description>AVI stream handling</description>
   <filename>../../gst/avi/.libs/libgstavi.so</filename>
   <basename>libgstavi.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -38,7 +38,7 @@
           <name>video_%u</name>
           <direction>source</direction>
           <presence>sometimes</presence>
-          <details>video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-asus, asusversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-asus, asusversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-cirrus-logic-accupak, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-camstudio, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-compressed-yuv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string){ RGB8P, BGR, BGRx }, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)4, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-truemotion, trueversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)false, dvversion=(int)25, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)false, dvversion=(int)50, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)5, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-flash-video, flvversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp6-flash, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)itu, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)lucent, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)itu, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-huffyuv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-intel-h263, variant=(string)intel, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)I420, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)4, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)5, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)lead, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)lead, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)microsoft, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; image/jpeg, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)42, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)43, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, systemstream=(boolean)false, mpegversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, systemstream=(boolean)false, mpegversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)41, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-mszh, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; image/png, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-rle, layout=(string)microsoft, depth=(int)[ 1, 64 ], framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/sp5x, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-truemotion, trueversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-camtasia, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ultimotion, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)UYVY, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ati-vcr, vcrversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ati-vcr, vcrversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)vdolive, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)vivo, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vmnc, version=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)videosoft, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-wmv, wmvversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-wmv, wmvversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-wmv, wmvversion=(int)3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-xan, wcversion=(int)4, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)YUY2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)YVU9, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-zlib, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-cinepak, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)itu, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msvideocodec, msvideoversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)xirlink, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dirac, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ffv, ffvversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-kmvc, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp5, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp6, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp6-flash, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp7, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp8, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-mimic, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-apple-video, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-theora, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-fraps, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-aasc, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)YV12, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-loco, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-zmbv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)v210, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)r210, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)true; video/x-avi-unknown</details>
+          <details>video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-asus, asusversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-asus, asusversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-cirrus-logic-accupak, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-camstudio, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-compressed-yuv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string){ RGB8P, BGR, BGRx }, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)4, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-truemotion, trueversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)false, dvversion=(int)25, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)false, dvversion=(int)50, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)5, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-flash-video, flvversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp6-flash, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)itu, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)lucent, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)itu, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-huffyuv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-intel-h263, variant=(string)intel, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)I420, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)4, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)5, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)lead, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)lead, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)microsoft, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; image/jpeg, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)42, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)43, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, systemstream=(boolean)false, mpegversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, systemstream=(boolean)false, mpegversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)41, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-mszh, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; image/png, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-rle, layout=(string)microsoft, depth=(int)[ 1, 64 ], framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/sp5x, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-truemotion, trueversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-camtasia, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ultimotion, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)UYVY, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ati-vcr, vcrversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ati-vcr, vcrversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)vdolive, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)vivo, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vmnc, version=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)videosoft, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-wmv, wmvversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-wmv, wmvversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-wmv, wmvversion=(int)3, format=(string)WMV3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-xan, wcversion=(int)4, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)YUY2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)YVU9, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-zlib, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-cinepak, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)itu, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msvideocodec, msvideoversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)xirlink, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dirac, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ffv, ffvversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-kmvc, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp5, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp6, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp6-flash, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp7, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp8, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-mimic, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-apple-video, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-theora, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-fraps, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-aasc, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)YV12, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-loco, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-zmbv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)v210, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)r210, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)true; video/x-avi-unknown</details>
         </caps>
       </pads>
     </element>
@@ -59,7 +59,7 @@
           <name>video_%u</name>
           <direction>sink</direction>
           <presence>request</presence>
-          <details>video/x-raw, format=(string){ YUY2, I420 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; image/jpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-divx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], divxversion=(int)[ 3, 5 ]; video/x-msmpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], msmpegversion=(int)[ 41, 43 ]; video/mpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false; video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dv, width=(int)720, height=(int){ 576, 480 }, framerate=(fraction)[ 0/1, 2147483647/1 ], systemstream=(boolean)false; video/x-huffyuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-wmv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], wmvversion=(int)[ 1, 3 ]; image/x-jpc, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-vp8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ YUY2, I420, BGR, BGRx, BGRA, GRAY8 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; image/jpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-divx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], divxversion=(int)[ 3, 5 ]; video/x-msmpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], msmpegversion=(int)[ 41, 43 ]; video/mpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false; video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dv, width=(int)720, height=(int){ 576, 480 }, framerate=(fraction)[ 0/1, 2147483647/1 ], systemstream=(boolean)false; video/x-huffyuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-wmv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], wmvversion=(int)[ 1, 3 ]; image/x-jpc, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-vp8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
         <caps>
           <name>src</name>
diff --git a/docs/plugins/inspect/plugin-cacasink.xml b/docs/plugins/inspect/plugin-cacasink.xml
index 8ded273c8..1ae93e072 100644
--- a/docs/plugins/inspect/plugin-cacasink.xml
+++ b/docs/plugins/inspect/plugin-cacasink.xml
@@ -3,7 +3,7 @@
   <description>Colored ASCII Art video sink</description>
   <filename>../../ext/libcaca/.libs/libgstcacasink.so</filename>
   <basename>libgstcacasink.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -20,7 +20,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw, format=(string){ RGB, RGBx, RGB16, RGB15 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ RGB, BGR, RGBx, xRGB, BGRx, xBGR, RGB16, RGB15 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-cairo.xml b/docs/plugins/inspect/plugin-cairo.xml
index 59b46962e..d1bdc2dd8 100644
--- a/docs/plugins/inspect/plugin-cairo.xml
+++ b/docs/plugins/inspect/plugin-cairo.xml
@@ -3,7 +3,7 @@
   <description>Cairo-based elements</description>
   <filename>../../ext/cairo/.libs/libgstcairo.so</filename>
   <basename>libgstcairo.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-cutter.xml b/docs/plugins/inspect/plugin-cutter.xml
index c0cfaea10..910ba86d8 100644
--- a/docs/plugins/inspect/plugin-cutter.xml
+++ b/docs/plugins/inspect/plugin-cutter.xml
@@ -3,7 +3,7 @@
   <description>Audio Cutter to split audio into non-silent bits</description>
   <filename>../../gst/cutter/.libs/libgstcutter.so</filename>
   <basename>libgstcutter.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-debug.xml b/docs/plugins/inspect/plugin-debug.xml
index 15561a5f1..4133edbd6 100644
--- a/docs/plugins/inspect/plugin-debug.xml
+++ b/docs/plugins/inspect/plugin-debug.xml
@@ -3,7 +3,7 @@
   <description>elements for testing and debugging</description>
   <filename>../../gst/debugutils/.libs/libgstdebug.so</filename>
   <basename>libgstdebug.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-deinterlace.xml b/docs/plugins/inspect/plugin-deinterlace.xml
index 97aa39d87..43e50e1f9 100644
--- a/docs/plugins/inspect/plugin-deinterlace.xml
+++ b/docs/plugins/inspect/plugin-deinterlace.xml
@@ -3,7 +3,7 @@
   <description>Deinterlacer</description>
   <filename>../../gst/deinterlace/.libs/libgstdeinterlace.so</filename>
   <basename>libgstdeinterlace.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dtmf.xml b/docs/plugins/inspect/plugin-dtmf.xml
new file mode 100644
index 000000000..10def88d1
--- /dev/null
+++ b/docs/plugins/inspect/plugin-dtmf.xml
@@ -0,0 +1,64 @@
+<plugin>
+  <name>dtmf</name>
+  <description>DTMF plugins</description>
+  <filename>../../gst/dtmf/.libs/libgstdtmf.so</filename>
+  <basename>libgstdtmf.so</basename>
+  <version>1.1.2</version>
+  <license>LGPL</license>
+  <source>gst-plugins-good</source>
+  <package>GStreamer Good Plug-ins source release</package>
+  <origin>Unknown package origin</origin>
+  <elements>
+    <element>
+      <name>dtmfsrc</name>
+      <longname>DTMF tone generator</longname>
+      <class>Source/Audio</class>
+      <description>Generates DTMF tones</description>
+      <author>Youness Alaoui &lt;youness.alaoui@collabora.co.uk&gt;</author>
+      <pads>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>audio/x-raw, format=(string)S16LE, rate=(int)[ 1, 2147483647 ], channels=(int)1</details>
+        </caps>
+      </pads>
+    </element>
+    <element>
+      <name>rtpdtmfdepay</name>
+      <longname>RTP DTMF packet depayloader</longname>
+      <class>Codec/Depayloader/Network</class>
+      <description>Generates DTMF Sound from telephone-event RTP packets</description>
+      <author>Youness Alaoui &lt;youness.alaoui@collabora.co.uk&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 0, 2147483647 ], encoding-name=(string)TELEPHONE-EVENT</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>audio/x-raw, format=(string)S16LE, rate=(int)[ 1, 2147483647 ], channels=(int)1</details>
+        </caps>
+      </pads>
+    </element>
+    <element>
+      <name>rtpdtmfsrc</name>
+      <longname>RTP DTMF packet generator</longname>
+      <class>Source/Network</class>
+      <description>Generates RTP DTMF packets</description>
+      <author>Zeeshan Ali &lt;zeeshan.ali@nokia.com&gt;</author>
+      <pads>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 0, 2147483647 ], encoding-name=(string)TELEPHONE-EVENT</details>
+        </caps>
+      </pads>
+    </element>
+  </elements>
+</plugin>
\ No newline at end of file
diff --git a/docs/plugins/inspect/plugin-dv.xml b/docs/plugins/inspect/plugin-dv.xml
index ac9a4fe07..0a50664df 100644
--- a/docs/plugins/inspect/plugin-dv.xml
+++ b/docs/plugins/inspect/plugin-dv.xml
@@ -3,7 +3,7 @@
   <description>DV demuxer and decoder based on libdv (libdv.sf.net)</description>
   <filename>../../ext/dv/.libs/libgstdv.so</filename>
   <basename>libgstdv.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-effectv.xml b/docs/plugins/inspect/plugin-effectv.xml
index 0e61a0a0d..1a87448f9 100644
--- a/docs/plugins/inspect/plugin-effectv.xml
+++ b/docs/plugins/inspect/plugin-effectv.xml
@@ -3,7 +3,7 @@
   <description>effect plugins from the effectv project</description>
   <filename>../../gst/effectv/.libs/libgsteffectv.so</filename>
   <basename>libgsteffectv.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-equalizer.xml b/docs/plugins/inspect/plugin-equalizer.xml
index 05aa482bc..5b614acb2 100644
--- a/docs/plugins/inspect/plugin-equalizer.xml
+++ b/docs/plugins/inspect/plugin-equalizer.xml
@@ -3,7 +3,7 @@
   <description>GStreamer audio equalizers</description>
   <filename>../../gst/equalizer/.libs/libgstequalizer.so</filename>
   <basename>libgstequalizer.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-flac.xml b/docs/plugins/inspect/plugin-flac.xml
index 49f709a85..781296ece 100644
--- a/docs/plugins/inspect/plugin-flac.xml
+++ b/docs/plugins/inspect/plugin-flac.xml
@@ -3,7 +3,7 @@
   <description>The FLAC Lossless compressor Codec</description>
   <filename>../../ext/flac/.libs/libgstflac.so</filename>
   <basename>libgstflac.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-flv.xml b/docs/plugins/inspect/plugin-flv.xml
index a991403c6..d9dd2dc7d 100644
--- a/docs/plugins/inspect/plugin-flv.xml
+++ b/docs/plugins/inspect/plugin-flv.xml
@@ -3,7 +3,7 @@
   <description>FLV muxing and demuxing plugin</description>
   <filename>../../gst/flv/.libs/libgstflv.so</filename>
   <basename>libgstflv.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-flxdec.xml b/docs/plugins/inspect/plugin-flxdec.xml
index f32691c88..4a257ed56 100644
--- a/docs/plugins/inspect/plugin-flxdec.xml
+++ b/docs/plugins/inspect/plugin-flxdec.xml
@@ -3,7 +3,7 @@
   <description>FLC/FLI/FLX video decoder</description>
   <filename>../../gst/flx/.libs/libgstflxdec.so</filename>
   <basename>libgstflxdec.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-gdkpixbuf.xml b/docs/plugins/inspect/plugin-gdkpixbuf.xml
index eca8f90cd..50943716f 100644
--- a/docs/plugins/inspect/plugin-gdkpixbuf.xml
+++ b/docs/plugins/inspect/plugin-gdkpixbuf.xml
@@ -3,7 +3,7 @@
   <description>GdkPixbuf-based image decoder, overlay and sink</description>
   <filename>../../ext/gdk_pixbuf/.libs/libgstgdkpixbuf.so</filename>
   <basename>libgstgdkpixbuf.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-goom.xml b/docs/plugins/inspect/plugin-goom.xml
index d80573c99..e35c54b1b 100644
--- a/docs/plugins/inspect/plugin-goom.xml
+++ b/docs/plugins/inspect/plugin-goom.xml
@@ -3,7 +3,7 @@
   <description>GOOM visualization filter</description>
   <filename>../../gst/goom/.libs/libgstgoom.so</filename>
   <basename>libgstgoom.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-goom2k1.xml b/docs/plugins/inspect/plugin-goom2k1.xml
index 7be1bc5f2..3719d97a3 100644
--- a/docs/plugins/inspect/plugin-goom2k1.xml
+++ b/docs/plugins/inspect/plugin-goom2k1.xml
@@ -3,7 +3,7 @@
   <description>GOOM 2k1 visualization filter</description>
   <filename>../../gst/goom2k1/.libs/libgstgoom2k1.so</filename>
   <basename>libgstgoom2k1.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-icydemux.xml b/docs/plugins/inspect/plugin-icydemux.xml
index 660d481ec..64218e33c 100644
--- a/docs/plugins/inspect/plugin-icydemux.xml
+++ b/docs/plugins/inspect/plugin-icydemux.xml
@@ -3,7 +3,7 @@
   <description>Demux ICY tags from a stream</description>
   <filename>../../gst/icydemux/.libs/libgsticydemux.so</filename>
   <basename>libgsticydemux.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-id3demux.xml b/docs/plugins/inspect/plugin-id3demux.xml
index 3fa1a55cc..171b04e51 100644
--- a/docs/plugins/inspect/plugin-id3demux.xml
+++ b/docs/plugins/inspect/plugin-id3demux.xml
@@ -3,7 +3,7 @@
   <description>Demux ID3v1 and ID3v2 tags from a file</description>
   <filename>../../gst/id3demux/.libs/libgstid3demux.so</filename>
   <basename>libgstid3demux.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-imagefreeze.xml b/docs/plugins/inspect/plugin-imagefreeze.xml
index c294e0650..8e14b1cd5 100644
--- a/docs/plugins/inspect/plugin-imagefreeze.xml
+++ b/docs/plugins/inspect/plugin-imagefreeze.xml
@@ -3,7 +3,7 @@
   <description>Still frame stream generator</description>
   <filename>../../gst/imagefreeze/.libs/libgstimagefreeze.so</filename>
   <basename>libgstimagefreeze.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-interleave.xml b/docs/plugins/inspect/plugin-interleave.xml
index a8ac8525e..00620c749 100644
--- a/docs/plugins/inspect/plugin-interleave.xml
+++ b/docs/plugins/inspect/plugin-interleave.xml
@@ -3,7 +3,7 @@
   <description>Audio interleaver/deinterleaver</description>
   <filename>../../gst/interleave/.libs/libgstinterleave.so</filename>
   <basename>libgstinterleave.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-isomp4.xml b/docs/plugins/inspect/plugin-isomp4.xml
index df87e181a..5baaf107d 100644
--- a/docs/plugins/inspect/plugin-isomp4.xml
+++ b/docs/plugins/inspect/plugin-isomp4.xml
@@ -3,7 +3,7 @@
   <description>ISO base media file format support (mp4, 3gpp, qt, mj2)</description>
   <filename>../../gst/isomp4/.libs/libgstisomp4.so</filename>
   <basename>libgstisomp4.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-jack.xml b/docs/plugins/inspect/plugin-jack.xml
index 512470564..526c7a0f0 100644
--- a/docs/plugins/inspect/plugin-jack.xml
+++ b/docs/plugins/inspect/plugin-jack.xml
@@ -3,7 +3,7 @@
   <description>JACK audio elements</description>
   <filename>../../ext/jack/.libs/libgstjack.so</filename>
   <basename>libgstjack.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-jpeg.xml b/docs/plugins/inspect/plugin-jpeg.xml
index ebd8e763b..94374ace1 100644
--- a/docs/plugins/inspect/plugin-jpeg.xml
+++ b/docs/plugins/inspect/plugin-jpeg.xml
@@ -3,7 +3,7 @@
   <description>JPeg plugin library</description>
   <filename>../../ext/jpeg/.libs/libgstjpeg.so</filename>
   <basename>libgstjpeg.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-level.xml b/docs/plugins/inspect/plugin-level.xml
index 2f6da981f..3541af03c 100644
--- a/docs/plugins/inspect/plugin-level.xml
+++ b/docs/plugins/inspect/plugin-level.xml
@@ -3,7 +3,7 @@
   <description>Audio level plugin</description>
   <filename>../../gst/level/.libs/libgstlevel.so</filename>
   <basename>libgstlevel.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-matroska.xml b/docs/plugins/inspect/plugin-matroska.xml
index 338461d84..0a551d3bf 100644
--- a/docs/plugins/inspect/plugin-matroska.xml
+++ b/docs/plugins/inspect/plugin-matroska.xml
@@ -3,7 +3,7 @@
   <description>Matroska and WebM stream handling</description>
   <filename>../../gst/matroska/.libs/libgstmatroska.so</filename>
   <basename>libgstmatroska.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -119,7 +119,7 @@
           <name>video_%u</name>
           <direction>sink</direction>
           <presence>request</presence>
-          <details>video/x-vp8, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-vp8, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-vp9, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
         <caps>
           <name>src</name>
diff --git a/docs/plugins/inspect/plugin-monoscope.xml b/docs/plugins/inspect/plugin-monoscope.xml
index ac10183b8..49178c1fe 100644
--- a/docs/plugins/inspect/plugin-monoscope.xml
+++ b/docs/plugins/inspect/plugin-monoscope.xml
@@ -3,7 +3,7 @@
   <description>Monoscope visualization</description>
   <filename>../../gst/monoscope/.libs/libgstmonoscope.so</filename>
   <basename>libgstmonoscope.so</basename>
-  <version>0.11.94.1</version>
+  <version>1.1.1.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins git</package>
diff --git a/docs/plugins/inspect/plugin-mulaw.xml b/docs/plugins/inspect/plugin-mulaw.xml
index ff27c8ca3..049789e76 100644
--- a/docs/plugins/inspect/plugin-mulaw.xml
+++ b/docs/plugins/inspect/plugin-mulaw.xml
@@ -3,7 +3,7 @@
   <description>MuLaw audio conversion routines</description>
   <filename>../../gst/law/.libs/libgstmulaw.so</filename>
   <basename>libgstmulaw.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-multifile.xml b/docs/plugins/inspect/plugin-multifile.xml
index 347bb3978..7660cc109 100644
--- a/docs/plugins/inspect/plugin-multifile.xml
+++ b/docs/plugins/inspect/plugin-multifile.xml
@@ -3,7 +3,7 @@
   <description>Reads/Writes buffers from/to sequentially named files</description>
   <filename>../../gst/multifile/.libs/libgstmultifile.so</filename>
   <basename>libgstmultifile.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-multipart.xml b/docs/plugins/inspect/plugin-multipart.xml
index 431485619..8e3141cca 100644
--- a/docs/plugins/inspect/plugin-multipart.xml
+++ b/docs/plugins/inspect/plugin-multipart.xml
@@ -3,7 +3,7 @@
   <description>multipart stream manipulation</description>
   <filename>../../gst/multipart/.libs/libgstmultipart.so</filename>
   <basename>libgstmultipart.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-navigationtest.xml b/docs/plugins/inspect/plugin-navigationtest.xml
index 551081a67..1f2e99afd 100644
--- a/docs/plugins/inspect/plugin-navigationtest.xml
+++ b/docs/plugins/inspect/plugin-navigationtest.xml
@@ -3,7 +3,7 @@
   <description>Template for a video filter</description>
   <filename>../../gst/debugutils/.libs/libgstnavigationtest.so</filename>
   <basename>libgstnavigationtest.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-oss4.xml b/docs/plugins/inspect/plugin-oss4.xml
index 2aecbd3cd..6c6598daf 100644
--- a/docs/plugins/inspect/plugin-oss4.xml
+++ b/docs/plugins/inspect/plugin-oss4.xml
@@ -3,7 +3,7 @@
   <description>Open Sound System (OSS) version 4 support for GStreamer</description>
   <filename>../../sys/oss4/.libs/libgstoss4audio.so</filename>
   <basename>libgstoss4audio.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ossaudio.xml b/docs/plugins/inspect/plugin-ossaudio.xml
index 5502a189d..42061e199 100644
--- a/docs/plugins/inspect/plugin-ossaudio.xml
+++ b/docs/plugins/inspect/plugin-ossaudio.xml
@@ -3,7 +3,7 @@
   <description>OSS (Open Sound System) support for GStreamer</description>
   <filename>../../sys/oss/.libs/libgstossaudio.so</filename>
   <basename>libgstossaudio.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-png.xml b/docs/plugins/inspect/plugin-png.xml
index 5f3981fc0..9d81954b9 100644
--- a/docs/plugins/inspect/plugin-png.xml
+++ b/docs/plugins/inspect/plugin-png.xml
@@ -3,7 +3,7 @@
   <description>PNG plugin library</description>
   <filename>../../ext/libpng/.libs/libgstpng.so</filename>
   <basename>libgstpng.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-pulseaudio.xml b/docs/plugins/inspect/plugin-pulseaudio.xml
index 0bcfc0fe0..cd6703126 100644
--- a/docs/plugins/inspect/plugin-pulseaudio.xml
+++ b/docs/plugins/inspect/plugin-pulseaudio.xml
@@ -3,7 +3,7 @@
   <description>PulseAudio plugin library</description>
   <filename>../../ext/pulse/.libs/libgstpulse.so</filename>
   <basename>libgstpulse.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-replaygain.xml b/docs/plugins/inspect/plugin-replaygain.xml
index 21f393c62..f7210baa0 100644
--- a/docs/plugins/inspect/plugin-replaygain.xml
+++ b/docs/plugins/inspect/plugin-replaygain.xml
@@ -3,7 +3,7 @@
   <description>ReplayGain volume normalization</description>
   <filename>../../gst/replaygain/.libs/libgstreplaygain.so</filename>
   <basename>libgstreplaygain.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-rtp.xml b/docs/plugins/inspect/plugin-rtp.xml
index 30eadfdef..0c80d722e 100644
--- a/docs/plugins/inspect/plugin-rtp.xml
+++ b/docs/plugins/inspect/plugin-rtp.xml
@@ -3,7 +3,7 @@
   <description>Real-time protocol plugins</description>
   <filename>../../gst/rtp/.libs/libgstrtp.so</filename>
   <basename>libgstrtp.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -41,7 +41,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)L16; application/x-rtp, media=(string)audio, payload=(int){ 10, 11 }, clock-rate=(int)[ 1, 2147483647 ]</details>
+          <details>application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)L16; application/x-rtp, media=(string)audio, payload=(int){ 10, 11 }, clock-rate=(int)[ 1, 2147483647 ]</details>
         </caps>
         <caps>
           <name>src</name>
@@ -83,7 +83,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int){ 32000, 44100, 48000 }, encoding-name=(string)AC3</details>
+          <details>application/x-rtp, media=(string)audio, clock-rate=(int){ 32000, 44100, 48000 }, encoding-name=(string)AC3</details>
         </caps>
         <caps>
           <name>src</name>
@@ -125,7 +125,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)AMR, encoding-params=(string)1, octet-align=(string)1; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)16000, encoding-name=(string)AMR-WB, encoding-params=(string)1, octet-align=(string)1</details>
+          <details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)AMR, encoding-params=(string)1, octet-align=(string)1; application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)AMR-WB, encoding-params=(string)1, octet-align=(string)1</details>
         </caps>
         <caps>
           <name>src</name>
@@ -167,7 +167,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)BV16; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)16000, encoding-name=(string)BV32</details>
+          <details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)BV16; application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)BV32</details>
         </caps>
         <caps>
           <name>src</name>
@@ -209,7 +209,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 32000, 48000 ], encoding-name=(string)CELT</details>
+          <details>application/x-rtp, media=(string)audio, clock-rate=(int)[ 32000, 48000 ], encoding-name=(string)CELT</details>
         </caps>
         <caps>
           <name>src</name>
@@ -251,7 +251,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string){ video, audio }, payload=(int)[ 96, 127 ], encoding-name=(string)DV, clock-rate=(int)90000, encode=(string){ SD-VCR/525-60, SD-VCR/625-50, HD-VCR/1125-60, HD-VCR/1250-50, SDL-VCR/525-60, SDL-VCR/625-50, 306M/525-60, 306M/625-50, 314M-25/525-60, 314M-25/625-50, 314M-50/525-60, 314M-50/625-50 }</details>
+          <details>application/x-rtp, media=(string){ video, audio }, encoding-name=(string)DV, clock-rate=(int)90000, encode=(string){ SD-VCR/525-60, SD-VCR/625-50, HD-VCR/1125-60, HD-VCR/1250-50, SDL-VCR/525-60, SDL-VCR/625-50, 306M/525-60, 306M/625-50, 314M-25/525-60, 314M-25/625-50, 314M-50/525-60, 314M-50/625-50 }</details>
         </caps>
         <caps>
           <name>src</name>
@@ -293,7 +293,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)G722; application/x-rtp, media=(string)audio, payload=(int)9, clock-rate=(int)[ 1, 2147483647 ]</details>
+          <details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)G722; application/x-rtp, media=(string)audio, payload=(int)9, clock-rate=(int)[ 1, 2147483647 ]</details>
         </caps>
         <caps>
           <name>src</name>
@@ -335,7 +335,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)G723; application/x-rtp, media=(string)audio, payload=(int)4, clock-rate=(int)8000</details>
+          <details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)G723; application/x-rtp, media=(string)audio, payload=(int)4, clock-rate=(int)8000</details>
         </caps>
         <caps>
           <name>src</name>
@@ -377,7 +377,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], encoding-name=(string){ G726, G726-16, G726-24, G726-32, G726-40, AAL2-G726-16, AAL2-G726-24, AAL2-G726-32, AAL2-G726-40 }, clock-rate=(int)8000</details>
+          <details>application/x-rtp, media=(string)audio, encoding-name=(string){ G726, G726-16, G726-24, G726-32, G726-40, AAL2-G726-16, AAL2-G726-24, AAL2-G726-32, AAL2-G726-40 }, clock-rate=(int)8000</details>
         </caps>
         <caps>
           <name>src</name>
@@ -419,7 +419,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)G729; application/x-rtp, media=(string)audio, payload=(int)18, clock-rate=(int)8000</details>
+          <details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)G729; application/x-rtp, media=(string)audio, payload=(int)18, clock-rate=(int)8000</details>
         </caps>
         <caps>
           <name>src</name>
@@ -461,7 +461,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)GSM; application/x-rtp, media=(string)audio, payload=(int)3, clock-rate=(int)8000</details>
+          <details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)GSM; application/x-rtp, media=(string)audio, payload=(int)3, clock-rate=(int)8000</details>
         </caps>
         <caps>
           <name>src</name>
@@ -503,7 +503,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)application, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)X-GST</details>
+          <details>application/x-rtp, media=(string)application, clock-rate=(int)90000, encoding-name=(string)X-GST</details>
         </caps>
         <caps>
           <name>src</name>
@@ -545,7 +545,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)video, payload=(int)34, clock-rate=(int)90000, encoding-name=(string)H263; application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)H263</details>
+          <details>application/x-rtp, media=(string)video, payload=(int)34, clock-rate=(int)90000; application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H263</details>
         </caps>
         <caps>
           <name>src</name>
@@ -587,7 +587,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)H263-1998; application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)H263-2000</details>
+          <details>application/x-rtp, media=(string)video, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)H263-1998; application/x-rtp, media=(string)video, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)H263-2000</details>
         </caps>
         <caps>
           <name>src</name>
@@ -629,7 +629,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)H264</details>
+          <details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264</details>
         </caps>
         <caps>
           <name>src</name>
@@ -671,7 +671,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)ILBC, mode=(string){ 20, 30 }</details>
+          <details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)ILBC, mode=(string){ 20, 30 }</details>
         </caps>
         <caps>
           <name>src</name>
@@ -713,7 +713,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)JPEG2000</details>
+          <details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG2000</details>
         </caps>
         <caps>
           <name>src</name>
@@ -755,7 +755,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)JPEG; application/x-rtp, media=(string)video, payload=(int)26, clock-rate=(int)90000</details>
+          <details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG; application/x-rtp, media=(string)video, payload=(int)26, clock-rate=(int)90000</details>
         </caps>
         <caps>
           <name>src</name>
@@ -782,7 +782,7 @@
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)video, payload=(int)26, clock-rate=(int)90000, encoding-name=(string)JPEG</details>
+          <details>application/x-rtp, media=(string)video, payload=(int)26, clock-rate=(int)90000, encoding-name=(string)JPEG, width=(int)[ 1, 65536 ], height=(int)[ 1, 65536 ]</details>
         </caps>
       </pads>
     </element>
@@ -797,7 +797,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)other, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP1S; application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP1S</details>
+          <details>application/x-rtp, media=(string)other, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP1S; application/x-rtp, media=(string)video, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP1S</details>
         </caps>
         <caps>
           <name>src</name>
@@ -818,7 +818,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string){ MP2T, MP2T-ES }; application/x-rtp, media=(string)video, payload=(int)33, clock-rate=(int)[ 1, 2147483647 ]</details>
+          <details>application/x-rtp, media=(string)video, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string){ MP2T, MP2T-ES }; application/x-rtp, media=(string)video, payload=(int)33, clock-rate=(int)[ 1, 2147483647 ]</details>
         </caps>
         <caps>
           <name>src</name>
@@ -860,7 +860,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4A-LATM</details>
+          <details>application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4A-LATM</details>
         </caps>
         <caps>
           <name>src</name>
@@ -902,7 +902,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string){ video, audio, application }, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MPEG4-GENERIC, mode=(string){ generic, CELP-cbr, CELP-vbr, AAC-lbr, AAC-hbr }</details>
+          <details>application/x-rtp, media=(string){ video, audio, application }, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MPEG4-GENERIC, mode=(string){ generic, CELP-cbr, CELP-vbr, AAC-lbr, AAC-hbr }</details>
         </caps>
         <caps>
           <name>src</name>
@@ -944,7 +944,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4V-ES</details>
+          <details>application/x-rtp, media=(string)video, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4V-ES</details>
         </caps>
         <caps>
           <name>src</name>
@@ -986,7 +986,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)MPA; application/x-rtp, media=(string)audio, payload=(int)14, clock-rate=(int)90000</details>
+          <details>application/x-rtp, media=(string)audio, clock-rate=(int)90000, encoding-name=(string)MPA; application/x-rtp, media=(string)audio, payload=(int)14, clock-rate=(int)90000</details>
         </caps>
         <caps>
           <name>src</name>
@@ -1028,7 +1028,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)MPA-ROBUST; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string){ X-MP3-DRAFT-00, X-MP3-DRAFT-01, X-MP3-DRAFT-02, X-MP3-DRAFT-03, X-MP3-DRAFT-04, X-MP3-DRAFT-05, X-MP3-DRAFT-06 }</details>
+          <details>application/x-rtp, media=(string)audio, clock-rate=(int)90000, encoding-name=(string)MPA-ROBUST; application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string){ X-MP3-DRAFT-00, X-MP3-DRAFT-01, X-MP3-DRAFT-02, X-MP3-DRAFT-03, X-MP3-DRAFT-04, X-MP3-DRAFT-05, X-MP3-DRAFT-06 }</details>
         </caps>
         <caps>
           <name>src</name>
@@ -1049,7 +1049,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)MPV; application/x-rtp, media=(string)video, payload=(int)32, clock-rate=(int)90000</details>
+          <details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MPV; application/x-rtp, media=(string)video, payload=(int)32, clock-rate=(int)90000</details>
         </caps>
         <caps>
           <name>src</name>
@@ -1091,7 +1091,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)8, clock-rate=(int)8000, encoding-name=(string)PCMA; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)PCMA</details>
+          <details>application/x-rtp, media=(string)audio, payload=(int)8, clock-rate=(int)8000; application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)PCMA</details>
         </caps>
         <caps>
           <name>src</name>
@@ -1133,7 +1133,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)0, encoding-name=(string)PCMU, clock-rate=(int)8000; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], encoding-name=(string)PCMU, clock-rate=(int)[ 1, 2147483647 ]</details>
+          <details>application/x-rtp, media=(string)audio, payload=(int)0, clock-rate=(int)8000; application/x-rtp, media=(string)audio, encoding-name=(string)PCMU, clock-rate=(int)[ 1, 2147483647 ]</details>
         </caps>
         <caps>
           <name>src</name>
@@ -1175,7 +1175,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)QCELP; application/x-rtp, media=(string)audio, payload=(int)12, clock-rate=(int)8000</details>
+          <details>application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)QCELP; application/x-rtp, media=(string)audio, payload=(int)12, clock-rate=(int)8000</details>
         </caps>
         <caps>
           <name>src</name>
@@ -1196,7 +1196,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], encoding-name=(string)X-QDM</details>
+          <details>application/x-rtp, media=(string)audio, encoding-name=(string)X-QDM</details>
         </caps>
         <caps>
           <name>src</name>
@@ -1206,6 +1206,48 @@
         </caps>
       </pads>
     </element>
+    <element>
+      <name>rtpsbcdepay</name>
+      <longname>RTP SBC audio depayloader</longname>
+      <class>Codec/Depayloader/Network/RTP</class>
+      <description>Extracts SBC audio from RTP packets</description>
+      <author>Arun Raghavan &lt;arun.raghavan@collabora.co.uk&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int){ 16000, 32000, 44100, 48000 }, encoding-name=(string)SBC</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>audio/x-sbc, rate=(int){ 16000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ], mode=(string){ mono, dual, stereo, joint }, blocks=(int){ 4, 8, 12, 16 }, subbands=(int){ 4, 8 }, allocation-method=(string){ snr, loudness }, bitpool=(int)[ 2, 64 ]</details>
+        </caps>
+      </pads>
+    </element>
+    <element>
+      <name>rtpsbcpay</name>
+      <longname>RTP packet payloader</longname>
+      <class>Codec/Payloader/Network</class>
+      <description>Payload SBC audio as RTP packets</description>
+      <author>Thiago Sousa Santos &lt;thiagoss@lcc.ufcg.edu.br&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>audio/x-sbc, rate=(int){ 16000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ], channel-mode=(string){ mono, dual, stereo, joint }, blocks=(int){ 4, 8, 12, 16 }, subbands=(int){ 4, 8 }, allocation-method=(string){ snr, loudness }, bitpool=(int)[ 2, 64 ]</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int){ 16000, 32000, 44100, 48000 }, encoding-name=(string)SBC</details>
+        </caps>
+      </pads>
+    </element>
     <element>
       <name>rtpsirendepay</name>
       <longname>RTP Siren packet depayloader</longname>
@@ -1217,7 +1259,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)16000, encoding-name=(string)SIREN, dct-length=(int)320</details>
+          <details>application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)SIREN, dct-length=(int)320</details>
         </caps>
         <caps>
           <name>src</name>
@@ -1259,7 +1301,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 6000, 48000 ], encoding-name=(string)SPEEX, encoding-params=(string)1</details>
+          <details>application/x-rtp, media=(string)audio, clock-rate=(int)[ 6000, 48000 ], encoding-name=(string)SPEEX, encoding-params=(string)1</details>
         </caps>
         <caps>
           <name>src</name>
@@ -1301,7 +1343,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string){ X-SV3V-ES, X-SORENSON-VIDEO, X-SORENSONVIDEO, X-SorensonVideo }</details>
+          <details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string){ X-SV3V-ES, X-SORENSON-VIDEO, X-SORENSONVIDEO, X-SorensonVideo }</details>
         </caps>
         <caps>
           <name>src</name>
@@ -1322,7 +1364,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)THEORA</details>
+          <details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)THEORA</details>
         </caps>
         <caps>
           <name>src</name>
@@ -1364,7 +1406,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)VORBIS</details>
+          <details>application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)VORBIS</details>
         </caps>
         <caps>
           <name>src</name>
@@ -1395,6 +1437,48 @@
         </caps>
       </pads>
     </element>
+    <element>
+      <name>rtpvp8depay</name>
+      <longname>RTP VP8 depayloader</longname>
+      <class>Codec/Depayloader/Network/RTP</class>
+      <description>Extracts VP8 video from RTP packets)</description>
+      <author>Sjoerd Simons &lt;sjoerd@luon.net&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>application/x-rtp, clock-rate=(int)90000, media=(string)video, encoding-name=(string)VP8-DRAFT-IETF-01</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>video/x-vp8</details>
+        </caps>
+      </pads>
+    </element>
+    <element>
+      <name>rtpvp8pay</name>
+      <longname>RTP VP8 payloader</longname>
+      <class>Codec/Payloader/Network/RTP</class>
+      <description>Puts VP8 video in RTP packets)</description>
+      <author>Sjoerd Simons &lt;sjoerd@luon.net&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>video/x-vp8</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>application/x-rtp, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)VP8-DRAFT-IETF-01</details>
+        </caps>
+      </pads>
+    </element>
     <element>
       <name>rtpvrawdepay</name>
       <longname>RTP Raw Video depayloader</longname>
@@ -1406,7 +1490,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)RAW</details>
+          <details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)RAW</details>
         </caps>
         <caps>
           <name>src</name>
diff --git a/docs/plugins/inspect/plugin-rtpmanager.xml b/docs/plugins/inspect/plugin-rtpmanager.xml
index 5703f01e8..4310ae44a 100644
--- a/docs/plugins/inspect/plugin-rtpmanager.xml
+++ b/docs/plugins/inspect/plugin-rtpmanager.xml
@@ -3,7 +3,7 @@
   <description>RTP session management plugin library</description>
   <filename>../../gst/rtpmanager/.libs/libgstrtpmanager.so</filename>
   <basename>libgstrtpmanager.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -54,6 +54,33 @@
         </caps>
       </pads>
     </element>
+    <element>
+      <name>rtpdtmfmux</name>
+      <longname>RTP muxer</longname>
+      <class>Codec/Muxer</class>
+      <description>mixes RTP DTMF streams into other RTP streams</description>
+      <author>Zeeshan Ali &lt;first.last@nokia.com&gt;</author>
+      <pads>
+        <caps>
+          <name>priority_sink_%u</name>
+          <direction>sink</direction>
+          <presence>request</presence>
+          <details>application/x-rtp</details>
+        </caps>
+        <caps>
+          <name>sink_%u</name>
+          <direction>sink</direction>
+          <presence>request</presence>
+          <details>application/x-rtp</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>application/x-rtp</details>
+        </caps>
+      </pads>
+    </element>
     <element>
       <name>rtpjitterbuffer</name>
       <longname>RTP packet jitter-buffer</longname>
@@ -81,6 +108,27 @@
         </caps>
       </pads>
     </element>
+    <element>
+      <name>rtpmux</name>
+      <longname>RTP muxer</longname>
+      <class>Codec/Muxer</class>
+      <description>multiplex N rtp streams into one</description>
+      <author>Zeeshan Ali &lt;first.last@nokia.com&gt;</author>
+      <pads>
+        <caps>
+          <name>sink_%u</name>
+          <direction>sink</direction>
+          <presence>request</presence>
+          <details>application/x-rtp</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>application/x-rtp</details>
+        </caps>
+      </pads>
+    </element>
     <element>
       <name>rtpptdemux</name>
       <longname>RTP Demux</longname>
diff --git a/docs/plugins/inspect/plugin-rtsp.xml b/docs/plugins/inspect/plugin-rtsp.xml
index 7f1f9064b..7c9ad709b 100644
--- a/docs/plugins/inspect/plugin-rtsp.xml
+++ b/docs/plugins/inspect/plugin-rtsp.xml
@@ -3,7 +3,7 @@
   <description>transfer data via RTSP</description>
   <filename>../../gst/rtsp/.libs/libgstrtsp.so</filename>
   <basename>libgstrtsp.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-shapewipe.xml b/docs/plugins/inspect/plugin-shapewipe.xml
index d42f71073..c5b7d6ca4 100644
--- a/docs/plugins/inspect/plugin-shapewipe.xml
+++ b/docs/plugins/inspect/plugin-shapewipe.xml
@@ -3,7 +3,7 @@
   <description>Shape Wipe transition filter</description>
   <filename>../../gst/shapewipe/.libs/libgstshapewipe.so</filename>
   <basename>libgstshapewipe.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-shout2send.xml b/docs/plugins/inspect/plugin-shout2send.xml
index 56ce5c202..2fae63d41 100644
--- a/docs/plugins/inspect/plugin-shout2send.xml
+++ b/docs/plugins/inspect/plugin-shout2send.xml
@@ -3,7 +3,7 @@
   <description>Sends data to an icecast server using libshout2</description>
   <filename>../../ext/shout2/.libs/libgstshout2.so</filename>
   <basename>libgstshout2.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>libshout2</package>
@@ -20,7 +20,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/ogg; audio/ogg; video/ogg; audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ]</details>
+          <details>application/ogg; audio/ogg; video/ogg; audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ]; video/webm; audio/webm</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-smpte.xml b/docs/plugins/inspect/plugin-smpte.xml
index 699031bac..bf2e3a7e0 100644
--- a/docs/plugins/inspect/plugin-smpte.xml
+++ b/docs/plugins/inspect/plugin-smpte.xml
@@ -3,7 +3,7 @@
   <description>Apply the standard SMPTE transitions on video images</description>
   <filename>../../gst/smpte/.libs/libgstsmpte.so</filename>
   <basename>libgstsmpte.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-soup.xml b/docs/plugins/inspect/plugin-soup.xml
index 566e83ac6..d0aefd3d3 100644
--- a/docs/plugins/inspect/plugin-soup.xml
+++ b/docs/plugins/inspect/plugin-soup.xml
@@ -3,7 +3,7 @@
   <description>libsoup HTTP client src/sink</description>
   <filename>../../ext/soup/.libs/libgstsouphttpsrc.so</filename>
   <basename>libgstsouphttpsrc.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-spectrum.xml b/docs/plugins/inspect/plugin-spectrum.xml
index 5af9887c5..e20124c3f 100644
--- a/docs/plugins/inspect/plugin-spectrum.xml
+++ b/docs/plugins/inspect/plugin-spectrum.xml
@@ -3,7 +3,7 @@
   <description>Run an FFT on the audio signal, output spectrum data</description>
   <filename>../../gst/spectrum/.libs/libgstspectrum.so</filename>
   <basename>libgstspectrum.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-speex.xml b/docs/plugins/inspect/plugin-speex.xml
index aed402df3..d64b4a260 100644
--- a/docs/plugins/inspect/plugin-speex.xml
+++ b/docs/plugins/inspect/plugin-speex.xml
@@ -3,7 +3,7 @@
   <description>Speex plugin library</description>
   <filename>../../ext/speex/.libs/libgstspeex.so</filename>
   <basename>libgstspeex.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-taglib.xml b/docs/plugins/inspect/plugin-taglib.xml
index cdd930e07..2a434e6d8 100644
--- a/docs/plugins/inspect/plugin-taglib.xml
+++ b/docs/plugins/inspect/plugin-taglib.xml
@@ -3,7 +3,7 @@
   <description>Tag writing plug-in based on taglib</description>
   <filename>../../ext/taglib/.libs/libgsttaglib.so</filename>
   <basename>libgsttaglib.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-udp.xml b/docs/plugins/inspect/plugin-udp.xml
index 5dc2eaa20..36276214e 100644
--- a/docs/plugins/inspect/plugin-udp.xml
+++ b/docs/plugins/inspect/plugin-udp.xml
@@ -3,7 +3,7 @@
   <description>transfer data via UDP</description>
   <filename>../../gst/udp/.libs/libgstudp.so</filename>
   <basename>libgstudp.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-video4linux2.xml b/docs/plugins/inspect/plugin-video4linux2.xml
index 271151d88..0e4dabfde 100644
--- a/docs/plugins/inspect/plugin-video4linux2.xml
+++ b/docs/plugins/inspect/plugin-video4linux2.xml
@@ -3,7 +3,7 @@
   <description>elements for Video 4 Linux</description>
   <filename>../../sys/v4l2/.libs/libgstvideo4linux2.so</filename>
   <basename>libgstvideo4linux2.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -29,7 +29,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw, format=(string)RGB15, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB16, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGR, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGRx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGBx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)GRAY8, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVU9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUY2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)UYVY, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y42B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y41B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV21, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUV9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)I420, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-bayer, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-dv, systemstream=(boolean)true, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/mpegts; video/x-h264, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVYU, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</details>
+          <details>video/x-raw, format=(string)RGB15, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB16, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGR, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGRx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGBx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)GRAY8, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVU9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUY2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)UYVY, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y42B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y41B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV21, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUV9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)I420, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-bayer, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-dv, systemstream=(boolean)true, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/mpegts; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-h263, variant=(string)itu, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-h264, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVYU, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</details>
         </caps>
       </pads>
     </element>
@@ -44,7 +44,7 @@
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>video/x-raw, format=(string)RGB15, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB16, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGR, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGRx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGBx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)GRAY8, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVU9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUY2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)UYVY, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y42B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y41B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV21, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUV9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)I420, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-bayer, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-dv, systemstream=(boolean)true, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/mpegts; video/x-h264, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVYU, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</details>
+          <details>video/x-raw, format=(string)RGB15, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB16, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGR, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGRx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGBx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)GRAY8, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVU9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUY2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)UYVY, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y42B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y41B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV21, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUV9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)I420, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-bayer, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-dv, systemstream=(boolean)true, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/mpegts; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-h263, variant=(string)itu, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-h264, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVYU, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-videobox.xml b/docs/plugins/inspect/plugin-videobox.xml
index a75c64865..77f0f31be 100644
--- a/docs/plugins/inspect/plugin-videobox.xml
+++ b/docs/plugins/inspect/plugin-videobox.xml
@@ -3,7 +3,7 @@
   <description>resizes a video by adding borders or cropping</description>
   <filename>../../gst/videobox/.libs/libgstvideobox.so</filename>
   <basename>libgstvideobox.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videocrop.xml b/docs/plugins/inspect/plugin-videocrop.xml
index 9d711be2c..d1245588f 100644
--- a/docs/plugins/inspect/plugin-videocrop.xml
+++ b/docs/plugins/inspect/plugin-videocrop.xml
@@ -3,7 +3,7 @@
   <description>Crops video into a user-defined region</description>
   <filename>../../gst/videocrop/.libs/libgstvideocrop.so</filename>
   <basename>libgstvideocrop.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -20,13 +20,13 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, NV12, NV21, GRAY16_LE, GRAY16_BE }, 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, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, NV12, NV21, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
       </pads>
     </element>
@@ -41,13 +41,13 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, NV12, NV21, GRAY16_LE, GRAY16_BE }, 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, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, NV12, NV21, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-videofilter.xml b/docs/plugins/inspect/plugin-videofilter.xml
index a106e6f84..63cf7dd00 100644
--- a/docs/plugins/inspect/plugin-videofilter.xml
+++ b/docs/plugins/inspect/plugin-videofilter.xml
@@ -3,7 +3,7 @@
   <description>Video filters plugin</description>
   <filename>../../gst/videofilter/.libs/libgstvideofilter.so</filename>
   <basename>libgstvideofilter.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -62,13 +62,13 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw, format=(string){ AYUV, ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ AYUV, ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE }, 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, format=(string){ AYUV, ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ AYUV, ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-videomixer.xml b/docs/plugins/inspect/plugin-videomixer.xml
index 074aed93b..36a8e25a2 100644
--- a/docs/plugins/inspect/plugin-videomixer.xml
+++ b/docs/plugins/inspect/plugin-videomixer.xml
@@ -3,7 +3,7 @@
   <description>Video mixer</description>
   <filename>../../gst/videomixer/.libs/libgstvideomixer.so</filename>
   <basename>libgstvideomixer.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-vpx.xml b/docs/plugins/inspect/plugin-vpx.xml
index 236dd3c32..81427279b 100644
--- a/docs/plugins/inspect/plugin-vpx.xml
+++ b/docs/plugins/inspect/plugin-vpx.xml
@@ -3,7 +3,7 @@
   <description>VP8 plugin</description>
   <filename>../../ext/vpx/.libs/libgstvpx.so</filename>
   <basename>libgstvpx.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-wavenc.xml b/docs/plugins/inspect/plugin-wavenc.xml
index 31ecd12b6..a6df90819 100644
--- a/docs/plugins/inspect/plugin-wavenc.xml
+++ b/docs/plugins/inspect/plugin-wavenc.xml
@@ -3,7 +3,7 @@
   <description>Encode raw audio into WAV</description>
   <filename>../../gst/wavenc/.libs/libgstwavenc.so</filename>
   <basename>libgstwavenc.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-wavpack.xml b/docs/plugins/inspect/plugin-wavpack.xml
index 52b6b7e5f..4b2978935 100644
--- a/docs/plugins/inspect/plugin-wavpack.xml
+++ b/docs/plugins/inspect/plugin-wavpack.xml
@@ -3,7 +3,7 @@
   <description>Wavpack lossless/lossy audio format handling</description>
   <filename>../../ext/wavpack/.libs/libgstwavpack.so</filename>
   <basename>libgstwavpack.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-wavparse.xml b/docs/plugins/inspect/plugin-wavparse.xml
index 15bd30db5..3b03d1951 100644
--- a/docs/plugins/inspect/plugin-wavparse.xml
+++ b/docs/plugins/inspect/plugin-wavparse.xml
@@ -3,7 +3,7 @@
   <description>Parse a .wav file into raw audio</description>
   <filename>../../gst/wavparse/.libs/libgstwavparse.so</filename>
   <basename>libgstwavparse.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ximagesrc.xml b/docs/plugins/inspect/plugin-ximagesrc.xml
index f11a4a96a..d8f9caa98 100644
--- a/docs/plugins/inspect/plugin-ximagesrc.xml
+++ b/docs/plugins/inspect/plugin-ximagesrc.xml
@@ -3,7 +3,7 @@
   <description>X11 video input plugin using standard Xlib calls</description>
   <filename>../../sys/ximage/.libs/libgstximagesrc.so</filename>
   <basename>libgstximagesrc.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-y4menc.xml b/docs/plugins/inspect/plugin-y4menc.xml
index 5a7e2abfd..facd1b7b0 100644
--- a/docs/plugins/inspect/plugin-y4menc.xml
+++ b/docs/plugins/inspect/plugin-y4menc.xml
@@ -3,7 +3,7 @@
   <description>Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</description>
   <filename>../../gst/y4m/.libs/libgsty4menc.so</filename>
   <basename>libgsty4menc.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/ext/Makefile.in b/ext/Makefile.in
index 3abda7a7d..b37d92945 100644
--- a/ext/Makefile.in
+++ b/ext/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -20,23 +19,51 @@
 # descending into all subdirectories a second time, but only after the first
 # (parallel) run has finished, so it should go right through the second time.
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,8 +83,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/parallel-subdirs.mak
+DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \
+	$(srcdir)/Makefile.in $(srcdir)/Makefile.am
 subdir = ext
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -65,7 +92,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-gcc-inline-assembly.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 \
@@ -101,21 +127,28 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -123,9 +156,29 @@ am__can_run_installinfo = \
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -319,6 +372,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -601,22 +655,25 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -631,57 +688,12 @@ $(RECURSIVE_TARGETS):
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-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: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -697,12 +709,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -714,15 +721,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -731,6 +734,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -891,22 +909,20 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean 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 installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean 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 \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 .PHONY: independent-subdirs $(SUBDIRS)
diff --git a/ext/aalib/Makefile.in b/ext/aalib/Makefile.in
index 0845305d7..d75842635 100644
--- a/ext/aalib/Makefile.in
+++ b/ext/aalib/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/aalib
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -136,10 +162,23 @@ libgstaasink_la_OBJECTS = $(am_libgstaasink_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstaasink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstaasink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstaasink_la_CFLAGS) $(CFLAGS) \
 	$(libgstaasink_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -152,20 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstaasink_la_SOURCES)
 DIST_SOURCES = $(libgstaasink_la_SOURCES)
 am__can_run_installinfo = \
@@ -174,6 +209,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -342,6 +394,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -543,6 +596,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -569,12 +623,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstaasink.la: $(libgstaasink_la_OBJECTS) $(libgstaasink_la_DEPENDENCIES) $(EXTRA_libgstaasink_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstaasink_la_LINK) -rpath $(plugindir) $(libgstaasink_la_OBJECTS) $(libgstaasink_la_LIBADD) $(LIBS)
 
@@ -620,26 +677,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -651,15 +697,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -668,6 +710,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -812,19 +869,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/aalib/gstaasink.c b/ext/aalib/gstaasink.c
index 8187287e2..6e2365ed7 100644
--- a/ext/aalib/gstaasink.c
+++ b/ext/aalib/gstaasink.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-aasink
diff --git a/ext/aalib/gstaasink.h b/ext/aalib/gstaasink.h
index 33229d816..6386c25a0 100644
--- a/ext/aalib/gstaasink.h
+++ b/ext/aalib/gstaasink.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/cairo/Makefile.am b/ext/cairo/Makefile.am
index ef68bce97..0e0b57ba2 100644
--- a/ext/cairo/Makefile.am
+++ b/ext/cairo/Makefile.am
@@ -1,13 +1,5 @@
 plugin_LTLIBRARIES = libgstcairo.la
 
-# we probably don't really want to port these
-#	gsttimeoverlay.h
-#	gsttextoverlay.h
-#	gstcairorender.h
-#	gsttimeoverlay.c
-#	gsttextoverlay.c
-#	gstcairorender.c
-
 noinst_HEADERS = \
 	gstcairooverlay.h
 libgstcairo_la_SOURCES = \
diff --git a/ext/cairo/Makefile.in b/ext/cairo/Makefile.in
index b2348ec85..6f66043c2 100644
--- a/ext/cairo/Makefile.in
+++ b/ext/cairo/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/cairo
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -137,10 +163,23 @@ libgstcairo_la_OBJECTS = $(am_libgstcairo_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstcairo_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstcairo_la_CFLAGS) $(CFLAGS) \
 	$(libgstcairo_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -153,20 +192,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstcairo_la_SOURCES)
 DIST_SOURCES = $(libgstcairo_la_SOURCES)
 am__can_run_installinfo = \
@@ -175,6 +210,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -343,6 +395,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -504,14 +557,6 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 plugin_LTLIBRARIES = libgstcairo.la
-
-# we probably don't really want to port these
-#	gsttimeoverlay.h
-#	gsttextoverlay.h
-#	gstcairorender.h
-#	gsttimeoverlay.c
-#	gsttextoverlay.c
-#	gstcairorender.c
 noinst_HEADERS = \
 	gstcairooverlay.h
 
@@ -564,6 +609,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -590,12 +636,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstcairo.la: $(libgstcairo_la_OBJECTS) $(libgstcairo_la_DEPENDENCIES) $(EXTRA_libgstcairo_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstcairo_la_LINK) -rpath $(plugindir) $(libgstcairo_la_OBJECTS) $(libgstcairo_la_LIBADD) $(LIBS)
 
@@ -649,26 +698,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -680,15 +718,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -697,6 +731,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -841,19 +890,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/cairo/gstcairo.c b/ext/cairo/gstcairo.c
index ef044b213..5b9438740 100644
--- a/ext/cairo/gstcairo.c
+++ b/ext/cairo/gstcairo.c
@@ -14,20 +14,14 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 
-#if 0
-#include <gsttimeoverlay.h>
-#include <gsttextoverlay.h>
-#include <gstcairorender.h>
-#endif
-
 #include <gstcairooverlay.h>
 
 #include <string.h>
@@ -38,16 +32,6 @@ GST_DEBUG_CATEGORY (cairo_debug);
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
-#if 0
-  /* we probably don't want to port these */
-  gst_element_register (plugin, "cairotextoverlay", GST_RANK_NONE,
-      GST_TYPE_CAIRO_TEXT_OVERLAY);
-  gst_element_register (plugin, "cairotimeoverlay", GST_RANK_NONE,
-      GST_TYPE_CAIRO_TIME_OVERLAY);
-  gst_element_register (plugin, "cairorender", GST_RANK_SECONDARY,
-      GST_TYPE_CAIRO_RENDER);
-#endif
-
   gst_element_register (plugin, "cairooverlay", GST_RANK_NONE,
       GST_TYPE_CAIRO_OVERLAY);
 
diff --git a/ext/cairo/gstcairooverlay.c b/ext/cairo/gstcairooverlay.c
index 34bfe82cf..af32dfe01 100644
--- a/ext/cairo/gstcairooverlay.c
+++ b/ext/cairo/gstcairooverlay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/ext/cairo/gstcairooverlay.h b/ext/cairo/gstcairooverlay.h
index 36801b1e9..9c67a7b4f 100644
--- a/ext/cairo/gstcairooverlay.h
+++ b/ext/cairo/gstcairooverlay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_CAIRO_OVERLAY_H__
diff --git a/ext/dv/Makefile.in b/ext/dv/Makefile.in
index bd0b4092b..ff018b63b 100644
--- a/ext/dv/Makefile.in
+++ b/ext/dv/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -18,23 +17,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,15 +83,14 @@ host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = smpte_test$(EXEEXT)
 subdir = ext/dv
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -138,6 +164,7 @@ libgstdv_la_OBJECTS = $(am_libgstdv_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstdv_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstdv_la_CFLAGS) $(CFLAGS) $(libgstdv_la_LDFLAGS) \
@@ -150,6 +177,18 @@ smpte_test_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 smpte_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(smpte_test_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -162,20 +201,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstdv_la_SOURCES) $(smpte_test_SOURCES)
 DIST_SOURCES = $(libgstdv_la_SOURCES) $(smpte_test_SOURCES)
 am__can_run_installinfo = \
@@ -184,6 +219,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -352,6 +404,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -560,6 +613,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -586,12 +640,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstdv.la: $(libgstdv_la_OBJECTS) $(libgstdv_la_DEPENDENCIES) $(EXTRA_libgstdv_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstdv_la_LINK) -rpath $(plugindir) $(libgstdv_la_OBJECTS) $(libgstdv_la_LIBADD) $(LIBS)
 
@@ -603,6 +660,7 @@ clean-noinstPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 smpte_test$(EXEEXT): $(smpte_test_OBJECTS) $(smpte_test_DEPENDENCIES) $(EXTRA_smpte_test_DEPENDENCIES) 
 	@rm -f smpte_test$(EXEEXT)
 	$(AM_V_CCLD)$(smpte_test_LINK) $(smpte_test_OBJECTS) $(smpte_test_LDADD) $(LIBS)
@@ -703,26 +761,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -734,15 +781,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -751,6 +794,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -895,20 +953,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
 	clean-libtool clean-noinstPROGRAMS clean-pluginLTLIBRARIES \
-	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-pluginLTLIBRARIES 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 \
-	uninstall-pluginLTLIBRARIES
+	cscopelist-am ctags ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall \
+	uninstall-am uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/dv/gstdv.c b/ext/dv/gstdv.c
index 359df9eb3..9861bf6f8 100644
--- a/ext/dv/gstdv.c
+++ b/ext/dv/gstdv.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/ext/dv/gstdvdec.c b/ext/dv/gstdvdec.c
index 3cbd4dd6c..370363e7e 100644
--- a/ext/dv/gstdvdec.c
+++ b/ext/dv/gstdvdec.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/ext/dv/gstdvdec.h b/ext/dv/gstdvdec.h
index 0e52de0f0..b37a90d40 100644
--- a/ext/dv/gstdvdec.h
+++ b/ext/dv/gstdvdec.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/dv/gstdvdemux.c b/ext/dv/gstdvdemux.c
index 48778a677..a2b89f485 100644
--- a/ext/dv/gstdvdemux.c
+++ b/ext/dv/gstdvdemux.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/ext/dv/gstdvdemux.h b/ext/dv/gstdvdemux.h
index 9303e4da2..7a8210043 100644
--- a/ext/dv/gstdvdemux.h
+++ b/ext/dv/gstdvdemux.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/dv/gstsmptetimecode.c b/ext/dv/gstsmptetimecode.c
index 40a36d3f3..8b15a6b63 100644
--- a/ext/dv/gstsmptetimecode.c
+++ b/ext/dv/gstsmptetimecode.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/ext/dv/gstsmptetimecode.h b/ext/dv/gstsmptetimecode.h
index cdda03e6f..2042046a0 100644
--- a/ext/dv/gstsmptetimecode.h
+++ b/ext/dv/gstsmptetimecode.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _GST_SMPTE_TIME_CODE_H_
diff --git a/ext/flac/Makefile.in b/ext/flac/Makefile.in
index 5479d621d..03b3b2b91 100644
--- a/ext/flac/Makefile.in
+++ b/ext/flac/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/flac
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -138,10 +164,23 @@ libgstflac_la_OBJECTS = $(am_libgstflac_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstflac_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstflac_la_CFLAGS) $(CFLAGS) \
 	$(libgstflac_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -154,20 +193,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstflac_la_SOURCES)
 DIST_SOURCES = $(libgstflac_la_SOURCES)
 am__can_run_installinfo = \
@@ -176,6 +211,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -344,6 +396,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -551,6 +604,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -577,12 +631,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstflac.la: $(libgstflac_la_OBJECTS) $(libgstflac_la_DEPENDENCIES) $(EXTRA_libgstflac_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstflac_la_LINK) -rpath $(plugindir) $(libgstflac_la_OBJECTS) $(libgstflac_la_LIBADD) $(LIBS)
 
@@ -652,26 +709,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -683,15 +729,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -700,6 +742,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -844,19 +901,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/flac/gstflac.c b/ext/flac/gstflac.c
index febf3d511..2b88b2a4c 100644
--- a/ext/flac/gstflac.c
+++ b/ext/flac/gstflac.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/ext/flac/gstflacdec.c b/ext/flac/gstflacdec.c
index e2387f207..153748543 100644
--- a/ext/flac/gstflacdec.c
+++ b/ext/flac/gstflacdec.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/ext/flac/gstflacdec.h b/ext/flac/gstflacdec.h
index 12447f8e6..e8d073a51 100644
--- a/ext/flac/gstflacdec.h
+++ b/ext/flac/gstflacdec.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/flac/gstflacenc.c b/ext/flac/gstflacenc.c
index 07361d227..3e6cd8a21 100644
--- a/ext/flac/gstflacenc.c
+++ b/ext/flac/gstflacenc.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-flacenc
@@ -22,13 +22,20 @@
  *
  * flacenc encodes FLAC streams.
  * <ulink url="http://flac.sourceforge.net/">FLAC</ulink>
- * is a Free Lossless Audio Codec.
+ * is a Free Lossless Audio Codec. FLAC audio can directly be written into
+ * a file, or embedded into containers such as oggmux or matroskamux.
  *
  * <refsect2>
  * <title>Example launch line</title>
  * |[
  * gst-launch-1.0 audiotestsrc num-buffers=100 ! flacenc ! filesink location=beep.flac
- * ]|
+ * ]| Encode a short sine wave into FLAC
+ * |[
+ * gst-launch-1.0 cdparanoiasrc mode=continuous ! queue ! audioconvert ! flacenc ! filesink location=cd.flac
+ * ]| Rip a whole audio CD into a single FLAC file, with the track table saved as a CUE sheet inside the FLAC file
+ * |[
+ * gst-launch-1.0 cdparanoiasrc track=5 ! queue ! audioconvert ! flacenc ! filesink location=track5.flac
+ * ]| Rip track 5 of an audio CD and encode it losslessly to a FLAC file
  * </refsect2>
  */
 
@@ -331,14 +338,6 @@ gst_flac_enc_class_init (GstFlacEncClass * klass)
           "parameters, use best", 0, FLAC__MAX_RICE_PARTITION_ORDER,
           flacenc_params[DEFAULT_QUALITY].rice_parameter_search_dist,
           G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
-
-  /**
-   * GstFlacEnc:padding
-   *
-   * Write a PADDING block with this length in bytes
-   *
-   * Since: 0.10.16
-   **/
   g_object_class_install_property (G_OBJECT_CLASS (klass),
       PROP_PADDING,
       g_param_spec_uint ("padding",
@@ -346,15 +345,6 @@ gst_flac_enc_class_init (GstFlacEncClass * klass)
           "Write a PADDING block with this length in bytes", 0, G_MAXUINT,
           DEFAULT_PADDING,
           G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
-
-  /**
-   * GstFlacEnc:seekpoints
-   *
-   * Write a SEEKTABLE block with a specific number of seekpoints
-   * or with a specific interval spacing.
-   *
-   * Since: 0.10.18
-   **/
   g_object_class_install_property (G_OBJECT_CLASS (klass),
       PROP_SEEKPOINTS,
       g_param_spec_int ("seekpoints",
@@ -1171,8 +1161,7 @@ gst_flac_enc_write_callback (const FLAC__StreamEncoder * encoder,
     ret = gst_pad_push (GST_AUDIO_ENCODER_SRC_PAD (flacenc), outbuf);
   } else {
     /* regular frame data, pass to base class */
-    GST_LOG ("Pushing buffer: ts=%" GST_TIME_FORMAT ", samples=%u, size=%u, "
-        "pos=%" G_GUINT64_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf)),
+    GST_LOG ("Pushing buffer: samples=%u, size=%u, pos=%" G_GUINT64_FORMAT,
         samples, (guint) bytes, flacenc->offset);
     ret = gst_audio_encoder_finish_frame (GST_AUDIO_ENCODER (flacenc),
         outbuf, samples);
@@ -1213,7 +1202,8 @@ gst_flac_enc_sink_event (GstAudioEncoder * enc, GstEvent * event)
 
   flacenc = GST_FLAC_ENC (enc);
 
-  GST_DEBUG ("Received %s event on sinkpad", GST_EVENT_TYPE_NAME (event));
+  GST_DEBUG ("Received %s event on sinkpad, %" GST_PTR_FORMAT,
+      GST_EVENT_TYPE_NAME (event), event);
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_EOS:
@@ -1281,6 +1271,7 @@ gst_flac_enc_handle_frame (GstAudioEncoder * enc, GstBuffer * buffer)
 
   if (G_UNLIKELY (!buffer)) {
     if (flacenc->eos) {
+      GST_DEBUG_OBJECT (flacenc, "finish encoding");
       FLAC__stream_encoder_finish (flacenc->encoder);
     } else {
       /* can't handle intermittent draining/resyncing */
@@ -1298,6 +1289,8 @@ gst_flac_enc_handle_frame (GstAudioEncoder * enc, GstBuffer * buffer)
   data = g_malloc (samples * sizeof (FLAC__int32));
 
   samples /= channels;
+  GST_LOG_OBJECT (flacenc, "processing %d samples, %d channels", samples,
+      channels);
   if (width == 8) {
     gint8 *indata = (gint8 *) map.data;
 
diff --git a/ext/flac/gstflacenc.h b/ext/flac/gstflacenc.h
index 690b098e2..c9caecd4a 100644
--- a/ext/flac/gstflacenc.h
+++ b/ext/flac/gstflacenc.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/flac/gstflactag.c b/ext/flac/gstflactag.c
index 69c4716c6..5f524f1c2 100644
--- a/ext/flac/gstflactag.c
+++ b/ext/flac/gstflactag.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -74,18 +74,6 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_STATIC_CAPS ("audio/x-flac")
     );
 
-/* signals and args */
-enum
-{
-  /* FILL ME */
-  LAST_SIGNAL
-};
-
-enum
-{
-  ARG_0
-      /* FILL ME */
-};
 
 static void gst_flac_tag_dispose (GObject * object);
 
@@ -172,9 +160,21 @@ gst_flac_tag_init (GstFlacTag * tag)
 static gboolean
 gst_flac_tag_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
+  GstFlacTag *tag;
   gboolean ret;
 
+  tag = GST_FLAC_TAG (parent);
+
+  GST_DEBUG_OBJECT (pad, "Received %s event on sinkpad, %" GST_PTR_FORMAT,
+      GST_EVENT_TYPE_NAME (event), event);
+
   switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_CAPS:
+      /* FIXME: parse and store the caps. Once we parsed and built the headers,
+       * update the "streamheader" field in the caps and send a new caps event
+       */
+      ret = gst_pad_push_event (tag->srcpad, event);
+      break;
     default:
       ret = gst_pad_event_default (pad, parent, event);
       break;
@@ -199,6 +199,8 @@ gst_flac_tag_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 
   gst_adapter_push (tag->adapter, buffer);
 
+  GST_LOG_OBJECT (pad, "state: %d", tag->state);
+
   /* Initial state, we don't even know if we are dealing with a flac file */
   if (tag->state == GST_FLAC_TAG_STATE_INIT) {
     GstBuffer *id_buffer;
@@ -428,7 +430,7 @@ gst_flac_tag_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
   }
 
 cleanup:
-
+  GST_LOG_OBJECT (pad, "state: %d, ret: %d", tag->state, ret);
   return ret;
 
   /* ERRORS */
diff --git a/ext/flac/gstflactag.h b/ext/flac/gstflactag.h
index a6f90f5e2..106541a05 100644
--- a/ext/flac/gstflactag.h
+++ b/ext/flac/gstflactag.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef GST_FLAC_TAG_H
diff --git a/ext/gdk_pixbuf/Makefile.in b/ext/gdk_pixbuf/Makefile.in
index 34f0d9c89..c33c87c39 100644
--- a/ext/gdk_pixbuf/Makefile.in
+++ b/ext/gdk_pixbuf/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/gdk_pixbuf
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -139,10 +165,23 @@ libgstgdkpixbuf_la_OBJECTS = $(am_libgstgdkpixbuf_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstgdkpixbuf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) \
 	$(libgstgdkpixbuf_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -155,20 +194,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstgdkpixbuf_la_SOURCES)
 DIST_SOURCES = $(libgstgdkpixbuf_la_SOURCES)
 am__can_run_installinfo = \
@@ -177,6 +212,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -345,6 +397,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -570,6 +623,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -596,12 +650,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstgdkpixbuf.la: $(libgstgdkpixbuf_la_OBJECTS) $(libgstgdkpixbuf_la_DEPENDENCIES) $(EXTRA_libgstgdkpixbuf_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstgdkpixbuf_la_LINK) -rpath $(plugindir) $(libgstgdkpixbuf_la_OBJECTS) $(libgstgdkpixbuf_la_LIBADD) $(LIBS)
 
@@ -671,26 +728,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -702,15 +748,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -719,6 +761,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -863,19 +920,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/gdk_pixbuf/gstgdkpixbufdec.c b/ext/gdk_pixbuf/gstgdkpixbufdec.c
index 820f1a2e9..fc42ed194 100644
--- a/ext/gdk_pixbuf/gstgdkpixbufdec.c
+++ b/ext/gdk_pixbuf/gstgdkpixbufdec.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -295,6 +295,7 @@ gst_gdk_pixbuf_dec_flush (GstGdkPixbufDec * filter)
   if (GST_VIDEO_INFO_FORMAT (&filter->info) == GST_VIDEO_FORMAT_UNKNOWN) {
     GstVideoInfo info;
     GstVideoFormat fmt;
+    GList *l;
 
     GST_DEBUG ("Set size to %dx%d", width, height);
 
@@ -323,6 +324,11 @@ gst_gdk_pixbuf_dec_flush (GstGdkPixbufDec * filter)
     gst_caps_unref (caps);
 
     gst_gdk_pixbuf_dec_setup_pool (filter, &info);
+
+    for (l = filter->pending_events; l; l = l->next)
+      gst_pad_push_event (filter->srcpad, l->data);
+    g_list_free (filter->pending_events);
+    filter->pending_events = NULL;
   }
 
   ret = gst_buffer_pool_acquire_buffer (filter->pool, &outbuf, NULL);
@@ -412,8 +418,12 @@ gst_gdk_pixbuf_dec_sink_event (GstPad * pad, GstObject * parent,
         }
       }
       break;
-    case GST_EVENT_SEGMENT:
     case GST_EVENT_FLUSH_STOP:
+      g_list_free_full (pixbuf->pending_events,
+          (GDestroyNotify) gst_event_unref);
+      pixbuf->pending_events = NULL;
+      /* Fall through */
+    case GST_EVENT_SEGMENT:
       if (pixbuf->pixbuf_loader != NULL) {
         gdk_pixbuf_loader_close (pixbuf->pixbuf_loader, NULL);
         g_object_unref (G_OBJECT (pixbuf->pixbuf_loader));
@@ -424,7 +434,16 @@ gst_gdk_pixbuf_dec_sink_event (GstPad * pad, GstObject * parent,
       break;
   }
   if (forward) {
-    ret = gst_pad_event_default (pad, parent, event);
+    if (!gst_pad_has_current_caps (pixbuf->srcpad) &&
+        GST_EVENT_IS_SERIALIZED (event)
+        && GST_EVENT_TYPE (event) > GST_EVENT_CAPS
+        && GST_EVENT_TYPE (event) != GST_EVENT_FLUSH_STOP
+        && GST_EVENT_TYPE (event) != GST_EVENT_EOS) {
+      ret = TRUE;
+      pixbuf->pending_events = g_list_prepend (pixbuf->pending_events, event);
+    } else {
+      ret = gst_pad_event_default (pad, parent, event);
+    }
   } else {
     gst_event_unref (event);
   }
@@ -516,6 +535,8 @@ gst_gdk_pixbuf_dec_change_state (GstElement * element,
         gst_buffer_pool_set_active (dec->pool, FALSE);
         gst_object_replace ((GstObject **) & dec->pool, NULL);
       }
+      g_list_free_full (dec->pending_events, (GDestroyNotify) gst_event_unref);
+      dec->pending_events = NULL;
       break;
     default:
       break;
diff --git a/ext/gdk_pixbuf/gstgdkpixbufdec.h b/ext/gdk_pixbuf/gstgdkpixbufdec.h
index c47b8ccf0..832a30b41 100644
--- a/ext/gdk_pixbuf/gstgdkpixbufdec.h
+++ b/ext/gdk_pixbuf/gstgdkpixbufdec.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_GDK_PIXBUF_DEC_H__
@@ -54,6 +54,7 @@ struct _GstGdkPixbufDec
 
   GstVideoInfo info;
   GstBufferPool *pool;
+  GList *pending_events;
 };
 
 struct _GstGdkPixbufDecClass
diff --git a/ext/gdk_pixbuf/gstgdkpixbufoverlay.c b/ext/gdk_pixbuf/gstgdkpixbufoverlay.c
index b011b850d..46adfb65a 100644
--- a/ext/gdk_pixbuf/gstgdkpixbufoverlay.c
+++ b/ext/gdk_pixbuf/gstgdkpixbufoverlay.c
@@ -138,14 +138,16 @@ gst_gdk_pixbuf_overlay_class_init (GstGdkPixbufOverlayClass * klass)
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_OFFSET_X,
       g_param_spec_int ("offset-x", "X Offset",
-          "Horizontal offset of overlay image in pixels from top-left corner "
-          "of video image", G_MININT, G_MAXINT, 0,
+          "For positive value, horizontal offset of overlay image in pixels from"
+          " left of video image. For negative value, horizontal offset of overlay"
+          " image in pixels from right of video image", G_MININT, G_MAXINT, 0,
           GST_PARAM_CONTROLLABLE | GST_PARAM_MUTABLE_PLAYING | G_PARAM_READWRITE
           | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_OFFSET_Y,
       g_param_spec_int ("offset-y", "Y Offset",
-          "Vertical offset of overlay image in pixels from top-left corner "
-          "of video image", G_MININT, G_MAXINT, 0,
+          "For positive value, vertical offset of overlay image in pixels from"
+          " top of video image. For negative value, vertical offset of overlay"
+          " image in pixels from bottom of video image", G_MININT, G_MAXINT, 0,
           GST_PARAM_CONTROLLABLE | GST_PARAM_MUTABLE_PLAYING | G_PARAM_READWRITE
           | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_RELATIVE_X,
@@ -436,6 +438,8 @@ gst_gdk_pixbuf_overlay_update_composition (GstGdkPixbufOverlay * overlay)
   GstVideoOverlayRectangle *rect;
   GstVideoMeta *overlay_meta;
   gint x, y, width, height;
+  gint video_width = GST_VIDEO_INFO_WIDTH (&GST_VIDEO_FILTER (overlay)->in_info);
+  gint video_height = GST_VIDEO_INFO_HEIGHT (&GST_VIDEO_FILTER (overlay)->in_info);
 
   if (overlay->comp) {
     gst_video_overlay_composition_unref (overlay->comp);
@@ -447,14 +451,14 @@ gst_gdk_pixbuf_overlay_update_composition (GstGdkPixbufOverlay * overlay)
 
   overlay_meta = gst_buffer_get_video_meta (overlay->pixels);
 
-  x = overlay->offset_x + (overlay->relative_x * overlay_meta->width);
-  y = overlay->offset_y + (overlay->relative_y * overlay_meta->height);
-
-  /* FIXME: this should work, but seems to crash */
-  if (x < 0)
-    x = 0;
-  if (y < 0)
-    y = 0;
+  x = overlay->offset_x < 0 ?
+    video_width + overlay->offset_x - overlay_meta->width +
+    (overlay->relative_x * overlay_meta->width) :
+    overlay->offset_x + (overlay->relative_x * overlay_meta->width);
+  y = overlay->offset_y < 0 ?
+    video_height + overlay->offset_y - overlay_meta->height +
+    (overlay->relative_y * overlay_meta->height) :
+    overlay->offset_y + (overlay->relative_y * overlay_meta->height);
 
   width = overlay->overlay_width;
   if (width == 0)
@@ -472,8 +476,7 @@ gst_gdk_pixbuf_overlay_update_composition (GstGdkPixbufOverlay * overlay)
       overlay->overlay_height, overlay->overlay_width);
   GST_DEBUG_OBJECT (overlay, "overlay rendered: %d x %d @ %d,%d (onto %d x %d)",
       width, height, x, y,
-      GST_VIDEO_INFO_WIDTH (&GST_VIDEO_FILTER (overlay)->in_info),
-      GST_VIDEO_INFO_HEIGHT (&GST_VIDEO_FILTER (overlay)->in_info));
+      video_width, video_height);
 
   rect = gst_video_overlay_rectangle_new_raw (overlay->pixels,
       x, y, width, height, GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE);
diff --git a/ext/gdk_pixbuf/gstgdkpixbufoverlay.h b/ext/gdk_pixbuf/gstgdkpixbufoverlay.h
index 3d45e4fb1..0e863df4a 100644
--- a/ext/gdk_pixbuf/gstgdkpixbufoverlay.h
+++ b/ext/gdk_pixbuf/gstgdkpixbufoverlay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _GST_GDK_PIXBUF_OVERLAY_H_
diff --git a/ext/gdk_pixbuf/gstgdkpixbufplugin.c b/ext/gdk_pixbuf/gstgdkpixbufplugin.c
index e589efa42..4f58b9d47 100644
--- a/ext/gdk_pixbuf/gstgdkpixbufplugin.c
+++ b/ext/gdk_pixbuf/gstgdkpixbufplugin.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/ext/gdk_pixbuf/gstgdkpixbufsink.c b/ext/gdk_pixbuf/gstgdkpixbufsink.c
index 5cac8bc5c..5a8305d7d 100644
--- a/ext/gdk_pixbuf/gstgdkpixbufsink.c
+++ b/ext/gdk_pixbuf/gstgdkpixbufsink.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -339,6 +339,16 @@ gst_gdk_pixbuf_sink_handle_buffer (GstBaseSink * basesink, GstBuffer * buf,
   if (do_post) {
     GstStructure *s;
     GstMessage *msg;
+    GstFormat format;
+    GstClockTime timestamp;
+    GstClockTime running_time, stream_time;
+
+    GstSegment *segment = &basesink->segment;
+    format = segment->format;
+
+    timestamp = GST_BUFFER_PTS (buf);
+    running_time = gst_segment_to_running_time (segment, format, timestamp);
+    stream_time = gst_segment_to_stream_time (segment, format, timestamp);
 
     /* it's okay to keep using pixbuf here, we can be sure no one is going to
      * unref or change sink->last_pixbuf before we return from this function.
@@ -346,7 +356,9 @@ gst_gdk_pixbuf_sink_handle_buffer (GstBaseSink * basesink, GstBuffer * buf,
     s = gst_structure_new (msg_name,
         "pixbuf", GDK_TYPE_PIXBUF, pixbuf,
         "pixel-aspect-ratio", GST_TYPE_FRACTION, sink->par_n, sink->par_d,
-        NULL);
+        "timestamp", G_TYPE_UINT64, timestamp,
+        "stream-time", G_TYPE_UINT64, stream_time,
+        "running-time", G_TYPE_UINT64, running_time, NULL);
 
     msg = gst_message_new_element (GST_OBJECT_CAST (sink), s);
     gst_element_post_message (GST_ELEMENT_CAST (sink), msg);
diff --git a/ext/gdk_pixbuf/gstgdkpixbufsink.h b/ext/gdk_pixbuf/gstgdkpixbufsink.h
index f42436eaf..964437aa1 100644
--- a/ext/gdk_pixbuf/gstgdkpixbufsink.h
+++ b/ext/gdk_pixbuf/gstgdkpixbufsink.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef GST_GDK_PIXBUF_SINK_H
diff --git a/ext/jack/Makefile.in b/ext/jack/Makefile.in
index ecf259e42..6c829589c 100644
--- a/ext/jack/Makefile.in
+++ b/ext/jack/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/jack
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -138,10 +164,23 @@ libgstjack_la_OBJECTS = $(am_libgstjack_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstjack_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstjack_la_CFLAGS) $(CFLAGS) \
 	$(libgstjack_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -154,20 +193,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstjack_la_SOURCES)
 DIST_SOURCES = $(libgstjack_la_SOURCES)
 am__can_run_installinfo = \
@@ -176,6 +211,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -344,6 +396,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -545,6 +598,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -571,12 +625,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstjack.la: $(libgstjack_la_OBJECTS) $(libgstjack_la_DEPENDENCIES) $(EXTRA_libgstjack_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstjack_la_LINK) -rpath $(plugindir) $(libgstjack_la_OBJECTS) $(libgstjack_la_LIBADD) $(LIBS)
 
@@ -654,26 +711,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -685,15 +731,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -702,6 +744,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -846,19 +903,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/jack/gstjack.c b/ext/jack/gstjack.c
index 8cbed1200..ca98dc405 100644
--- a/ext/jack/gstjack.c
+++ b/ext/jack/gstjack.c
@@ -13,14 +13,15 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 
+#include "gstjack.h"
 #include "gstjackaudiosrc.h"
 #include "gstjackaudiosink.h"
 
diff --git a/ext/jack/gstjack.h b/ext/jack/gstjack.h
index 1291bc7e7..15b040e8a 100644
--- a/ext/jack/gstjack.h
+++ b/ext/jack/gstjack.h
@@ -15,13 +15,15 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _GST_JACK_H_
 #define _GST_JACK_H_
 
+#include <jack/jack.h>
+#include <gst/audio/audio.h>
 
 /**
  * GstJackConnect:
diff --git a/ext/jack/gstjackaudioclient.c b/ext/jack/gstjackaudioclient.c
index f7f6be6c1..525b1c5be 100644
--- a/ext/jack/gstjackaudioclient.c
+++ b/ext/jack/gstjackaudioclient.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <string.h>
diff --git a/ext/jack/gstjackaudioclient.h b/ext/jack/gstjackaudioclient.h
index f2669c9f8..5dcd70c31 100644
--- a/ext/jack/gstjackaudioclient.h
+++ b/ext/jack/gstjackaudioclient.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_JACK_AUDIO_CLIENT_H__
diff --git a/ext/jack/gstjackaudiosink.c b/ext/jack/gstjackaudiosink.c
index 103db4ed4..e33ed1813 100644
--- a/ext/jack/gstjackaudiosink.c
+++ b/ext/jack/gstjackaudiosink.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -62,6 +62,7 @@
 #include <gst/gst-i18n-plugin.h>
 #include <stdlib.h>
 #include <string.h>
+#include <gst/audio/audio.h>
 
 #include "gstjackaudiosink.h"
 #include "gstjackringbuffer.h"
diff --git a/ext/jack/gstjackaudiosink.h b/ext/jack/gstjackaudiosink.h
index e8b28903a..b2377c43f 100644
--- a/ext/jack/gstjackaudiosink.h
+++ b/ext/jack/gstjackaudiosink.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_JACK_AUDIO_SINK_H__
diff --git a/ext/jack/gstjackaudiosrc.c b/ext/jack/gstjackaudiosrc.c
index d21bc048d..eb5951a89 100644
--- a/ext/jack/gstjackaudiosrc.c
+++ b/ext/jack/gstjackaudiosrc.c
@@ -36,8 +36,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -82,6 +82,8 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include <gst/audio/audio.h>
+
 #include "gstjackaudiosrc.h"
 #include "gstjackringbuffer.h"
 #include "gstjackutil.h"
diff --git a/ext/jack/gstjackaudiosrc.h b/ext/jack/gstjackaudiosrc.h
index 20d78aeef..97c289145 100644
--- a/ext/jack/gstjackaudiosrc.h
+++ b/ext/jack/gstjackaudiosrc.h
@@ -36,8 +36,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_JACK_AUDIO_SRC_H__
diff --git a/ext/jack/gstjackringbuffer.h b/ext/jack/gstjackringbuffer.h
index 9705ef059..94de4b8bb 100644
--- a/ext/jack/gstjackringbuffer.h
+++ b/ext/jack/gstjackringbuffer.h
@@ -38,8 +38,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_JACK_RING_BUFFER_H__
diff --git a/ext/jack/gstjackutil.c b/ext/jack/gstjackutil.c
index e21d00415..490e14a2b 100644
--- a/ext/jack/gstjackutil.c
+++ b/ext/jack/gstjackutil.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "gstjackutil.h"
diff --git a/ext/jack/gstjackutil.h b/ext/jack/gstjackutil.h
index b3704cacb..7a4bcc500 100644
--- a/ext/jack/gstjackutil.h
+++ b/ext/jack/gstjackutil.h
@@ -15,15 +15,15 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _GST_JACK_UTIL_H_
 #define _GST_JACK_UTIL_H_
 
 #include <gst/gst.h>
-#include <gst/audio/gstaudioringbuffer.h>
+#include <gst/audio/audio.h>
 
 void
 gst_jack_set_layout (GstAudioRingBuffer * buffer, GstAudioRingBufferSpec *spec);
diff --git a/ext/jpeg/Makefile.in b/ext/jpeg/Makefile.in
index 6ffb80d83..01b1c596b 100644
--- a/ext/jpeg/Makefile.in
+++ b/ext/jpeg/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/jpeg
-DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 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-gcc-inline-assembly.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 \
@@ -137,10 +163,23 @@ libgstjpeg_la_OBJECTS = $(am_libgstjpeg_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstjpeg_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstjpeg_la_CFLAGS) $(CFLAGS) \
 	$(libgstjpeg_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -153,20 +192,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstjpeg_la_SOURCES)
 DIST_SOURCES = $(libgstjpeg_la_SOURCES)
 am__can_run_installinfo = \
@@ -175,6 +210,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -343,6 +395,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -554,6 +607,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -580,12 +634,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstjpeg.la: $(libgstjpeg_la_OBJECTS) $(libgstjpeg_la_DEPENDENCIES) $(EXTRA_libgstjpeg_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstjpeg_la_LINK) -rpath $(plugindir) $(libgstjpeg_la_OBJECTS) $(libgstjpeg_la_LIBADD) $(LIBS)
 
@@ -647,26 +704,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -678,15 +724,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -695,6 +737,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -839,19 +896,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 # deprecated gstsmokeenc.h gstsmokedec.h smokecodec.h smokeformat.h
 
diff --git a/ext/jpeg/gstjpeg.c b/ext/jpeg/gstjpeg.c
index 394c079f7..9ecdd5dc2 100644
--- a/ext/jpeg/gstjpeg.c
+++ b/ext/jpeg/gstjpeg.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifdef HAVE_CONFIG_H
 #include <config.h>
diff --git a/ext/jpeg/gstjpeg.h b/ext/jpeg/gstjpeg.h
index 8b2019934..afa30a2b5 100644
--- a/ext/jpeg/gstjpeg.h
+++ b/ext/jpeg/gstjpeg.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/jpeg/gstjpegdec.c b/ext/jpeg/gstjpegdec.c
index ea5f1e250..b96ef9466 100644
--- a/ext/jpeg/gstjpegdec.c
+++ b/ext/jpeg/gstjpegdec.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -1406,7 +1406,7 @@ gst_jpeg_dec_start (GstVideoDecoder * bdec)
   dec->parse_entropy_len = 0;
   dec->parse_resync = FALSE;
 
-  gst_video_decoder_set_packetized (dec, FALSE);
+  gst_video_decoder_set_packetized (bdec, FALSE);
 
   return TRUE;
 }
diff --git a/ext/jpeg/gstjpegdec.h b/ext/jpeg/gstjpegdec.h
index f9f33ae5b..d2425e587 100644
--- a/ext/jpeg/gstjpegdec.h
+++ b/ext/jpeg/gstjpegdec.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/jpeg/gstjpegenc.c b/ext/jpeg/gstjpegenc.c
index 9edfb5553..15d01e71a 100644
--- a/ext/jpeg/gstjpegenc.c
+++ b/ext/jpeg/gstjpegenc.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-jpegenc
@@ -41,7 +41,7 @@
 #include "gstjpeg.h"
 #include <gst/video/video.h>
 #include <gst/video/gstvideometa.h>
-#include <gst/base/gstbytereader.h>
+#include <gst/base/base.h>
 
 /* experimental */
 /* setting smoothig seems to have no effect in libjepeg
diff --git a/ext/jpeg/gstjpegenc.h b/ext/jpeg/gstjpegenc.h
index b8f2ca812..7c636d358 100644
--- a/ext/jpeg/gstjpegenc.h
+++ b/ext/jpeg/gstjpegenc.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/libcaca/Makefile.in b/ext/libcaca/Makefile.in
index bb976a62f..e92fff665 100644
--- a/ext/libcaca/Makefile.in
+++ b/ext/libcaca/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/libcaca
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -136,10 +162,23 @@ libgstcacasink_la_OBJECTS = $(am_libgstcacasink_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstcacasink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstcacasink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstcacasink_la_CFLAGS) $(CFLAGS) \
 	$(libgstcacasink_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -152,20 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstcacasink_la_SOURCES)
 DIST_SOURCES = $(libgstcacasink_la_SOURCES)
 am__can_run_installinfo = \
@@ -174,6 +209,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -342,6 +394,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -554,6 +607,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -580,12 +634,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstcacasink.la: $(libgstcacasink_la_OBJECTS) $(libgstcacasink_la_DEPENDENCIES) $(EXTRA_libgstcacasink_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstcacasink_la_LINK) -rpath $(plugindir) $(libgstcacasink_la_OBJECTS) $(libgstcacasink_la_LIBADD) $(LIBS)
 
@@ -631,26 +688,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -662,15 +708,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -679,6 +721,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -823,19 +880,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/libcaca/gstcacasink.c b/ext/libcaca/gstcacasink.c
index e7a8e0273..0f46280e1 100644
--- a/ext/libcaca/gstcacasink.c
+++ b/ext/libcaca/gstcacasink.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-cacasink
@@ -71,7 +71,8 @@ enum
 static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("{ RGB, RGBx, RGB16, RGB15 }"))
+    GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE
+        ("{ RGB, BGR, RGBx, xRGB, BGRx, xBGR, RGB16, RGB15 }"))
     );
 
 static gboolean gst_cacasink_setcaps (GstBaseSink * pad, GstCaps * caps);
@@ -180,19 +181,17 @@ gst_cacasink_setcaps (GstBaseSink * basesink, GstCaps * caps)
   if (!gst_video_info_from_caps (&info, caps))
     goto caps_error;
 
-
   switch (GST_VIDEO_INFO_FORMAT (&info)) {
     case GST_VIDEO_FORMAT_RGB:
-      bpp = 24;
-      red_mask = 0xff0000;
-      green_mask = 0x00ff00;
-      blue_mask = 0x0000ff;
-      break;
+    case GST_VIDEO_FORMAT_BGR:
     case GST_VIDEO_FORMAT_RGBx:
-      bpp = 32;
-      red_mask = 0xff000000;
-      green_mask = 0x00ff0000;
-      blue_mask = 0x0000ff00;
+    case GST_VIDEO_FORMAT_xRGB:
+    case GST_VIDEO_FORMAT_BGRx:
+    case GST_VIDEO_FORMAT_xBGR:
+      bpp = 8 * info.finfo->pixel_stride[0];
+      red_mask = 0xff << (8 * info.finfo->poffset[GST_VIDEO_COMP_R]);
+      green_mask = 0xff << (8 * info.finfo->poffset[GST_VIDEO_COMP_G]);
+      blue_mask = 0xff << (8 * info.finfo->poffset[GST_VIDEO_COMP_B]);
       break;
     case GST_VIDEO_FORMAT_RGB16:
       bpp = 16;
diff --git a/ext/libcaca/gstcacasink.h b/ext/libcaca/gstcacasink.h
index db041d9be..327a6a8a0 100644
--- a/ext/libcaca/gstcacasink.h
+++ b/ext/libcaca/gstcacasink.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/libpng/Makefile.in b/ext/libpng/Makefile.in
index bfc62aeff..741f9d3c5 100644
--- a/ext/libpng/Makefile.in
+++ b/ext/libpng/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/libpng
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -137,10 +163,23 @@ libgstpng_la_OBJECTS = $(am_libgstpng_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstpng_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstpng_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstpng_la_CFLAGS) $(CFLAGS) \
 	$(libgstpng_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -153,20 +192,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstpng_la_SOURCES)
 DIST_SOURCES = $(libgstpng_la_SOURCES)
 am__can_run_installinfo = \
@@ -175,6 +210,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -343,6 +395,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -546,6 +599,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -572,12 +626,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstpng.la: $(libgstpng_la_OBJECTS) $(libgstpng_la_DEPENDENCIES) $(EXTRA_libgstpng_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstpng_la_LINK) -rpath $(plugindir) $(libgstpng_la_OBJECTS) $(libgstpng_la_LIBADD) $(LIBS)
 
@@ -639,26 +696,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -670,15 +716,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -687,6 +729,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -831,19 +888,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/libpng/gstpng.c b/ext/libpng/gstpng.c
index de063ef87..92ff4798f 100644
--- a/ext/libpng/gstpng.c
+++ b/ext/libpng/gstpng.c
@@ -11,8 +11,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  */
 
diff --git a/ext/libpng/gstpngdec.c b/ext/libpng/gstpngdec.c
index 3d16a9458..2436d9907 100644
--- a/ext/libpng/gstpngdec.c
+++ b/ext/libpng/gstpngdec.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  */
 /**
diff --git a/ext/libpng/gstpngdec.h b/ext/libpng/gstpngdec.h
index 69a4ff67c..d89323aec 100644
--- a/ext/libpng/gstpngdec.h
+++ b/ext/libpng/gstpngdec.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/libpng/gstpngenc.c b/ext/libpng/gstpngenc.c
index 326f4336d..d3ebc49c9 100644
--- a/ext/libpng/gstpngenc.c
+++ b/ext/libpng/gstpngenc.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  */
 /**
@@ -29,11 +29,12 @@
 #endif
 #include <string.h>
 #include <gst/gst.h>
-#include "gstpngenc.h"
 #include <gst/video/video.h>
 #include <gst/video/gstvideometa.h>
 #include <zlib.h>
 
+#include "gstpngenc.h"
+
 GST_DEBUG_CATEGORY_STATIC (pngenc_debug);
 #define GST_CAT_DEFAULT pngenc_debug
 
diff --git a/ext/libpng/gstpngenc.h b/ext/libpng/gstpngenc.h
index 87bee9281..e71d97c54 100644
--- a/ext/libpng/gstpngenc.h
+++ b/ext/libpng/gstpngenc.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/pulse/Makefile.in b/ext/pulse/Makefile.in
index b1ddb6e48..910d45063 100644
--- a/ext/pulse/Makefile.in
+++ b/ext/pulse/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/pulse
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -138,10 +164,23 @@ libgstpulse_la_OBJECTS = $(am_libgstpulse_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstpulse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstpulse_la_CFLAGS) $(CFLAGS) \
 	$(libgstpulse_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -154,20 +193,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstpulse_la_SOURCES)
 DIST_SOURCES = $(libgstpulse_la_SOURCES)
 am__can_run_installinfo = \
@@ -176,6 +211,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -344,6 +396,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -559,6 +612,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -585,12 +639,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstpulse.la: $(libgstpulse_la_OBJECTS) $(libgstpulse_la_DEPENDENCIES) $(EXTRA_libgstpulse_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstpulse_la_LINK) -rpath $(plugindir) $(libgstpulse_la_OBJECTS) $(libgstpulse_la_LIBADD) $(LIBS)
 
@@ -668,26 +725,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -699,15 +745,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -716,6 +758,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -860,19 +917,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/pulse/plugin.c b/ext/pulse/plugin.c
index 5903a5ebe..505743b24 100644
--- a/ext/pulse/plugin.c
+++ b/ext/pulse/plugin.c
@@ -15,7 +15,7 @@
  *
  *  You should have received a copy of the GNU Lesser General Public
  *  License along with gst-pulse; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
  *  USA.
  */
 
diff --git a/ext/pulse/pulseprobe.c b/ext/pulse/pulseprobe.c
index 06e098622..3496394c7 100644
--- a/ext/pulse/pulseprobe.c
+++ b/ext/pulse/pulseprobe.c
@@ -17,7 +17,7 @@
  *
  *  You should have received a copy of the GNU Lesser General Public
  *  License along with gst-pulse; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
  *  USA.
  */
 
@@ -29,6 +29,8 @@
 #include "config.h"
 #endif
 
+#include <gst/audio/audio.h>
+
 #include "pulseprobe.h"
 #include "pulseutil.h"
 
diff --git a/ext/pulse/pulseprobe.h b/ext/pulse/pulseprobe.h
index 716f5edec..6e9b23623 100644
--- a/ext/pulse/pulseprobe.h
+++ b/ext/pulse/pulseprobe.h
@@ -17,7 +17,7 @@
  *
  *  You should have received a copy of the GNU Lesser General Public
  *  License along with gst-pulse; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
  *  USA.
  */
 
diff --git a/ext/pulse/pulsesink.c b/ext/pulse/pulsesink.c
index 4a027104e..cd257d61c 100644
--- a/ext/pulse/pulsesink.c
+++ b/ext/pulse/pulsesink.c
@@ -17,7 +17,7 @@
  *
  *  You should have received a copy of the GNU Lesser General Public
  *  License along with gst-pulse; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
  *  USA.
  */
 
@@ -52,9 +52,8 @@
 
 #include <gst/base/gstbasesink.h>
 #include <gst/gsttaglist.h>
-#include <gst/audio/streamvolume.h>
+#include <gst/audio/audio.h>
 #include <gst/gst-i18n-plugin.h>
-#include <gst/audio/gstaudioiec61937.h>
 
 #include <gst/pbutils/pbutils.h>        /* only used for GST_PLUGINS_BASE_VERSION_* */
 
@@ -140,6 +139,7 @@ struct _GstPulseRingBuffer
 
   pa_context *context;
   pa_stream *stream;
+  pa_stream *probe_stream;
 
   pa_format_info *format;
   guint channels;
@@ -226,6 +226,7 @@ gst_pulseringbuffer_init (GstPulseRingBuffer * pbuf)
   pbuf->stream_name = NULL;
   pbuf->context = NULL;
   pbuf->stream = NULL;
+  pbuf->probe_stream = NULL;
 
   pbuf->format = NULL;
   pbuf->channels = 0;
@@ -242,9 +243,32 @@ gst_pulseringbuffer_init (GstPulseRingBuffer * pbuf)
   pbuf->paused = FALSE;
 }
 
+/* Call with mainloop lock held if wait == TRUE) */
+static void
+gst_pulse_destroy_stream (pa_stream * stream, gboolean wait)
+{
+  /* Make sure we don't get any further callbacks */
+  pa_stream_set_write_callback (stream, NULL, NULL);
+  pa_stream_set_underflow_callback (stream, NULL, NULL);
+  pa_stream_set_overflow_callback (stream, NULL, NULL);
+
+  pa_stream_disconnect (stream);
+
+  if (wait)
+    pa_threaded_mainloop_wait (mainloop);
+
+  pa_stream_set_state_callback (stream, NULL, NULL);
+  pa_stream_unref (stream);
+}
+
 static void
 gst_pulsering_destroy_stream (GstPulseRingBuffer * pbuf)
 {
+  if (pbuf->probe_stream) {
+    gst_pulse_destroy_stream (pbuf->probe_stream, FALSE);
+    pbuf->probe_stream = NULL;
+  }
+
   if (pbuf->stream) {
 
     if (pbuf->m_data) {
@@ -532,6 +556,11 @@ gst_pulseringbuffer_open_device (GstAudioRingBuffer * buf)
     pa_threaded_mainloop_wait (mainloop);
   }
 
+  if (pa_context_get_server_protocol_version (pbuf->context) < 22) {
+    /* We need PulseAudio >= 1.0 on the server side for the extended API */
+    goto bad_server_version;
+  }
+
   GST_LOG_OBJECT (psink, "opened the device");
 
   pa_threaded_mainloop_unlock (mainloop);
@@ -560,6 +589,12 @@ connect_failed:
             pa_strerror (pa_context_errno (pctx->context))), (NULL));
     goto unlock_and_fail;
   }
+bad_server_version:
+  {
+    GST_ELEMENT_ERROR (psink, RESOURCE, FAILED, ("PulseAudio server version "
+            "is too old."), (NULL));
+    goto unlock_and_fail;
+  }
 }
 
 /* close the device */
@@ -658,6 +693,7 @@ gst_pulsering_stream_latency_cb (pa_stream * s, void *userdata)
 {
   GstPulseSink *psink;
   GstPulseRingBuffer *pbuf;
+  GstAudioRingBuffer *ringbuf;
   const pa_timing_info *info;
   pa_usec_t sink_usec;
 
@@ -665,11 +701,26 @@ gst_pulsering_stream_latency_cb (pa_stream * s, void *userdata)
 
   pbuf = GST_PULSERING_BUFFER_CAST (userdata);
   psink = GST_PULSESINK_CAST (GST_OBJECT_PARENT (pbuf));
+  ringbuf = GST_AUDIO_RING_BUFFER (pbuf);
 
   if (!info) {
     GST_LOG_OBJECT (psink, "latency update (information unknown)");
     return;
   }
+
+  if (!info->read_index_corrupt) {
+    /* Update segdone based on the read index. segdone is of segment
+     * granularity, while the read index is at byte granularity. We take the
+     * ceiling while converting the latter to the former since it is more
+     * conservative to report that we've read more than we have than to report
+     * less. One concern here is that latency updates happen every 100ms, which
+     * means segdone is not updated very often, but increasing the update
+     * frequency would mean more communication overhead. */
+    g_atomic_int_set (&ringbuf->segdone,
+        (int) gst_util_uint64_scale_ceil (info->read_index, 1,
+            ringbuf->spec.segsize));
+  }
+
   sink_usec = info->configured_sink_usec;
 
   GST_LOG_OBJECT (psink,
@@ -831,6 +882,13 @@ gst_pulseringbuffer_acquire (GstAudioRingBuffer * buf,
   g_assert (pbuf->context);
   g_assert (!pbuf->stream);
 
+  /* if we have a probe, disconnect it first so that if we're creating a
+   * compressed stream, it doesn't get blocked by a PCM stream */
+  if (pbuf->probe_stream) {
+    gst_pulse_destroy_stream (pbuf->probe_stream, TRUE);
+    pbuf->probe_stream = NULL;
+  }
+
   /* enable event notifications */
   GST_LOG_OBJECT (psink, "subscribing to context events");
   if (!(o = pa_context_subscribe (pbuf->context,
@@ -1109,13 +1167,13 @@ mainloop_enter_defer_cb (pa_mainloop_api * api, void *userdata)
   GstMessage *message;
   GValue val = { 0 };
 
-  g_value_init (&val, G_TYPE_POINTER);
-  g_value_set_pointer (&val, g_thread_self ());
-
   GST_DEBUG_OBJECT (pulsesink, "posting ENTER stream status");
   message = gst_message_new_stream_status (GST_OBJECT (pulsesink),
       GST_STREAM_STATUS_TYPE_ENTER, GST_ELEMENT (pulsesink));
+  g_value_init (&val, GST_TYPE_G_THREAD);
+  g_value_set_boxed (&val, g_thread_self ());
   gst_message_set_stream_status_object (message, &val);
+  g_value_unset (&val);
 
   gst_element_post_message (GST_ELEMENT (pulsesink), message);
 
@@ -1188,13 +1246,14 @@ mainloop_leave_defer_cb (pa_mainloop_api * api, void *userdata)
   GstMessage *message;
   GValue val = { 0 };
 
-  g_value_init (&val, G_TYPE_POINTER);
-  g_value_set_pointer (&val, g_thread_self ());
-
   GST_DEBUG_OBJECT (pulsesink, "posting LEAVE stream status");
   message = gst_message_new_stream_status (GST_OBJECT (pulsesink),
       GST_STREAM_STATUS_TYPE_LEAVE, GST_ELEMENT (pulsesink));
+  g_value_init (&val, GST_TYPE_G_THREAD);
+  g_value_set_boxed (&val, g_thread_self ());
   gst_message_set_stream_status_object (message, &val);
+  g_value_unset (&val);
+
   gst_element_post_message (GST_ELEMENT (pulsesink), message);
 
   g_return_if_fail (pulsesink->defer_pending);
@@ -1873,7 +1932,22 @@ gst_pulsesink_class_init (GstPulseSinkClass * klass)
       gst_static_pad_template_get (&pad_template));
 }
 
-/* returns the current time of the sink ringbuffer */
+static void
+free_device_info (GstPulseDeviceInfo * device_info)
+{
+  GList *l;
+
+  g_free (device_info->description);
+
+  for (l = g_list_first (device_info->formats); l; l = g_list_next (l))
+    pa_format_info_free ((pa_format_info *) l->data);
+
+  g_list_free (device_info->formats);
+}
+
+/* Returns the current time of the sink ringbuffer. The timing_info is updated
+ * on every data write/flush and every 100ms (PA_STREAM_AUTO_TIMING_UPDATE).
+ */
 static GstClockTime
 gst_pulsesink_get_time (GstClock * clock, GstAudioBaseSink * sink)
 {
@@ -1925,56 +1999,299 @@ static void
 gst_pulsesink_sink_info_cb (pa_context * c, const pa_sink_info * i, int eol,
     void *userdata)
 {
-  GstPulseRingBuffer *pbuf;
-  GstPulseSink *psink;
-  GList *l;
+  GstPulseDeviceInfo *device_info = (GstPulseDeviceInfo *) userdata;
   guint8 j;
 
-  pbuf = GST_PULSERING_BUFFER_CAST (userdata);
-  psink = GST_PULSESINK_CAST (GST_OBJECT_PARENT (pbuf));
-
   if (!i)
     goto done;
 
-  g_free (psink->device_description);
-  psink->device_description = g_strdup (i->description);
-
-  g_mutex_lock (&psink->sink_formats_lock);
-
-  for (l = g_list_first (psink->sink_formats); l; l = g_list_next (l))
-    pa_format_info_free ((pa_format_info *) l->data);
-
-  g_list_free (psink->sink_formats);
-  psink->sink_formats = NULL;
+  device_info->description = g_strdup (i->description);
 
+  device_info->formats = NULL;
   for (j = 0; j < i->n_formats; j++)
-    psink->sink_formats = g_list_prepend (psink->sink_formats,
+    device_info->formats = g_list_prepend (device_info->formats,
         pa_format_info_copy (i->formats[j]));
 
-  g_mutex_unlock (&psink->sink_formats_lock);
-
 done:
   pa_threaded_mainloop_signal (mainloop, 0);
 }
 
+static gboolean
+gst_pulse_format_info_int_prop_to_value (pa_format_info * format,
+    const char *key, GValue * value)
+{
+  GValue v = { 0, };
+  int i;
+  int *a, n;
+  int min, max;
+
+  if (pa_format_info_get_prop_int (format, key, &i) == 0) {
+    g_value_init (value, G_TYPE_INT);
+    g_value_set_int (value, i);
+
+  } else if (pa_format_info_get_prop_int_array (format, key, &a, &n) == 0) {
+    g_value_init (value, GST_TYPE_LIST);
+    g_value_init (&v, G_TYPE_INT);
+
+    for (i = 0; i < n; i++) {
+      g_value_set_int (&v, a[i]);
+      gst_value_list_append_value (value, &v);
+    }
+
+    pa_xfree (a);
+
+  } else if (pa_format_info_get_prop_int_range (format, key, &min, &max) == 0) {
+    g_value_init (value, GST_TYPE_INT_RANGE);
+    gst_value_set_int_range (value, min, max);
+
+  } else {
+    /* Property not available or is not an int type */
+    return FALSE;
+  }
+
+  return TRUE;
+}
+
+static GstCaps *
+gst_pulse_format_info_to_caps (pa_format_info * format)
+{
+  GstCaps *ret = NULL;
+  GValue v = { 0, };
+  pa_sample_spec ss;
+
+  switch (format->encoding) {
+    case PA_ENCODING_PCM:{
+      char *tmp = NULL;
+
+      pa_format_info_to_sample_spec (format, &ss, NULL);
+
+      if (pa_format_info_get_prop_string (format,
+              PA_PROP_FORMAT_SAMPLE_FORMAT, &tmp)) {
+        /* No specific sample format means any sample format */
+        ret = gst_caps_from_string (_PULSE_SINK_CAPS_PCM);
+        goto out;
+
+      } else if (ss.format == PA_SAMPLE_ALAW) {
+        ret = gst_caps_from_string (_PULSE_SINK_CAPS_ALAW);
+
+      } else if (ss.format == PA_SAMPLE_ULAW) {
+        ret = gst_caps_from_string (_PULSE_SINK_CAPS_MP3);
+
+      } else {
+        /* Linear PCM format */
+        const char *sformat =
+            gst_pulse_sample_format_to_caps_format (ss.format);
+
+        ret = gst_caps_from_string (_PULSE_SINK_CAPS_LINEAR);
+
+        if (sformat)
+          gst_caps_set_simple (ret, "format", G_TYPE_STRING, NULL);
+      }
+
+      pa_xfree (tmp);
+      break;
+    }
+
+    case PA_ENCODING_AC3_IEC61937:
+      ret = gst_caps_from_string (_PULSE_SINK_CAPS_AC3);
+      break;
+
+    case PA_ENCODING_EAC3_IEC61937:
+      ret = gst_caps_from_string (_PULSE_SINK_CAPS_EAC3);
+      break;
+
+    case PA_ENCODING_DTS_IEC61937:
+      ret = gst_caps_from_string (_PULSE_SINK_CAPS_DTS);
+      break;
+
+    case PA_ENCODING_MPEG_IEC61937:
+      ret = gst_caps_from_string (_PULSE_SINK_CAPS_MP3);
+      break;
+
+    default:
+      GST_WARNING ("Found a PA format that we don't support yet");
+      goto out;
+  }
+
+  if (gst_pulse_format_info_int_prop_to_value (format, PA_PROP_FORMAT_RATE, &v))
+    gst_caps_set_value (ret, "rate", &v);
+
+  g_value_unset (&v);
+
+  if (gst_pulse_format_info_int_prop_to_value (format, PA_PROP_FORMAT_CHANNELS,
+          &v))
+    gst_caps_set_value (ret, "channels", &v);
+
+out:
+  return ret;
+}
+
+/* Call with mainloop lock held */
+static pa_stream *
+gst_pulsesink_create_probe_stream (GstPulseSink * psink,
+    GstPulseRingBuffer * pbuf, pa_format_info * format)
+{
+  pa_format_info *formats[1] = { format };
+  pa_stream *stream;
+  pa_stream_flags_t flags;
+
+  GST_LOG_OBJECT (psink, "Creating probe stream");
+
+  if (!(stream = pa_stream_new_extended (pbuf->context, "pulsesink probe",
+              formats, 1, psink->proplist)))
+    goto error;
+
+  /* construct the flags */
+  flags = PA_STREAM_INTERPOLATE_TIMING | PA_STREAM_AUTO_TIMING_UPDATE |
+      PA_STREAM_ADJUST_LATENCY | PA_STREAM_START_CORKED;
+
+  pa_stream_set_state_callback (stream, gst_pulsering_stream_state_cb, pbuf);
+
+  if (pa_stream_connect_playback (stream, psink->device, NULL, flags, NULL,
+          NULL) < 0)
+    goto error;
+
+  if (!gst_pulsering_wait_for_stream_ready (psink, stream))
+    goto error;
+
+  return stream;
+
+error:
+  if (stream)
+    pa_stream_unref (stream);
+  return NULL;
+}
+
+static GstCaps *
+gst_pulsesink_query_getcaps (GstPulseSink * psink, GstCaps * filter)
+{
+  GstPulseRingBuffer *pbuf = NULL;
+  GstPulseDeviceInfo device_info = { NULL, NULL };
+  GstCaps *ret = NULL;
+  GList *i;
+  pa_operation *o = NULL;
+  pa_stream *stream;
+
+  GST_OBJECT_LOCK (psink);
+  pbuf = GST_PULSERING_BUFFER_CAST (GST_AUDIO_BASE_SINK (psink)->ringbuffer);
+  if (pbuf != NULL)
+    gst_object_ref (pbuf);
+  GST_OBJECT_UNLOCK (psink);
+
+  if (!pbuf) {
+    ret = gst_pad_get_pad_template_caps (GST_AUDIO_BASE_SINK_PAD (psink));
+    goto out;
+  }
+
+  GST_OBJECT_LOCK (pbuf);
+  pa_threaded_mainloop_lock (mainloop);
+
+  if (!pbuf->context) {
+    ret = gst_pad_get_pad_template_caps (GST_AUDIO_BASE_SINK_PAD (psink));
+    goto unlock;
+  }
+
+  if (pbuf->stream) {
+    /* We're in PAUSED or higher */
+    stream = pbuf->stream;
+
+  } else if (pbuf->probe_stream) {
+    /* We're not paused, but have a cached probe stream */
+    stream = pbuf->probe_stream;
+
+  } else {
+    /* We're not yet in PAUSED and still need to create a probe stream.
+     *
+     * FIXME: PA doesn't accept "any" format. We fix something reasonable since
+     * this is merely a probe. This should eventually be fixed in PA and
+     * hard-coding the format should be dropped. */
+    pa_format_info *format = pa_format_info_new ();
+    format->encoding = PA_ENCODING_PCM;
+    pa_format_info_set_sample_format (format, PA_SAMPLE_S16LE);
+    pa_format_info_set_rate (format, GST_AUDIO_DEF_RATE);
+    pa_format_info_set_channels (format, GST_AUDIO_DEF_CHANNELS);
+
+    pbuf->probe_stream = gst_pulsesink_create_probe_stream (psink, pbuf,
+        format);
+    if (!pbuf->probe_stream) {
+      GST_WARNING_OBJECT (psink, "Could not create probe stream");
+      goto unlock;
+    }
+
+    pa_format_info_free (format);
+
+    stream = pbuf->probe_stream;
+  }
+
+  ret = gst_caps_new_empty ();
+
+  if (!(o = pa_context_get_sink_info_by_name (pbuf->context,
+              pa_stream_get_device_name (stream), gst_pulsesink_sink_info_cb,
+              &device_info)))
+    goto info_failed;
+
+  while (pa_operation_get_state (o) == PA_OPERATION_RUNNING) {
+    pa_threaded_mainloop_wait (mainloop);
+    if (gst_pulsering_is_dead (psink, pbuf, FALSE))
+      goto unlock;
+  }
+
+  for (i = g_list_first (device_info.formats); i; i = g_list_next (i)) {
+    gst_caps_append (ret,
+        gst_pulse_format_info_to_caps ((pa_format_info *) i->data));
+  }
+
+  if (filter) {
+    GstCaps *tmp = gst_caps_intersect_full (filter, ret,
+        GST_CAPS_INTERSECT_FIRST);
+    gst_caps_unref (ret);
+    ret = tmp;
+  }
+
+unlock:
+  pa_threaded_mainloop_unlock (mainloop);
+  /* FIXME: this could be freed after device_name is got */
+  GST_OBJECT_UNLOCK (pbuf);
+
+out:
+  free_device_info (&device_info);
+
+  if (o)
+    pa_operation_unref (o);
+
+  if (pbuf)
+    gst_object_unref (pbuf);
+
+  GST_DEBUG_OBJECT (psink, "caps %" GST_PTR_FORMAT, ret);
+
+  return ret;
+
+info_failed:
+  {
+    GST_ELEMENT_ERROR (psink, RESOURCE, FAILED,
+        ("pa_context_get_sink_input_info() failed: %s",
+            pa_strerror (pa_context_errno (pbuf->context))), (NULL));
+    goto unlock;
+  }
+}
+
 static gboolean
 gst_pulsesink_query_acceptcaps (GstPulseSink * psink, GstCaps * caps)
 {
   GstPulseRingBuffer *pbuf = NULL;
+  GstPulseDeviceInfo device_info = { NULL, NULL };
   GstCaps *pad_caps;
   GstStructure *st;
   gboolean ret = FALSE;
 
   GstAudioRingBufferSpec spec = { 0 };
-  pa_stream *stream = NULL;
   pa_operation *o = NULL;
   pa_channel_map channel_map;
-  pa_stream_flags_t flags;
-  pa_format_info *format = NULL, *formats[1];
+  pa_format_info *format = NULL;
   guint channels;
 
-  pad_caps = gst_pad_query_caps (GST_BASE_SINK_PAD (psink), caps);
-  ret = pad_caps != NULL;
+  pad_caps = gst_pad_get_pad_template_caps (GST_BASE_SINK_PAD (psink));
+  ret = gst_caps_is_subset (caps, pad_caps);
   gst_caps_unref (pad_caps);
 
   GST_DEBUG_OBJECT (psink, "caps %" GST_PTR_FORMAT, caps);
@@ -1998,6 +2315,7 @@ gst_pulsesink_query_acceptcaps (GstPulseSink * psink, GstCaps * caps)
   if (pbuf == NULL)
     goto done;
 
+  GST_OBJECT_LOCK (pbuf);
   pa_threaded_mainloop_lock (mainloop);
 
   if (pbuf->context == NULL)
@@ -2028,49 +2346,36 @@ gst_pulsesink_query_acceptcaps (GstPulseSink * psink, GstCaps * caps)
       gst_pulse_gst_to_channel_map (&channel_map, &spec))
     pa_format_info_set_channel_map (format, &channel_map);
 
-  if (pbuf->stream) {
+  if (pbuf->stream || pbuf->probe_stream) {
     /* We're already in PAUSED or above, so just reuse this stream to query
      * sink formats and use those. */
     GList *i;
+    const char *device_name = pa_stream_get_device_name (pbuf->stream ?
+        pbuf->stream : pbuf->probe_stream);
 
-    if (!(o = pa_context_get_sink_info_by_name (pbuf->context, psink->device,
-                gst_pulsesink_sink_info_cb, pbuf)))
+    if (!(o = pa_context_get_sink_info_by_name (pbuf->context, device_name,
+                gst_pulsesink_sink_info_cb, &device_info)))
       goto info_failed;
 
     while (pa_operation_get_state (o) == PA_OPERATION_RUNNING) {
       pa_threaded_mainloop_wait (mainloop);
-      if (gst_pulsering_is_dead (psink, pbuf, TRUE))
+      if (gst_pulsering_is_dead (psink, pbuf, FALSE))
         goto out;
     }
 
-    g_mutex_lock (&psink->sink_formats_lock);
-    for (i = g_list_first (psink->sink_formats); i; i = g_list_next (i)) {
+    for (i = g_list_first (device_info.formats); i; i = g_list_next (i)) {
       if (pa_format_info_is_compatible ((pa_format_info *) i->data, format)) {
         ret = TRUE;
         break;
       }
     }
-    g_mutex_unlock (&psink->sink_formats_lock);
   } else {
     /* We're in READY, let's connect a stream to see if the format is
-     * accpeted by whatever sink we're routed to */
-    formats[0] = format;
-
-    if (!(stream = pa_stream_new_extended (pbuf->context, "pulsesink probe",
-                formats, 1, psink->proplist)))
-      goto out;
-
-    /* construct the flags */
-    flags = PA_STREAM_INTERPOLATE_TIMING | PA_STREAM_AUTO_TIMING_UPDATE |
-        PA_STREAM_ADJUST_LATENCY | PA_STREAM_START_CORKED;
-
-    pa_stream_set_state_callback (stream, gst_pulsering_stream_state_cb, pbuf);
-
-    if (pa_stream_connect_playback (stream, psink->device, NULL, flags, NULL,
-            NULL) < 0)
-      goto out;
-
-    ret = gst_pulsering_wait_for_stream_ready (psink, stream);
+     * accepted by whatever sink we're routed to */
+    pbuf->probe_stream = gst_pulsesink_create_probe_stream (psink, pbuf,
+        format);
+    if (pbuf->probe_stream)
+      ret = TRUE;
   }
 
 out:
@@ -2080,13 +2385,8 @@ out:
   if (o)
     pa_operation_unref (o);
 
-  if (stream) {
-    pa_stream_set_state_callback (stream, NULL, NULL);
-    pa_stream_disconnect (stream);
-    pa_stream_unref (stream);
-  }
-
   pa_threaded_mainloop_unlock (mainloop);
+  GST_OBJECT_UNLOCK (pbuf);
 
   gst_caps_replace (&spec.caps, NULL);
   gst_object_unref (pbuf);
@@ -2109,11 +2409,10 @@ gst_pulsesink_init (GstPulseSink * pulsesink)
 {
   pulsesink->server = NULL;
   pulsesink->device = NULL;
-  pulsesink->device_description = NULL;
+  pulsesink->device_info.description = NULL;
   pulsesink->client_name = gst_pulse_client_name ();
 
-  g_mutex_init (&pulsesink->sink_formats_lock);
-  pulsesink->sink_formats = NULL;
+  pulsesink->device_info.formats = NULL;
 
   pulsesink->volume = DEFAULT_VOLUME;
   pulsesink->volume_set = FALSE;
@@ -2147,18 +2446,12 @@ static void
 gst_pulsesink_finalize (GObject * object)
 {
   GstPulseSink *pulsesink = GST_PULSESINK_CAST (object);
-  GList *i;
 
   g_free (pulsesink->server);
   g_free (pulsesink->device);
-  g_free (pulsesink->device_description);
   g_free (pulsesink->client_name);
 
-  for (i = g_list_first (pulsesink->sink_formats); i; i = g_list_next (i))
-    pa_format_info_free ((pa_format_info *) i->data);
-
-  g_list_free (pulsesink->sink_formats);
-  g_mutex_clear (&pulsesink->sink_formats_lock);
+  free_device_info (&pulsesink->device_info);
 
   if (pulsesink->properties)
     gst_structure_free (pulsesink->properties);
@@ -2492,8 +2785,9 @@ gst_pulsesink_device_description (GstPulseSink * psink)
   if (pbuf == NULL)
     goto no_buffer;
 
+  free_device_info (&psink->device_info);
   if (!(o = pa_context_get_sink_info_by_name (pbuf->context,
-              psink->device, gst_pulsesink_sink_info_cb, pbuf)))
+              psink->device, gst_pulsesink_sink_info_cb, &psink->device_info)))
     goto info_failed;
 
   while (pa_operation_get_state (o) == PA_OPERATION_RUNNING) {
@@ -2506,7 +2800,7 @@ unlock:
   if (o)
     pa_operation_unref (o);
 
-  t = g_strdup (psink->device_description);
+  t = g_strdup (psink->device_info.description);
   pa_threaded_mainloop_unlock (mainloop);
 
   return t;
@@ -2831,6 +3125,21 @@ gst_pulsesink_query (GstBaseSink * sink, GstQuery * query)
   gboolean ret;
 
   switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_CAPS:
+    {
+      GstCaps *caps, *filter;
+
+      gst_query_parse_caps (query, &filter);
+      caps = gst_pulsesink_query_getcaps (pulsesink, filter);
+
+      if (caps) {
+        gst_query_set_caps_result (query, caps);
+        gst_caps_unref (caps);
+        return TRUE;
+      } else {
+        return FALSE;
+      }
+    }
     case GST_QUERY_ACCEPT_CAPS:
     {
       GstCaps *caps;
diff --git a/ext/pulse/pulsesink.h b/ext/pulse/pulsesink.h
index c76c81a9b..9b718406f 100644
--- a/ext/pulse/pulsesink.h
+++ b/ext/pulse/pulsesink.h
@@ -17,7 +17,7 @@
  *
  *  You should have received a copy of the GNU Lesser General Public
  *  License along with gst-pulse; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
  *  USA.
  */
 
@@ -29,6 +29,7 @@
 #endif
 
 #include <gst/gst.h>
+#include <gst/audio/audio.h>
 #include <gst/audio/gstaudiosink.h>
 
 #include <pulse/pulseaudio.h>
@@ -54,12 +55,17 @@ G_BEGIN_DECLS
 typedef struct _GstPulseSink GstPulseSink;
 typedef struct _GstPulseSinkClass GstPulseSinkClass;
 
+typedef struct _GstPulseDeviceInfo {
+  gchar *description;
+  GList *formats;
+} GstPulseDeviceInfo;
+
 struct _GstPulseSink
 {
   GstAudioBaseSink sink;
 
   gchar *server, *device, *stream_name, *client_name;
-  gchar *device_description;
+  GstPulseDeviceInfo device_info;
 
   GstPulseProbe *probe;
 
@@ -77,8 +83,6 @@ struct _GstPulseSink
   GstStructure *properties;
   pa_proplist *proplist;
 
-  GMutex sink_formats_lock;
-  GList *sink_formats;
   volatile gint format_lost;
   GstClockTime format_lost_time;
 };
@@ -98,32 +102,41 @@ GType gst_pulsesink_get_type (void);
                      "S24BE, S24LE, S24_32BE, S24_32LE, U8 }"
 #endif
 
-#define _PULSE_SINK_CAPS_COMMON \
+#define _PULSE_SINK_CAPS_LINEAR \
     "audio/x-raw, " \
       "format = (string) " FORMATS ", " \
       "layout = (string) interleaved, " \
       "rate = (int) [ 1, MAX ], " \
-      "channels = (int) [ 1, 32 ];" \
+      "channels = (int) [ 1, 32 ]; "
+#define _PULSE_SINK_CAPS_ALAW \
     "audio/x-alaw, " \
       "layout = (string) interleaved, " \
       "rate = (int) [ 1, MAX], " \
-      "channels = (int) [ 1, 32 ];" \
+      "channels = (int) [ 1, 32 ]; "
+#define _PULSE_SINK_CAPS_MULAW \
     "audio/x-mulaw, " \
       "layout = (string) interleaved, " \
       "rate = (int) [ 1, MAX], " \
-      "channels = (int) [ 1, 32 ];"
+      "channels = (int) [ 1, 32 ]; "
+
+#define _PULSE_SINK_CAPS_AC3 "audio/x-ac3, framed = (boolean) true; "
+#define _PULSE_SINK_CAPS_EAC3 "audio/x-eac3, framed = (boolean) true; "
+#define _PULSE_SINK_CAPS_DTS "audio/x-dts, framed = (boolean) true, " \
+    "block-size = (int) { 512, 1024, 2048 }; "
+#define _PULSE_SINK_CAPS_MP3 "audio/mpeg, mpegversion = (int) 1, " \
+    "mpegaudioversion = (int) [ 1, 2 ], parsed = (boolean) true;"
 
-#define _PULSE_SINK_CAPS_1_0 \
-    "audio/x-ac3, framed = (boolean) true;" \
-    "audio/x-eac3, framed = (boolean) true; " \
-    "audio/x-dts, framed = (boolean) true, " \
-      "block-size = (int) { 512, 1024, 2048 }; " \
-    "audio/mpeg, mpegversion = (int) 1, " \
-      "mpegaudioversion = (int) [ 1, 2 ], parsed = (boolean) true;"
+#define _PULSE_SINK_CAPS_PCM \
+  _PULSE_SINK_CAPS_LINEAR \
+  _PULSE_SINK_CAPS_ALAW \
+  _PULSE_SINK_CAPS_MULAW
 
 #define PULSE_SINK_TEMPLATE_CAPS \
-  _PULSE_SINK_CAPS_COMMON \
-  _PULSE_SINK_CAPS_1_0
+  _PULSE_SINK_CAPS_PCM \
+  _PULSE_SINK_CAPS_AC3 \
+  _PULSE_SINK_CAPS_EAC3 \
+  _PULSE_SINK_CAPS_DTS \
+  _PULSE_SINK_CAPS_MP3
 
 G_END_DECLS
 
diff --git a/ext/pulse/pulsesrc.c b/ext/pulse/pulsesrc.c
index 12f847dfd..02f64884a 100644
--- a/ext/pulse/pulsesrc.c
+++ b/ext/pulse/pulsesrc.c
@@ -15,7 +15,7 @@
  *
  *  You should have received a copy of the GNU Lesser General Public
  *  License along with gst-pulse; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
  *  USA.
  */
 
@@ -43,7 +43,7 @@
 
 #include <gst/base/gstbasesrc.h>
 #include <gst/gsttaglist.h>
-#include <gst/audio/streamvolume.h>
+#include <gst/audio/audio.h>
 
 #include "pulsesrc.h"
 #include "pulseutil.h"
diff --git a/ext/pulse/pulsesrc.h b/ext/pulse/pulsesrc.h
index 18ba1522c..dcae8b110 100644
--- a/ext/pulse/pulsesrc.h
+++ b/ext/pulse/pulsesrc.h
@@ -17,7 +17,7 @@
  *
  *  You should have received a copy of the GNU Lesser General Public
  *  License along with gst-pulse; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
  *  USA.
  */
 
diff --git a/ext/pulse/pulseutil.c b/ext/pulse/pulseutil.c
index 840929185..a232c6ea3 100644
--- a/ext/pulse/pulseutil.c
+++ b/ext/pulse/pulseutil.c
@@ -15,7 +15,7 @@
  *
  *  You should have received a copy of the GNU Lesser General Public
  *  License along with gst-pulse; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
  *  USA.
  */
 
@@ -23,6 +23,8 @@
 #include "config.h"
 #endif
 
+#include <gst/audio/audio.h>
+
 #include "pulseutil.h"
 
 #ifdef HAVE_UNISTD_H
@@ -189,6 +191,48 @@ fail:
   return FALSE;
 }
 
+const char *
+gst_pulse_sample_format_to_caps_format (pa_sample_format_t sf)
+{
+  switch (sf) {
+    case PA_SAMPLE_U8:
+      return "U8";
+
+    case PA_SAMPLE_S16LE:
+      return "S16LE";
+
+    case PA_SAMPLE_S16BE:
+      return "S16BE";
+
+    case PA_SAMPLE_FLOAT32LE:
+      return "F32LE";
+
+    case PA_SAMPLE_FLOAT32BE:
+      return "F32BE";
+
+    case PA_SAMPLE_S32LE:
+      return "S32LE";
+
+    case PA_SAMPLE_S32BE:
+      return "S32BE";
+
+    case PA_SAMPLE_S24LE:
+      return "S24LE";
+
+    case PA_SAMPLE_S24BE:
+      return "S24BE";
+
+    case PA_SAMPLE_S24_32LE:
+      return "S24_32LE";
+
+    case PA_SAMPLE_S24_32BE:
+      return "S24_32BE";
+
+    default:
+      return NULL;
+  }
+}
+
 /* PATH_MAX is not defined everywhere, e.g. on GNU Hurd */
 #ifndef PATH_MAX
 #define PATH_MAX 4096
diff --git a/ext/pulse/pulseutil.h b/ext/pulse/pulseutil.h
index 8b50fa58a..ecf06c9e3 100644
--- a/ext/pulse/pulseutil.h
+++ b/ext/pulse/pulseutil.h
@@ -15,7 +15,7 @@
  *
  *  You should have received a copy of the GNU Lesser General Public
  *  License along with gst-pulse; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
  *  USA.
  */
 
@@ -35,6 +35,7 @@ gboolean gst_pulse_fill_sample_spec (GstAudioRingBufferSpec * spec,
     pa_sample_spec * ss);
 gboolean gst_pulse_fill_format_info (GstAudioRingBufferSpec * spec,
     pa_format_info ** f, guint * channels);
+const char * gst_pulse_sample_format_to_caps_format (pa_sample_format_t sf);
 
 gchar *gst_pulse_client_name (void);
 
diff --git a/ext/raw1394/Makefile.in b/ext/raw1394/Makefile.in
index 9ccb47cff..9de84fc3a 100644
--- a/ext/raw1394/Makefile.in
+++ b/ext/raw1394/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/raw1394
-DIST_COMMON = $(am__noinst_HEADERS_DIST) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(am__noinst_HEADERS_DIST)
 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-gcc-inline-assembly.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 \
@@ -141,10 +167,23 @@ libgst1394_la_OBJECTS = $(am_libgst1394_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgst1394_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgst1394_la_CFLAGS) $(CFLAGS) \
 	$(libgst1394_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -157,20 +196,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgst1394_la_SOURCES)
 DIST_SOURCES = $(am__libgst1394_la_SOURCES_DIST)
 am__can_run_installinfo = \
@@ -181,6 +216,23 @@ am__can_run_installinfo = \
 am__noinst_HEADERS_DIST = gstdv1394src.h gst1394probe.h \
 	gsthdv1394src.h gst1394clock.h
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -349,6 +401,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -569,6 +622,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -595,12 +649,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgst1394.la: $(libgst1394_la_OBJECTS) $(libgst1394_la_DEPENDENCIES) $(EXTRA_libgst1394_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgst1394_la_LINK) -rpath $(plugindir) $(libgst1394_la_OBJECTS) $(libgst1394_la_LIBADD) $(LIBS)
 
@@ -678,26 +735,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -709,15 +755,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -726,6 +768,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -870,19 +927,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/raw1394/gst1394.c b/ext/raw1394/gst1394.c
index b74c64407..77a9e9393 100644
--- a/ext/raw1394/gst1394.c
+++ b/ext/raw1394/gst1394.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/raw1394/gst1394clock.c b/ext/raw1394/gst1394clock.c
index 0505c8cb1..977ba00b3 100644
--- a/ext/raw1394/gst1394clock.c
+++ b/ext/raw1394/gst1394clock.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -97,7 +97,8 @@ Gst1394Clock *
 gst_1394_clock_new (const gchar * name)
 {
   Gst1394Clock *_1394clock =
-      GST_1394_CLOCK (g_object_new (GST_TYPE_1394_CLOCK, "name", name, NULL));
+      GST_1394_CLOCK (g_object_new (GST_TYPE_1394_CLOCK, "name", name,
+          "clock-type", GST_CLOCK_TYPE_OTHER, NULL));
 
   return _1394clock;
 }
diff --git a/ext/raw1394/gst1394clock.h b/ext/raw1394/gst1394clock.h
index ab7594d07..411251e2d 100644
--- a/ext/raw1394/gst1394clock.h
+++ b/ext/raw1394/gst1394clock.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_1394_CLOCK_H__
diff --git a/ext/raw1394/gst1394probe.c b/ext/raw1394/gst1394probe.c
index 1118aad54..2d11a01c1 100644
--- a/ext/raw1394/gst1394probe.c
+++ b/ext/raw1394/gst1394probe.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <libavc1394/avc1394.h>
diff --git a/ext/raw1394/gst1394probe.h b/ext/raw1394/gst1394probe.h
index 85af8d306..54a323266 100644
--- a/ext/raw1394/gst1394probe.h
+++ b/ext/raw1394/gst1394probe.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef GST_1394_PROBE_H
diff --git a/ext/raw1394/gstdv1394src.c b/ext/raw1394/gstdv1394src.c
index af2c15326..b9e3232d8 100644
--- a/ext/raw1394/gstdv1394src.c
+++ b/ext/raw1394/gstdv1394src.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-dv1394src
diff --git a/ext/raw1394/gstdv1394src.h b/ext/raw1394/gstdv1394src.h
index bf9a3e071..e2f330817 100644
--- a/ext/raw1394/gstdv1394src.h
+++ b/ext/raw1394/gstdv1394src.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/raw1394/gsthdv1394src.c b/ext/raw1394/gsthdv1394src.c
index 7106a89fc..0bfa485c5 100644
--- a/ext/raw1394/gsthdv1394src.c
+++ b/ext/raw1394/gsthdv1394src.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-hdv1394src
diff --git a/ext/raw1394/gsthdv1394src.h b/ext/raw1394/gsthdv1394src.h
index a6014a478..6ae863c89 100644
--- a/ext/raw1394/gsthdv1394src.h
+++ b/ext/raw1394/gsthdv1394src.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/shout2/Makefile.in b/ext/shout2/Makefile.in
index d271d8cea..e19528765 100644
--- a/ext/shout2/Makefile.in
+++ b/ext/shout2/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/shout2
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -135,10 +161,23 @@ libgstshout2_la_OBJECTS = $(am_libgstshout2_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstshout2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstshout2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstshout2_la_CFLAGS) $(CFLAGS) \
 	$(libgstshout2_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstshout2_la_SOURCES)
 DIST_SOURCES = $(libgstshout2_la_SOURCES)
 am__can_run_installinfo = \
@@ -173,6 +208,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -341,6 +393,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -542,6 +595,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -568,12 +622,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstshout2.la: $(libgstshout2_la_OBJECTS) $(libgstshout2_la_DEPENDENCIES) $(EXTRA_libgstshout2_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstshout2_la_LINK) -rpath $(plugindir) $(libgstshout2_la_OBJECTS) $(libgstshout2_la_LIBADD) $(LIBS)
 
@@ -619,26 +676,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -650,15 +696,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -667,6 +709,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -811,19 +868,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/shout2/gstshout2.c b/ext/shout2/gstshout2.c
index 72541b04c..ee6a6bacc 100644
--- a/ext/shout2/gstshout2.c
+++ b/ext/shout2/gstshout2.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/ext/shout2/gstshout2.h b/ext/shout2/gstshout2.h
index 1e3cd5bd1..eb7b2d933 100644
--- a/ext/shout2/gstshout2.h
+++ b/ext/shout2/gstshout2.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/soup/Makefile.am b/ext/soup/Makefile.am
index a1c9985a4..e34fe8786 100644
--- a/ext/soup/Makefile.am
+++ b/ext/soup/Makefile.am
@@ -2,7 +2,10 @@ plugin_LTLIBRARIES = libgstsouphttpsrc.la
 
 libgstsouphttpsrc_la_SOURCES = gstsouphttpsrc.c gstsouphttpclientsink.c gstsoup.c
 
-libgstsouphttpsrc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(SOUP_CFLAGS) 
+libgstsouphttpsrc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \
+	$(GST_CFLAGS) $(SOUP_CFLAGS) \
+	-DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_2_26 \
+	-DSOUP_VERSION_MAX_ALLOWED=SOUP_DEPRECATED_IN_2_26
 libgstsouphttpsrc_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_API_VERSION@ $(GST_BASE_LIBS) $(SOUP_LIBS)
 libgstsouphttpsrc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstsouphttpsrc_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
diff --git a/ext/soup/Makefile.in b/ext/soup/Makefile.in
index 661809b96..e78d40e99 100644
--- a/ext/soup/Makefile.in
+++ b/ext/soup/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/soup
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -138,10 +164,23 @@ libgstsouphttpsrc_la_OBJECTS = $(am_libgstsouphttpsrc_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstsouphttpsrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstsouphttpsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstsouphttpsrc_la_CFLAGS) $(CFLAGS) \
 	$(libgstsouphttpsrc_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -154,20 +193,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstsouphttpsrc_la_SOURCES)
 DIST_SOURCES = $(libgstsouphttpsrc_la_SOURCES)
 am__can_run_installinfo = \
@@ -176,6 +211,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -344,6 +396,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -506,7 +559,11 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 plugin_LTLIBRARIES = libgstsouphttpsrc.la
 libgstsouphttpsrc_la_SOURCES = gstsouphttpsrc.c gstsouphttpclientsink.c gstsoup.c
-libgstsouphttpsrc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(SOUP_CFLAGS) 
+libgstsouphttpsrc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \
+	$(GST_CFLAGS) $(SOUP_CFLAGS) \
+	-DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_2_26 \
+	-DSOUP_VERSION_MAX_ALLOWED=SOUP_DEPRECATED_IN_2_26
+
 libgstsouphttpsrc_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_API_VERSION@ $(GST_BASE_LIBS) $(SOUP_LIBS)
 libgstsouphttpsrc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstsouphttpsrc_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
@@ -545,6 +602,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -571,12 +629,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstsouphttpsrc.la: $(libgstsouphttpsrc_la_OBJECTS) $(libgstsouphttpsrc_la_DEPENDENCIES) $(EXTRA_libgstsouphttpsrc_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstsouphttpsrc_la_LINK) -rpath $(plugindir) $(libgstsouphttpsrc_la_OBJECTS) $(libgstsouphttpsrc_la_LIBADD) $(LIBS)
 
@@ -638,26 +699,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -669,15 +719,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -686,6 +732,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -830,19 +891,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/soup/gstsouphttpclientsink.h b/ext/soup/gstsouphttpclientsink.h
index d8ed3da85..5c7dda62f 100644
--- a/ext/soup/gstsouphttpclientsink.h
+++ b/ext/soup/gstsouphttpclientsink.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _GST_SOUP_HTTP_CLIENT_SINK_H_
diff --git a/ext/soup/gstsouphttpsrc.c b/ext/soup/gstsouphttpsrc.c
index f547cab52..79f6109d4 100644
--- a/ext/soup/gstsouphttpsrc.c
+++ b/ext/soup/gstsouphttpsrc.c
@@ -77,11 +77,7 @@
 #endif
 #include <gst/gstelement.h>
 #include <gst/gst-i18n-plugin.h>
-#ifdef HAVE_LIBSOUP_GNOME
-#include <libsoup/soup-gnome.h>
-#else
 #include <libsoup/soup.h>
-#endif
 #include "gstsouphttpsrc.h"
 
 #include <gst/tag/tag.h>
@@ -140,13 +136,15 @@ static gboolean gst_soup_http_src_set_location (GstSoupHTTPSrc * src,
 static gboolean gst_soup_http_src_set_proxy (GstSoupHTTPSrc * src,
     const gchar * uri);
 static char *gst_soup_http_src_unicodify (const char *str);
-static gboolean gst_soup_http_src_build_message (GstSoupHTTPSrc * src);
+static gboolean gst_soup_http_src_build_message (GstSoupHTTPSrc * src,
+    const gchar * method);
 static void gst_soup_http_src_cancel_message (GstSoupHTTPSrc * src);
 static void gst_soup_http_src_queue_message (GstSoupHTTPSrc * src);
 static gboolean gst_soup_http_src_add_range_header (GstSoupHTTPSrc * src,
-    guint64 offset);
+    guint64 offset, guint64 stop_offset);
 static void gst_soup_http_src_session_unpause_message (GstSoupHTTPSrc * src);
 static void gst_soup_http_src_session_pause_message (GstSoupHTTPSrc * src);
+static gboolean gst_soup_http_src_session_open (GstSoupHTTPSrc * src);
 static void gst_soup_http_src_session_close (GstSoupHTTPSrc * src);
 static void gst_soup_http_src_parse_status (SoupMessage * msg,
     GstSoupHTTPSrc * src);
@@ -277,9 +275,11 @@ gst_soup_http_src_reset (GstSoupHTTPSrc * src)
   src->interrupted = FALSE;
   src->retry = FALSE;
   src->have_size = FALSE;
+  src->got_headers = FALSE;
   src->seekable = FALSE;
   src->read_position = 0;
   src->request_position = 0;
+  src->stop_position = -1;
   src->content_size = 0;
 
   gst_caps_replace (&src->src_caps, NULL);
@@ -296,6 +296,8 @@ gst_soup_http_src_init (GstSoupHTTPSrc * src)
 {
   const gchar *proxy;
 
+  g_mutex_init (&src->mutex);
+  g_cond_init (&src->request_finished_cond);
   src->location = NULL;
   src->automatic_redirect = TRUE;
   src->user_agent = g_strdup (DEFAULT_USER_AGENT);
@@ -326,6 +328,8 @@ gst_soup_http_src_finalize (GObject * gobject)
 
   GST_DEBUG_OBJECT (src, "finalize");
 
+  g_mutex_clear (&src->mutex);
+  g_cond_clear (&src->request_finished_cond);
   g_free (src->location);
   g_free (src->user_agent);
   if (src->proxy != NULL) {
@@ -526,15 +530,22 @@ gst_soup_http_src_queue_message (GstSoupHTTPSrc * src)
 }
 
 static gboolean
-gst_soup_http_src_add_range_header (GstSoupHTTPSrc * src, guint64 offset)
+gst_soup_http_src_add_range_header (GstSoupHTTPSrc * src, guint64 offset,
+    guint64 stop_offset)
 {
   gchar buf[64];
 
   gint rc;
 
   soup_message_headers_remove (src->msg->request_headers, "Range");
-  if (offset) {
-    rc = g_snprintf (buf, sizeof (buf), "bytes=%" G_GUINT64_FORMAT "-", offset);
+  if (offset || stop_offset != -1) {
+    if (stop_offset != -1) {
+      rc = g_snprintf (buf, sizeof (buf), "bytes=%" G_GUINT64_FORMAT "-%"
+          G_GUINT64_FORMAT, offset, stop_offset);
+    } else {
+      rc = g_snprintf (buf, sizeof (buf), "bytes=%" G_GUINT64_FORMAT "-",
+          offset);
+    }
     if (rc > sizeof (buf) || rc < 0)
       return FALSE;
     soup_message_headers_append (src->msg->request_headers, "Range", buf);
@@ -631,6 +642,57 @@ gst_soup_http_src_session_pause_message (GstSoupHTTPSrc * src)
   soup_session_pause_message (src->session, src->msg);
 }
 
+static gboolean
+gst_soup_http_src_session_open (GstSoupHTTPSrc * src)
+{
+  if (src->session) {
+    GST_DEBUG_OBJECT (src, "Session is already open");
+    return TRUE;
+  }
+
+  if (!src->location) {
+    GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, (_("No URL set.")),
+        ("Missing location property"));
+    return FALSE;
+  }
+
+  src->context = g_main_context_new ();
+
+  src->loop = g_main_loop_new (src->context, TRUE);
+  if (!src->loop) {
+    GST_ELEMENT_ERROR (src, LIBRARY, INIT,
+        (NULL), ("Failed to start GMainLoop"));
+    g_main_context_unref (src->context);
+    return FALSE;
+  }
+
+  GST_DEBUG_OBJECT (src, "Creating session");
+  if (src->proxy == NULL) {
+    src->session =
+        soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT,
+        src->context, SOUP_SESSION_USER_AGENT, src->user_agent,
+        SOUP_SESSION_TIMEOUT, src->timeout,
+        SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_PROXY_RESOLVER_DEFAULT,
+        NULL);
+  } else {
+    src->session =
+        soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT,
+        src->context, SOUP_SESSION_PROXY_URI, src->proxy,
+        SOUP_SESSION_TIMEOUT, src->timeout,
+        SOUP_SESSION_USER_AGENT, src->user_agent, NULL);
+  }
+
+  if (!src->session) {
+    GST_ELEMENT_ERROR (src, LIBRARY, INIT,
+        (NULL), ("Failed to create async session"));
+    return FALSE;
+  }
+
+  g_signal_connect (src->session, "authenticate",
+      G_CALLBACK (gst_soup_http_src_authenticate_cb), src);
+  return TRUE;
+}
+
 static void
 gst_soup_http_src_session_close (GstSoupHTTPSrc * src)
 {
@@ -691,6 +753,7 @@ gst_soup_http_src_got_headers_cb (SoupMessage * msg, GstSoupHTTPSrc * src)
     return;
 
   src->session_io_status = GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING;
+  src->got_headers = TRUE;
 
   /* Parse Content-Length. */
   if (soup_message_headers_get_encoding (msg->response_headers) ==
@@ -829,6 +892,7 @@ gst_soup_http_src_got_headers_cb (SoupMessage * msg, GstSoupHTTPSrc * src)
     if (src->loop)
       g_main_loop_quit (src->loop);
   }
+  g_cond_signal (&src->request_finished_cond);
 }
 
 /* Have body. Signal EOS. */
@@ -880,6 +944,7 @@ gst_soup_http_src_finished_cb (SoupMessage * msg, GstSoupHTTPSrc * src)
   }
   if (src->loop)
     g_main_loop_quit (src->loop);
+  g_cond_signal (&src->request_finished_cond);
 }
 
 /* Buffer lifecycle management.
@@ -994,6 +1059,16 @@ gst_soup_http_src_got_chunk_cb (SoupMessage * msg, SoupBuffer * chunk,
     src->request_position = new_position;
   src->read_position = new_position;
 
+  if (src->content_size != 0 && new_position > src->content_size) {
+    GST_DEBUG_OBJECT (src, "Got position previous estimated content size "
+        "(%" G_GINT64_FORMAT " > %" G_GINT64_FORMAT ")", new_position,
+        src->content_size);
+    src->content_size = new_position;
+    basesrc->segment.duration = src->content_size;
+    gst_element_post_message (GST_ELEMENT (src),
+        gst_message_new_duration_changed (GST_OBJECT (src)));
+  }
+
   src->ret = GST_FLOW_OK;
   g_main_loop_quit (src->loop);
   gst_soup_http_src_session_pause_message (src);
@@ -1086,9 +1161,9 @@ gst_soup_http_src_parse_status (SoupMessage * msg, GstSoupHTTPSrc * src)
 }
 
 static gboolean
-gst_soup_http_src_build_message (GstSoupHTTPSrc * src)
+gst_soup_http_src_build_message (GstSoupHTTPSrc * src, const gchar * method)
 {
-  src->msg = soup_message_new (SOUP_METHOD_GET, src->location);
+  src->msg = soup_message_new (method, src->location);
   if (!src->msg) {
     GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ,
         ("Error parsing URL."), ("URL: %s", src->location));
@@ -1123,7 +1198,8 @@ gst_soup_http_src_build_message (GstSoupHTTPSrc * src)
       (src->automatic_redirect ? 0 : SOUP_MESSAGE_NO_REDIRECT));
   soup_message_set_chunk_allocator (src->msg,
       gst_soup_http_src_chunk_allocator, src, NULL);
-  gst_soup_http_src_add_range_header (src, src->request_position);
+  gst_soup_http_src_add_range_header (src, src->request_position,
+      src->stop_position);
 
   gst_soup_http_src_add_extra_headers (src);
 
@@ -1135,19 +1211,14 @@ gst_soup_http_src_build_message (GstSoupHTTPSrc * src)
 }
 
 static GstFlowReturn
-gst_soup_http_src_create (GstPushSrc * psrc, GstBuffer ** outbuf)
+gst_soup_http_src_do_request (GstSoupHTTPSrc * src, const gchar * method,
+    GstBuffer ** outbuf)
 {
-  GstSoupHTTPSrc *src;
-
-  src = GST_SOUP_HTTP_SRC (psrc);
-
+  GST_LOG_OBJECT (src, "Running request for method: %s", method);
   if (src->msg && (src->request_position != src->read_position)) {
-    if (src->content_size != 0 && src->request_position >= src->content_size) {
-      GST_WARNING_OBJECT (src, "Seeking behind the end of file -- EOS");
-      return GST_FLOW_EOS;
-    } else if (src->session_io_status ==
-        GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_IDLE) {
-      gst_soup_http_src_add_range_header (src, src->request_position);
+    if (src->session_io_status == GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_IDLE) {
+      gst_soup_http_src_add_range_header (src, src->request_position,
+          src->stop_position);
     } else {
       GST_DEBUG_OBJECT (src, "Seek from position %" G_GUINT64_FORMAT
           " to %" G_GUINT64_FORMAT ": requeueing connection request",
@@ -1156,8 +1227,9 @@ gst_soup_http_src_create (GstPushSrc * psrc, GstBuffer ** outbuf)
     }
   }
   if (!src->msg)
-    if (!gst_soup_http_src_build_message (src))
+    if (!gst_soup_http_src_build_message (src, method)) {
       return GST_FLOW_ERROR;
+    }
 
   src->ret = GST_FLOW_CUSTOM_ERROR;
   src->outbuf = outbuf;
@@ -1168,8 +1240,9 @@ gst_soup_http_src_create (GstPushSrc * psrc, GstBuffer ** outbuf)
     }
     if (src->retry) {
       GST_DEBUG_OBJECT (src, "Reconnecting");
-      if (!gst_soup_http_src_build_message (src))
+      if (!gst_soup_http_src_build_message (src, method)) {
         return GST_FLOW_ERROR;
+      }
       src->retry = FALSE;
       continue;
     }
@@ -1199,9 +1272,24 @@ gst_soup_http_src_create (GstPushSrc * psrc, GstBuffer ** outbuf)
 
   if (src->ret == GST_FLOW_CUSTOM_ERROR)
     src->ret = GST_FLOW_EOS;
+  g_cond_signal (&src->request_finished_cond);
   return src->ret;
 }
 
+static GstFlowReturn
+gst_soup_http_src_create (GstPushSrc * psrc, GstBuffer ** outbuf)
+{
+  GstSoupHTTPSrc *src;
+  GstFlowReturn ret;
+
+  src = GST_SOUP_HTTP_SRC (psrc);
+
+  g_mutex_lock (&src->mutex);
+  ret = gst_soup_http_src_do_request (src, SOUP_METHOD_GET, outbuf);
+  g_mutex_unlock (&src->mutex);
+  return ret;
+}
+
 static gboolean
 gst_soup_http_src_start (GstBaseSrc * bsrc)
 {
@@ -1209,48 +1297,7 @@ gst_soup_http_src_start (GstBaseSrc * bsrc)
 
   GST_DEBUG_OBJECT (src, "start(\"%s\")", src->location);
 
-  if (!src->location) {
-    GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, (_("No URL set.")),
-        ("Missing location property"));
-    return FALSE;
-  }
-
-  src->context = g_main_context_new ();
-
-  src->loop = g_main_loop_new (src->context, TRUE);
-  if (!src->loop) {
-    GST_ELEMENT_ERROR (src, LIBRARY, INIT,
-        (NULL), ("Failed to start GMainLoop"));
-    g_main_context_unref (src->context);
-    return FALSE;
-  }
-
-  if (src->proxy == NULL) {
-    src->session =
-        soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT,
-        src->context, SOUP_SESSION_USER_AGENT, src->user_agent,
-        SOUP_SESSION_TIMEOUT, src->timeout,
-#ifdef HAVE_LIBSOUP_GNOME
-        SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_PROXY_RESOLVER_GNOME,
-#endif
-        NULL);
-  } else {
-    src->session =
-        soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT,
-        src->context, SOUP_SESSION_PROXY_URI, src->proxy,
-        SOUP_SESSION_TIMEOUT, src->timeout,
-        SOUP_SESSION_USER_AGENT, src->user_agent, NULL);
-  }
-
-  if (!src->session) {
-    GST_ELEMENT_ERROR (src, LIBRARY, INIT,
-        (NULL), ("Failed to create async session"));
-    return FALSE;
-  }
-
-  g_signal_connect (src->session, "authenticate",
-      G_CALLBACK (gst_soup_http_src_authenticate_cb), src);
-  return TRUE;
+  return gst_soup_http_src_session_open (src);
 }
 
 static gboolean
@@ -1288,6 +1335,7 @@ gst_soup_http_src_unlock (GstBaseSrc * bsrc)
   src->interrupted = TRUE;
   if (src->loop)
     g_main_loop_quit (src->loop);
+  g_cond_signal (&src->request_finished_cond);
   return TRUE;
 }
 
@@ -1325,6 +1373,33 @@ static gboolean
 gst_soup_http_src_is_seekable (GstBaseSrc * bsrc)
 {
   GstSoupHTTPSrc *src = GST_SOUP_HTTP_SRC (bsrc);
+  GstFlowReturn ret = GST_FLOW_OK;
+
+  /* Special case to check if the server allows range requests
+   * before really starting to get data in the buffer creation
+   * loops.
+   */
+  if (!src->got_headers && GST_STATE (src) != GST_STATE_NULL) {
+    g_mutex_lock (&src->mutex);
+    while (!src->got_headers && !src->interrupted && ret == GST_FLOW_OK) {
+      if ((src->msg && src->msg->method != SOUP_METHOD_HEAD) &&
+          src->session_io_status != GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_IDLE) {
+        /* wait for the current request to finish */
+        g_cond_wait (&src->request_finished_cond, &src->mutex);
+      } else {
+        if (gst_soup_http_src_session_open (src)) {
+          ret = gst_soup_http_src_do_request (src, SOUP_METHOD_HEAD, NULL);
+        }
+      }
+    }
+    if (src->ret == GST_FLOW_EOS) {
+      /* A HEAD request shouldn't lead to EOS */
+      src->ret = GST_FLOW_OK;
+    }
+    /* resets status to idle */
+    gst_soup_http_src_cancel_message (src);
+    g_mutex_unlock (&src->mutex);
+  }
 
   return src->seekable;
 }
@@ -1334,11 +1409,13 @@ gst_soup_http_src_do_seek (GstBaseSrc * bsrc, GstSegment * segment)
 {
   GstSoupHTTPSrc *src = GST_SOUP_HTTP_SRC (bsrc);
 
-  GST_DEBUG_OBJECT (src, "do_seek(%" G_GUINT64_FORMAT ")", segment->start);
-
+  GST_DEBUG_OBJECT (src, "do_seek(%" G_GUINT64_FORMAT "-%" G_GUINT64_FORMAT
+      ")", segment->start, segment->stop);
   if (src->read_position == segment->start &&
-      src->request_position == src->read_position) {
-    GST_DEBUG_OBJECT (src, "Seek to current read position and no seek pending");
+      src->request_position == src->read_position &&
+      src->stop_position == segment->stop) {
+    GST_DEBUG_OBJECT (src,
+        "Seek to current read/end position and no seek pending");
     return TRUE;
   }
 
@@ -1353,11 +1430,13 @@ gst_soup_http_src_do_seek (GstBaseSrc * bsrc, GstSegment * segment)
   }
 
   if (src->content_size != 0 && segment->start >= src->content_size) {
-    GST_WARNING_OBJECT (src, "Seeking behind end of file, will go to EOS soon");
+    GST_WARNING_OBJECT (src,
+        "Potentially seeking behind end of file, might EOS immediately");
   }
 
   /* Wait for create() to handle the jump in offset. */
   src->request_position = segment->start;
+  src->stop_position = segment->stop;
   return TRUE;
 }
 
@@ -1366,6 +1445,8 @@ gst_soup_http_src_query (GstBaseSrc * bsrc, GstQuery * query)
 {
   GstSoupHTTPSrc *src = GST_SOUP_HTTP_SRC (bsrc);
   gboolean ret;
+  GstSchedulingFlags flags;
+  gint minsize, maxsize, align;
 
   switch (GST_QUERY_TYPE (query)) {
     case GST_QUERY_URI:
@@ -1380,6 +1461,16 @@ gst_soup_http_src_query (GstBaseSrc * bsrc, GstQuery * query)
   if (!ret)
     ret = GST_BASE_SRC_CLASS (parent_class)->query (bsrc, query);
 
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_SCHEDULING:
+      gst_query_parse_scheduling (query, &flags, &minsize, &maxsize, &align);
+      flags |= GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED;
+      gst_query_set_scheduling (query, flags, minsize, maxsize, align);
+      break;
+    default:
+      break;
+  }
+
   return ret;
 }
 
diff --git a/ext/soup/gstsouphttpsrc.h b/ext/soup/gstsouphttpsrc.h
index 491b69d47..9ccc35aca 100644
--- a/ext/soup/gstsouphttpsrc.h
+++ b/ext/soup/gstsouphttpsrc.h
@@ -68,6 +68,7 @@ struct _GstSoupHTTPSrc {
   gboolean interrupted;        /* Signal unlock(). */
   gboolean retry;              /* Should attempt to reconnect. */
 
+  gboolean got_headers;        /* Already received headers from the server */
   gboolean have_size;          /* Received and parsed Content-Length
                                   header. */
   guint64 content_size;        /* Value of Content-Length header. */
@@ -75,6 +76,7 @@ struct _GstSoupHTTPSrc {
   gboolean seekable;           /* FALSE if the server does not support
                                   Range. */
   guint64 request_position;    /* Seek to this position. */
+  guint64 stop_position;       /* Stop at this position. */
 
   /* Shoutcast/icecast metadata extraction handling. */
   gboolean iradio_mode;
@@ -86,6 +88,9 @@ struct _GstSoupHTTPSrc {
   GstStructure *extra_headers;
 
   guint timeout;
+
+  GMutex mutex;
+  GCond request_finished_cond;
 };
 
 struct _GstSoupHTTPSrcClass {
diff --git a/ext/speex/Makefile.in b/ext/speex/Makefile.in
index 8e4e783c0..d2aeeb3bd 100644
--- a/ext/speex/Makefile.in
+++ b/ext/speex/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/speex
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -137,10 +163,23 @@ libgstspeex_la_OBJECTS = $(am_libgstspeex_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstspeex_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstspeex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstspeex_la_CFLAGS) $(CFLAGS) \
 	$(libgstspeex_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -153,20 +192,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstspeex_la_SOURCES)
 DIST_SOURCES = $(libgstspeex_la_SOURCES)
 am__can_run_installinfo = \
@@ -175,6 +210,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -343,6 +395,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -555,6 +608,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -581,12 +635,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstspeex.la: $(libgstspeex_la_OBJECTS) $(libgstspeex_la_DEPENDENCIES) $(EXTRA_libgstspeex_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstspeex_la_LINK) -rpath $(plugindir) $(libgstspeex_la_OBJECTS) $(libgstspeex_la_LIBADD) $(LIBS)
 
@@ -648,26 +705,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -679,15 +725,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -696,6 +738,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -840,19 +897,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/speex/gstspeex.c b/ext/speex/gstspeex.c
index 67dc52e67..9688cd5c2 100644
--- a/ext/speex/gstspeex.c
+++ b/ext/speex/gstspeex.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifdef HAVE_CONFIG_H
 #include <config.h>
diff --git a/ext/speex/gstspeexdec.c b/ext/speex/gstspeexdec.c
index cd788043d..8f9da2ade 100644
--- a/ext/speex/gstspeexdec.c
+++ b/ext/speex/gstspeexdec.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/ext/speex/gstspeexdec.h b/ext/speex/gstspeexdec.h
index 8187af87c..ce45e813c 100644
--- a/ext/speex/gstspeexdec.h
+++ b/ext/speex/gstspeexdec.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/speex/gstspeexenc.c b/ext/speex/gstspeexenc.c
index 23c172ddd..c17e8a398 100644
--- a/ext/speex/gstspeexenc.c
+++ b/ext/speex/gstspeexenc.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/ext/speex/gstspeexenc.h b/ext/speex/gstspeexenc.h
index 17cb1e2df..8d9568dc4 100644
--- a/ext/speex/gstspeexenc.h
+++ b/ext/speex/gstspeexenc.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/taglib/Makefile.in b/ext/taglib/Makefile.in
index 9b8fe730d..5df2b56eb 100644
--- a/ext/taglib/Makefile.in
+++ b/ext/taglib/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/taglib
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -136,10 +162,23 @@ libgsttaglib_la_OBJECTS = $(am_libgsttaglib_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgsttaglib_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
 	$(libgsttaglib_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CXXLD) $(libgsttaglib_la_CXXFLAGS) $(CXXFLAGS) \
 	$(libgsttaglib_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -152,17 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
 LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
@@ -171,17 +209,16 @@ LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
 	$(AM_CXXFLAGS) $(CXXFLAGS)
 AM_V_CXX = $(am__v_CXX_@AM_V@)
 am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX   " $@;
+am__v_CXX_0 = @echo "  CXX     " $@;
+am__v_CXX_1 = 
 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_@AM_V@)
 am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD " $@;
-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_CXXLD_0 = @echo "  CXXLD   " $@;
+am__v_CXXLD_1 = 
 SOURCES = $(libgsttaglib_la_SOURCES)
 DIST_SOURCES = $(libgsttaglib_la_SOURCES)
 am__can_run_installinfo = \
@@ -190,6 +227,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -358,6 +412,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -572,6 +627,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -598,12 +654,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgsttaglib.la: $(libgsttaglib_la_OBJECTS) $(libgsttaglib_la_DEPENDENCIES) $(EXTRA_libgsttaglib_la_DEPENDENCIES) 
 	$(AM_V_CXXLD)$(libgsttaglib_la_LINK) -rpath $(plugindir) $(libgsttaglib_la_OBJECTS) $(libgsttaglib_la_LIBADD) $(LIBS)
 
@@ -686,26 +745,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -717,15 +765,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -734,6 +778,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -878,19 +937,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/taglib/gstapev2mux.cc b/ext/taglib/gstapev2mux.cc
index f3c628746..eb46f823e 100644
--- a/ext/taglib/gstapev2mux.cc
+++ b/ext/taglib/gstapev2mux.cc
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/ext/taglib/gstapev2mux.h b/ext/taglib/gstapev2mux.h
index 9539a6add..8eceb5714 100644
--- a/ext/taglib/gstapev2mux.h
+++ b/ext/taglib/gstapev2mux.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef GST_APEV2_MUX_H
diff --git a/ext/taglib/gstid3v2mux.cc b/ext/taglib/gstid3v2mux.cc
index 50c36c487..c345142c1 100644
--- a/ext/taglib/gstid3v2mux.cc
+++ b/ext/taglib/gstid3v2mux.cc
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/ext/taglib/gstid3v2mux.h b/ext/taglib/gstid3v2mux.h
index 1a66b95d5..36c748fc4 100644
--- a/ext/taglib/gstid3v2mux.h
+++ b/ext/taglib/gstid3v2mux.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef GST_ID3V2_MUX_H
diff --git a/ext/taglib/gsttaglibplugin.c b/ext/taglib/gsttaglibplugin.c
index 281a06602..dce6bf6d1 100644
--- a/ext/taglib/gsttaglibplugin.c
+++ b/ext/taglib/gsttaglibplugin.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/ext/vpx/Makefile.am b/ext/vpx/Makefile.am
index 10b0b3523..17636385c 100644
--- a/ext/vpx/Makefile.am
+++ b/ext/vpx/Makefile.am
@@ -5,6 +5,8 @@ libgstvpx_la_SOURCES = \
 	gstvp8dec.c \
 	gstvp8enc.c \
 	gstvp8utils.c \
+	gstvp9dec.c \
+	gstvp9enc.c \
 	plugin.c
 
 libgstvpx_la_CFLAGS = \
@@ -22,6 +24,8 @@ libgstvpx_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = \
 	gstvp8dec.h \
 	gstvp8enc.h \
+	gstvp9dec.h \
+	gstvp9enc.h \
 	gstvp8utils.h
 
 presetdir = $(datadir)/gstreamer-$(GST_API_VERSION)/presets
diff --git a/ext/vpx/Makefile.in b/ext/vpx/Makefile.in
index b31f2484d..945356bf7 100644
--- a/ext/vpx/Makefile.in
+++ b/ext/vpx/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -18,23 +17,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -55,15 +82,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/vpx
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -134,15 +160,29 @@ libgstvpx_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
 am_libgstvpx_la_OBJECTS = libgstvpx_la-gstvp8dec.lo \
 	libgstvpx_la-gstvp8enc.lo libgstvpx_la-gstvp8utils.lo \
+	libgstvpx_la-gstvp9dec.lo libgstvpx_la-gstvp9enc.lo \
 	libgstvpx_la-plugin.lo
 libgstvpx_la_OBJECTS = $(am_libgstvpx_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstvpx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstvpx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstvpx_la_CFLAGS) $(CFLAGS) \
 	$(libgstvpx_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -155,20 +195,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstvpx_la_SOURCES)
 DIST_SOURCES = $(libgstvpx_la_SOURCES)
 am__can_run_installinfo = \
@@ -178,6 +214,23 @@ am__can_run_installinfo = \
   esac
 DATA = $(preset_DATA)
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -346,6 +399,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -513,6 +567,8 @@ libgstvpx_la_SOURCES = \
 	gstvp8dec.c \
 	gstvp8enc.c \
 	gstvp8utils.c \
+	gstvp9dec.c \
+	gstvp9enc.c \
 	plugin.c
 
 libgstvpx_la_CFLAGS = \
@@ -531,6 +587,8 @@ libgstvpx_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = \
 	gstvp8dec.h \
 	gstvp8enc.h \
+	gstvp9dec.h \
+	gstvp9enc.h \
 	gstvp8utils.h
 
 presetdir = $(datadir)/gstreamer-$(GST_API_VERSION)/presets
@@ -570,6 +628,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -596,12 +655,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstvpx.la: $(libgstvpx_la_OBJECTS) $(libgstvpx_la_DEPENDENCIES) $(EXTRA_libgstvpx_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstvpx_la_LINK) -rpath $(plugindir) $(libgstvpx_la_OBJECTS) $(libgstvpx_la_LIBADD) $(LIBS)
 
@@ -614,6 +676,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvpx_la-gstvp8dec.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvpx_la-gstvp8enc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvpx_la-gstvp8utils.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvpx_la-gstvp9dec.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvpx_la-gstvp9enc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvpx_la-plugin.Plo@am__quote@
 
 .c.o:
@@ -658,6 +722,20 @@ libgstvpx_la-gstvp8utils.lo: gstvp8utils.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvpx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -c -o libgstvpx_la-gstvp8utils.lo `test -f 'gstvp8utils.c' || echo '$(srcdir)/'`gstvp8utils.c
 
+libgstvpx_la-gstvp9dec.lo: gstvp9dec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvpx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -MT libgstvpx_la-gstvp9dec.lo -MD -MP -MF $(DEPDIR)/libgstvpx_la-gstvp9dec.Tpo -c -o libgstvpx_la-gstvp9dec.lo `test -f 'gstvp9dec.c' || echo '$(srcdir)/'`gstvp9dec.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvpx_la-gstvp9dec.Tpo $(DEPDIR)/libgstvpx_la-gstvp9dec.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstvp9dec.c' object='libgstvpx_la-gstvp9dec.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 $(libgstvpx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -c -o libgstvpx_la-gstvp9dec.lo `test -f 'gstvp9dec.c' || echo '$(srcdir)/'`gstvp9dec.c
+
+libgstvpx_la-gstvp9enc.lo: gstvp9enc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvpx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -MT libgstvpx_la-gstvp9enc.lo -MD -MP -MF $(DEPDIR)/libgstvpx_la-gstvp9enc.Tpo -c -o libgstvpx_la-gstvp9enc.lo `test -f 'gstvp9enc.c' || echo '$(srcdir)/'`gstvp9enc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvpx_la-gstvp9enc.Tpo $(DEPDIR)/libgstvpx_la-gstvp9enc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstvp9enc.c' object='libgstvpx_la-gstvp9enc.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 $(libgstvpx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -c -o libgstvpx_la-gstvp9enc.lo `test -f 'gstvp9enc.c' || echo '$(srcdir)/'`gstvp9enc.c
+
 libgstvpx_la-plugin.lo: plugin.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvpx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvpx_la_CFLAGS) $(CFLAGS) -MT libgstvpx_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstvpx_la-plugin.Tpo -c -o libgstvpx_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvpx_la-plugin.Tpo $(DEPDIR)/libgstvpx_la-plugin.Plo
@@ -692,26 +770,15 @@ uninstall-presetDATA:
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(presetdir)'; $(am__uninstall_files_from_dir)
 
-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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -723,15 +790,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -740,6 +803,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -884,20 +962,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES uninstall-presetDATA
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	install-presetDATA 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 uninstall-pluginLTLIBRARIES \
-	uninstall-presetDATA
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES install-presetDATA 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 tags-am uninstall \
+	uninstall-am uninstall-pluginLTLIBRARIES uninstall-presetDATA
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/vpx/gstvp8dec.c b/ext/vpx/gstvp8dec.c
index eff013f50..6ba2ce865 100644
--- a/ext/vpx/gstvp8dec.c
+++ b/ext/vpx/gstvp8dec.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  */
 /**
@@ -415,7 +415,13 @@ open_codec (GstVP8Dec * dec, GstVideoCodecFrame * frame)
 
   gst_buffer_unmap (frame->input_buffer, &minfo);
 
-  if (status != VPX_CODEC_OK || !stream_info.is_kf) {
+  if (status != VPX_CODEC_OK) {
+    GST_WARNING_OBJECT (dec, "VPX preprocessing error: %s",
+        gst_vpx_error_name (status));
+    gst_video_decoder_finish_frame (GST_VIDEO_DECODER (dec), frame);
+    return GST_FLOW_CUSTOM_SUCCESS_1;
+  }
+  if (!stream_info.is_kf) {
     GST_WARNING_OBJECT (dec, "No keyframe, skipping");
     gst_video_decoder_finish_frame (GST_VIDEO_DECODER (dec), frame);
     return GST_FLOW_CUSTOM_SUCCESS_1;
@@ -521,6 +527,14 @@ gst_vp8_dec_handle_frame (GstVideoDecoder * decoder, GstVideoCodecFrame * frame)
 
   img = vpx_codec_get_frame (&dec->decoder, &iter);
   if (img) {
+    if (img->fmt != VPX_IMG_FMT_I420) {
+      vpx_img_free (img);
+      GST_ELEMENT_ERROR (decoder, LIBRARY, ENCODE,
+          ("Failed to decode frame"), ("Unsupported color format %d",
+              img->fmt));
+      return GST_FLOW_ERROR;
+    }
+
     if (deadline < 0) {
       GST_LOG_OBJECT (dec, "Skipping late frame (%f s past deadline)",
           (double) -deadline / GST_SECOND);
diff --git a/ext/vpx/gstvp8dec.h b/ext/vpx/gstvp8dec.h
index c2aaebc83..aff385935 100644
--- a/ext/vpx/gstvp8dec.h
+++ b/ext/vpx/gstvp8dec.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  */
 
diff --git a/ext/vpx/gstvp8enc.c b/ext/vpx/gstvp8enc.c
index bd1012a21..d68cdff7c 100644
--- a/ext/vpx/gstvp8enc.c
+++ b/ext/vpx/gstvp8enc.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  */
 /**
@@ -60,13 +60,12 @@
 #define GLIB_DISABLE_DEPRECATION_WARNINGS
 
 #include <gst/tag/tag.h>
+#include <gst/video/video.h>
 #include <string.h>
 
 #include "gstvp8utils.h"
 #include "gstvp8enc.h"
 
-#include <gst/video/gstvideometa.h>
-
 GST_DEBUG_CATEGORY_STATIC (gst_vp8enc_debug);
 #define GST_CAT_DEFAULT gst_vp8enc_debug
 
@@ -147,6 +146,8 @@ gst_vp8_enc_user_data_free (GstVP8EncUserData * user_data)
 #define DEFAULT_TUNING VP8_TUNE_PSNR
 #define DEFAULT_CQ_LEVEL 10
 #define DEFAULT_MAX_INTRA_BITRATE_PCT 0
+#define DEFAULT_TIMEBASE_N 0
+#define DEFAULT_TIMEBASE_D 1
 
 enum
 {
@@ -193,7 +194,8 @@ enum
   PROP_ARNR_TYPE,
   PROP_TUNING,
   PROP_CQ_LEVEL,
-  PROP_MAX_INTRA_BITRATE_PCT
+  PROP_MAX_INTRA_BITRATE_PCT,
+  PROP_TIMEBASE
 };
 
 #define GST_VP8_ENC_END_USAGE_TYPE (gst_vp8_enc_end_usage_get_type())
@@ -394,8 +396,7 @@ GST_STATIC_PAD_TEMPLATE ("src",
 #define parent_class gst_vp8_enc_parent_class
 G_DEFINE_TYPE_WITH_CODE (GstVP8Enc, gst_vp8_enc, GST_TYPE_VIDEO_ENCODER,
     G_IMPLEMENT_INTERFACE (GST_TYPE_TAG_SETTER, NULL);
-    G_IMPLEMENT_INTERFACE (GST_TYPE_PRESET, NULL);
-    );
+    G_IMPLEMENT_INTERFACE (GST_TYPE_PRESET, NULL););
 
 static void
 gst_vp8_enc_class_init (GstVP8EncClass * klass)
@@ -701,6 +702,12 @@ gst_vp8_enc_class_init (GstVP8EncClass * klass)
           0, G_MAXINT, DEFAULT_MAX_INTRA_BITRATE_PCT,
           (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
 
+  g_object_class_install_property (gobject_class, PROP_TIMEBASE,
+      gst_param_spec_fraction ("timebase", "Shortest interframe time",
+          "Fraction of one second that is the shortest interframe time - normally left as zero which will default to the framerate",
+          0, 1, G_MAXINT, 1, DEFAULT_TIMEBASE_N, DEFAULT_TIMEBASE_D,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   GST_DEBUG_CATEGORY_INIT (gst_vp8enc_debug, "vp8enc", 0, "VP8 Encoder");
 }
 
@@ -769,6 +776,8 @@ gst_vp8_enc_init (GstVP8Enc * gst_vp8_enc)
   gst_vp8_enc->tuning = DEFAULT_TUNING;
   gst_vp8_enc->cq_level = DEFAULT_CQ_LEVEL;
   gst_vp8_enc->max_intra_bitrate_pct = DEFAULT_MAX_INTRA_BITRATE_PCT;
+  gst_vp8_enc->timebase_n = DEFAULT_TIMEBASE_N;
+  gst_vp8_enc->timebase_d = DEFAULT_TIMEBASE_D;
 
   gst_vp8_enc->cfg.g_profile = DEFAULT_PROFILE;
 
@@ -1163,6 +1172,10 @@ gst_vp8_enc_set_property (GObject * object, guint prop_id,
         }
       }
       break;
+    case PROP_TIMEBASE:
+      gst_vp8_enc->timebase_n = gst_value_get_fraction_numerator (value);
+      gst_vp8_enc->timebase_d = gst_value_get_fraction_denominator (value);
+      break;
     default:
       break;
   }
@@ -1380,6 +1393,10 @@ gst_vp8_enc_get_property (GObject * object, guint prop_id, GValue * value,
     case PROP_MAX_INTRA_BITRATE_PCT:
       g_value_set_int (value, gst_vp8_enc->max_intra_bitrate_pct);
       break;
+    case PROP_TIMEBASE:
+      gst_value_set_fraction (value, gst_vp8_enc->timebase_n,
+          gst_vp8_enc->timebase_d);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1509,16 +1526,29 @@ gst_vp8_enc_set_format (GstVideoEncoder * video_encoder,
 
   encoder->cfg.g_w = GST_VIDEO_INFO_WIDTH (info);
   encoder->cfg.g_h = GST_VIDEO_INFO_HEIGHT (info);
-  if (GST_VIDEO_INFO_FPS_D (info) == 0 || GST_VIDEO_INFO_FPS_N (info) == 0) {
-    /* Zero framerate but still need to setup the timebase so we
-     * presume this is RTP - VP8 payload draft states clock rate of 90000
-     * see specification http://tools.ietf.org/html/draft-ietf-payload-vp8-01
-     * section 6.3.1 */
-    encoder->cfg.g_timebase.num = 1;
-    encoder->cfg.g_timebase.den = 90000;
-  } else {
+
+  if (encoder->timebase_n != 0 && encoder->timebase_d != 0) {
+    GST_DEBUG_OBJECT (video_encoder, "Using timebase configuration");
+    encoder->cfg.g_timebase.num = encoder->timebase_n;
+    encoder->cfg.g_timebase.den = encoder->timebase_d;
+  } else if (GST_VIDEO_INFO_FPS_D (info) != 0
+      && GST_VIDEO_INFO_FPS_N (info) != 0) {
+    /* GstVideoInfo holds either the framerate or max-framerate (if framerate
+     * is 0) in FPS so this will be used if max-framerate or framerate
+     * is set */
+    GST_DEBUG_OBJECT (video_encoder, "Setting timebase from framerate");
     encoder->cfg.g_timebase.num = GST_VIDEO_INFO_FPS_D (info);
     encoder->cfg.g_timebase.den = GST_VIDEO_INFO_FPS_N (info);
+  } else {
+    /* Zero framerate and max-framerate but still need to setup the timebase to avoid
+     * a divide by zero error. Presuming the lowest common denominator will be RTP -
+     * VP8 payload draft states clock rate of 90000 which should work for anyone where
+     * FPS < 90000 (shouldn't be too many cases where it's higher) though wouldn't be optimal. RTP specification
+     * http://tools.ietf.org/html/draft-ietf-payload-vp8-01 section 6.3.1 */
+    GST_WARNING_OBJECT (encoder,
+        "No timebase and zero framerate setting timebase to 1/90000");
+    encoder->cfg.g_timebase.num = 1;
+    encoder->cfg.g_timebase.den = 90000;
   }
 
   if (encoder->cfg.g_pass == VPX_RC_FIRST_PASS) {
diff --git a/ext/vpx/gstvp8enc.h b/ext/vpx/gstvp8enc.h
index a8120677a..b2351124d 100644
--- a/ext/vpx/gstvp8enc.h
+++ b/ext/vpx/gstvp8enc.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  */
 #ifndef __GST_VP8_ENC_H__
@@ -87,6 +87,9 @@ struct _GstVP8Enc
   vp8e_tuning tuning;
   unsigned int cq_level;
   unsigned int max_intra_bitrate_pct;
+  /* Timebase - a value of 0 will use the framerate */
+  unsigned int timebase_n;
+  unsigned int timebase_d;
 
   /* state */
   gboolean inited;
diff --git a/ext/vpx/gstvp8utils.c b/ext/vpx/gstvp8utils.c
index 90df09b0b..172194535 100644
--- a/ext/vpx/gstvp8utils.c
+++ b/ext/vpx/gstvp8utils.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  */
 
diff --git a/ext/vpx/gstvp8utils.h b/ext/vpx/gstvp8utils.h
index e62ab8fc9..df4e77e68 100644
--- a/ext/vpx/gstvp8utils.h
+++ b/ext/vpx/gstvp8utils.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  */
 
diff --git a/ext/vpx/gstvp9dec.c b/ext/vpx/gstvp9dec.c
new file mode 100644
index 000000000..208796a40
--- /dev/null
+++ b/ext/vpx/gstvp9dec.c
@@ -0,0 +1,624 @@
+/* VP9
+ * Copyright (C) 2006 David Schleef <ds@schleef.org>
+ * Copyright (C) 2008,2009,2010 Entropy Wave Inc
+ * Copyright (C) 2010-2013 Sebastian Dröge <slomo@circular-chaos.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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+/**
+ * SECTION:element-vp9dec
+ * @see_also: vp9enc, matroskademux
+ *
+ * This element decodes VP9 streams into raw video.
+ * <ulink url="http://www.webmproject.org">VP9</ulink> is a royalty-free
+ * video codec maintained by <ulink url="http://www.google.com/">Google
+ * </ulink>. It's the successor of On2 VP3, which was the base of the
+ * Theora video codec.
+ *
+ * <refsect2>
+ * <title>Example pipeline</title>
+ * |[
+ * gst-launch -v filesrc location=videotestsrc.webm ! matroskademux ! vp9dec ! xvimagesink
+ * ]| This example pipeline will decode a WebM stream and decodes the VP9 video.
+ * </refsect2>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifdef HAVE_VP9_DECODER
+
+#include <string.h>
+
+#include "gstvp8utils.h"
+#include "gstvp9dec.h"
+
+#include <gst/video/gstvideometa.h>
+#include <gst/video/gstvideopool.h>
+
+GST_DEBUG_CATEGORY_STATIC (gst_vp9dec_debug);
+#define GST_CAT_DEFAULT gst_vp9dec_debug
+
+#define DEFAULT_POST_PROCESSING FALSE
+#define DEFAULT_POST_PROCESSING_FLAGS (VP8_DEBLOCK | VP8_DEMACROBLOCK)
+#define DEFAULT_DEBLOCKING_LEVEL 4
+#define DEFAULT_NOISE_LEVEL 0
+#define DEFAULT_THREADS 1
+
+enum
+{
+  PROP_0,
+  PROP_POST_PROCESSING,
+  PROP_POST_PROCESSING_FLAGS,
+  PROP_DEBLOCKING_LEVEL,
+  PROP_NOISE_LEVEL,
+  PROP_THREADS
+};
+
+#define C_FLAGS(v) ((guint) v)
+#define GST_VP9_DEC_TYPE_POST_PROCESSING_FLAGS (gst_vp9_dec_post_processing_flags_get_type())
+static GType
+gst_vp9_dec_post_processing_flags_get_type (void)
+{
+  static const GFlagsValue values[] = {
+    {C_FLAGS (VP8_DEBLOCK), "Deblock", "deblock"},
+    {C_FLAGS (VP8_DEMACROBLOCK), "Demacroblock", "demacroblock"},
+    {C_FLAGS (VP8_ADDNOISE), "Add noise", "addnoise"},
+    {C_FLAGS (VP8_MFQE), "Multi-frame quality enhancement", "mfqe"},
+    {0, NULL, NULL}
+  };
+  static volatile GType id = 0;
+
+  if (g_once_init_enter ((gsize *) & id)) {
+    GType _id;
+
+    _id = g_flags_register_static ("GstVP9DecPostProcessingFlags", values);
+
+    g_once_init_leave ((gsize *) & id, _id);
+  }
+
+  return id;
+}
+
+#undef C_FLAGS
+
+static void gst_vp9_dec_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_vp9_dec_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+
+static gboolean gst_vp9_dec_start (GstVideoDecoder * decoder);
+static gboolean gst_vp9_dec_stop (GstVideoDecoder * decoder);
+static gboolean gst_vp9_dec_set_format (GstVideoDecoder * decoder,
+    GstVideoCodecState * state);
+static gboolean gst_vp9_dec_reset (GstVideoDecoder * decoder, gboolean hard);
+static GstFlowReturn gst_vp9_dec_handle_frame (GstVideoDecoder * decoder,
+    GstVideoCodecFrame * frame);
+static gboolean gst_vp9_dec_decide_allocation (GstVideoDecoder * decoder,
+    GstQuery * query);
+
+static GstStaticPadTemplate gst_vp9_dec_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("video/x-vp9")
+    );
+
+static GstStaticPadTemplate gst_vp9_dec_src_template =
+GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("{ I420, YV12, Y42B, Y444 }"))
+    );
+
+#define parent_class gst_vp9_dec_parent_class
+G_DEFINE_TYPE (GstVP9Dec, gst_vp9_dec, GST_TYPE_VIDEO_DECODER);
+
+static void
+gst_vp9_dec_class_init (GstVP9DecClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstElementClass *element_class;
+  GstVideoDecoderClass *base_video_decoder_class;
+
+  gobject_class = G_OBJECT_CLASS (klass);
+  element_class = GST_ELEMENT_CLASS (klass);
+  base_video_decoder_class = GST_VIDEO_DECODER_CLASS (klass);
+
+  gobject_class->set_property = gst_vp9_dec_set_property;
+  gobject_class->get_property = gst_vp9_dec_get_property;
+
+  g_object_class_install_property (gobject_class, PROP_POST_PROCESSING,
+      g_param_spec_boolean ("post-processing", "Post Processing",
+          "Enable post processing", DEFAULT_POST_PROCESSING,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_POST_PROCESSING_FLAGS,
+      g_param_spec_flags ("post-processing-flags", "Post Processing Flags",
+          "Flags to control post processing",
+          GST_VP9_DEC_TYPE_POST_PROCESSING_FLAGS, DEFAULT_POST_PROCESSING_FLAGS,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_DEBLOCKING_LEVEL,
+      g_param_spec_uint ("deblocking-level", "Deblocking Level",
+          "Deblocking level",
+          0, 16, DEFAULT_DEBLOCKING_LEVEL,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_NOISE_LEVEL,
+      g_param_spec_uint ("noise-level", "Noise Level",
+          "Noise level",
+          0, 16, DEFAULT_NOISE_LEVEL,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_THREADS,
+      g_param_spec_uint ("threads", "Max Threads",
+          "Maximum number of decoding threads",
+          1, 16, DEFAULT_THREADS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&gst_vp9_dec_src_template));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&gst_vp9_dec_sink_template));
+
+  gst_element_class_set_static_metadata (element_class,
+      "On2 VP9 Decoder",
+      "Codec/Decoder/Video",
+      "Decode VP9 video streams", "David Schleef <ds@entropywave.com>, "
+      "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
+
+  base_video_decoder_class->start = GST_DEBUG_FUNCPTR (gst_vp9_dec_start);
+  base_video_decoder_class->stop = GST_DEBUG_FUNCPTR (gst_vp9_dec_stop);
+  base_video_decoder_class->reset = GST_DEBUG_FUNCPTR (gst_vp9_dec_reset);
+  base_video_decoder_class->set_format =
+      GST_DEBUG_FUNCPTR (gst_vp9_dec_set_format);
+  base_video_decoder_class->handle_frame =
+      GST_DEBUG_FUNCPTR (gst_vp9_dec_handle_frame);
+  base_video_decoder_class->decide_allocation = gst_vp9_dec_decide_allocation;
+
+  GST_DEBUG_CATEGORY_INIT (gst_vp9dec_debug, "vp9dec", 0, "VP9 Decoder");
+}
+
+static void
+gst_vp9_dec_init (GstVP9Dec * gst_vp9_dec)
+{
+  GstVideoDecoder *decoder = (GstVideoDecoder *) gst_vp9_dec;
+
+  GST_DEBUG_OBJECT (gst_vp9_dec, "gst_vp9_dec_init");
+  gst_video_decoder_set_packetized (decoder, TRUE);
+  gst_vp9_dec->post_processing = DEFAULT_POST_PROCESSING;
+  gst_vp9_dec->post_processing_flags = DEFAULT_POST_PROCESSING_FLAGS;
+  gst_vp9_dec->deblocking_level = DEFAULT_DEBLOCKING_LEVEL;
+  gst_vp9_dec->noise_level = DEFAULT_NOISE_LEVEL;
+}
+
+static void
+gst_vp9_dec_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstVP9Dec *dec;
+
+  g_return_if_fail (GST_IS_VP9_DEC (object));
+  dec = GST_VP9_DEC (object);
+
+  GST_DEBUG_OBJECT (object, "gst_vp9_dec_set_property");
+  switch (prop_id) {
+    case PROP_POST_PROCESSING:
+      dec->post_processing = g_value_get_boolean (value);
+      break;
+    case PROP_POST_PROCESSING_FLAGS:
+      dec->post_processing_flags = g_value_get_flags (value);
+      break;
+    case PROP_DEBLOCKING_LEVEL:
+      dec->deblocking_level = g_value_get_uint (value);
+      break;
+    case PROP_NOISE_LEVEL:
+      dec->noise_level = g_value_get_uint (value);
+      break;
+    case PROP_THREADS:
+      dec->threads = g_value_get_uint (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_vp9_dec_get_property (GObject * object, guint prop_id, GValue * value,
+    GParamSpec * pspec)
+{
+  GstVP9Dec *dec;
+
+  g_return_if_fail (GST_IS_VP9_DEC (object));
+  dec = GST_VP9_DEC (object);
+
+  switch (prop_id) {
+    case PROP_POST_PROCESSING:
+      g_value_set_boolean (value, dec->post_processing);
+      break;
+    case PROP_POST_PROCESSING_FLAGS:
+      g_value_set_flags (value, dec->post_processing_flags);
+      break;
+    case PROP_DEBLOCKING_LEVEL:
+      g_value_set_uint (value, dec->deblocking_level);
+      break;
+    case PROP_NOISE_LEVEL:
+      g_value_set_uint (value, dec->noise_level);
+      break;
+    case PROP_THREADS:
+      g_value_set_uint (value, dec->threads);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static gboolean
+gst_vp9_dec_start (GstVideoDecoder * decoder)
+{
+  GstVP9Dec *gst_vp9_dec = GST_VP9_DEC (decoder);
+
+  GST_DEBUG_OBJECT (gst_vp9_dec, "start");
+  gst_vp9_dec->decoder_inited = FALSE;
+
+  return TRUE;
+}
+
+static gboolean
+gst_vp9_dec_stop (GstVideoDecoder * base_video_decoder)
+{
+  GstVP9Dec *gst_vp9_dec = GST_VP9_DEC (base_video_decoder);
+
+  GST_DEBUG_OBJECT (gst_vp9_dec, "stop");
+
+  if (gst_vp9_dec->output_state) {
+    gst_video_codec_state_unref (gst_vp9_dec->output_state);
+    gst_vp9_dec->output_state = NULL;
+  }
+
+  if (gst_vp9_dec->input_state) {
+    gst_video_codec_state_unref (gst_vp9_dec->input_state);
+    gst_vp9_dec->input_state = NULL;
+  }
+
+  if (gst_vp9_dec->decoder_inited)
+    vpx_codec_destroy (&gst_vp9_dec->decoder);
+  gst_vp9_dec->decoder_inited = FALSE;
+
+  return TRUE;
+}
+
+static gboolean
+gst_vp9_dec_set_format (GstVideoDecoder * decoder, GstVideoCodecState * state)
+{
+  GstVP9Dec *gst_vp9_dec = GST_VP9_DEC (decoder);
+
+  GST_DEBUG_OBJECT (gst_vp9_dec, "set_format");
+
+  if (gst_vp9_dec->decoder_inited)
+    vpx_codec_destroy (&gst_vp9_dec->decoder);
+  gst_vp9_dec->decoder_inited = FALSE;
+
+  if (gst_vp9_dec->input_state)
+    gst_video_codec_state_unref (gst_vp9_dec->input_state);
+  gst_vp9_dec->input_state = gst_video_codec_state_ref (state);
+
+  return TRUE;
+}
+
+static gboolean
+gst_vp9_dec_reset (GstVideoDecoder * base_video_decoder, gboolean hard)
+{
+  GstVP9Dec *decoder;
+
+  GST_DEBUG_OBJECT (base_video_decoder, "reset");
+
+  decoder = GST_VP9_DEC (base_video_decoder);
+
+  if (decoder->output_state) {
+    gst_video_codec_state_unref (decoder->output_state);
+    decoder->output_state = NULL;
+  }
+
+  if (decoder->decoder_inited)
+    vpx_codec_destroy (&decoder->decoder);
+  decoder->decoder_inited = FALSE;
+
+  return TRUE;
+}
+
+static void
+gst_vp9_dec_send_tags (GstVP9Dec * dec)
+{
+  GstTagList *list;
+
+  list = gst_tag_list_new_empty ();
+  gst_tag_list_add (list, GST_TAG_MERGE_REPLACE,
+      GST_TAG_VIDEO_CODEC, "VP9 video", NULL);
+
+  gst_pad_push_event (GST_VIDEO_DECODER_SRC_PAD (dec),
+      gst_event_new_tag (list));
+}
+
+static void
+gst_vp9_dec_image_to_buffer (GstVP9Dec * dec, const vpx_image_t * img,
+    GstBuffer * buffer)
+{
+  int deststride, srcstride, height, width, line, comp;
+  guint8 *dest, *src;
+  GstVideoFrame frame;
+  GstVideoInfo *info = &dec->output_state->info;
+
+  if (!gst_video_frame_map (&frame, info, buffer, GST_MAP_WRITE)) {
+    GST_ERROR_OBJECT (dec, "Could not map video buffer");
+  }
+
+  for (comp = 0; comp < 3; comp++) {
+    dest = GST_VIDEO_FRAME_COMP_DATA (&frame, comp);
+    src = img->planes[comp];
+    width = GST_VIDEO_FRAME_COMP_WIDTH (&frame, comp);
+    height = GST_VIDEO_FRAME_COMP_HEIGHT (&frame, comp);
+    deststride = GST_VIDEO_FRAME_COMP_STRIDE (&frame, comp);
+    srcstride = img->stride[comp];
+
+    /* FIXME (Edward) : Do a plane memcpy is srcstride == deststride instead
+     * of copying line by line */
+    for (line = 0; line < height; line++) {
+      memcpy (dest, src, width);
+      dest += deststride;
+      src += srcstride;
+    }
+  }
+
+  gst_video_frame_unmap (&frame);
+}
+
+static GstFlowReturn
+open_codec (GstVP9Dec * dec, GstVideoCodecFrame * frame)
+{
+  int flags = 0;
+  vpx_codec_stream_info_t stream_info;
+  vpx_codec_caps_t caps;
+  vpx_codec_dec_cfg_t cfg;
+  vpx_codec_err_t status;
+  GstMapInfo minfo;
+
+  memset (&stream_info, 0, sizeof (stream_info));
+  memset (&cfg, 0, sizeof (cfg));
+  stream_info.sz = sizeof (stream_info);
+
+  if (!gst_buffer_map (frame->input_buffer, &minfo, GST_MAP_READ)) {
+    GST_ERROR_OBJECT (dec, "Failed to map input buffer");
+    return GST_FLOW_ERROR;
+  }
+
+  status = vpx_codec_peek_stream_info (&vpx_codec_vp9_dx_algo,
+      minfo.data, minfo.size, &stream_info);
+
+  gst_buffer_unmap (frame->input_buffer, &minfo);
+
+  if (status != VPX_CODEC_OK) {
+    GST_WARNING_OBJECT (dec, "VPX preprocessing error: %s",
+        gst_vpx_error_name (status));
+    gst_video_decoder_finish_frame (GST_VIDEO_DECODER (dec), frame);
+    return GST_FLOW_CUSTOM_SUCCESS_1;
+  }
+  if (!stream_info.is_kf) {
+    GST_WARNING_OBJECT (dec, "No keyframe, skipping");
+    gst_video_decoder_finish_frame (GST_VIDEO_DECODER (dec), frame);
+    return GST_FLOW_CUSTOM_SUCCESS_1;
+  }
+
+  /* FIXME: peek_stream_info() does not return valid values, take input caps */
+  stream_info.w = dec->input_state->info.width;
+  stream_info.h = dec->input_state->info.height;
+
+  cfg.w = stream_info.w;
+  cfg.h = stream_info.h;
+  cfg.threads = dec->threads;
+
+  caps = vpx_codec_get_caps (&vpx_codec_vp9_dx_algo);
+
+  if (dec->post_processing) {
+    if (!(caps & VPX_CODEC_CAP_POSTPROC)) {
+      GST_WARNING_OBJECT (dec, "Decoder does not support post processing");
+    } else {
+      flags |= VPX_CODEC_USE_POSTPROC;
+    }
+  }
+
+  status =
+      vpx_codec_dec_init (&dec->decoder, &vpx_codec_vp9_dx_algo, &cfg, flags);
+  if (status != VPX_CODEC_OK) {
+    GST_ELEMENT_ERROR (dec, LIBRARY, INIT,
+        ("Failed to initialize VP9 decoder"), ("%s",
+            gst_vpx_error_name (status)));
+    return GST_FLOW_ERROR;
+  }
+
+  if ((caps & VPX_CODEC_CAP_POSTPROC) && dec->post_processing) {
+    vp8_postproc_cfg_t pp_cfg = { 0, };
+
+    pp_cfg.post_proc_flag = dec->post_processing_flags;
+    pp_cfg.deblocking_level = dec->deblocking_level;
+    pp_cfg.noise_level = dec->noise_level;
+
+    status = vpx_codec_control (&dec->decoder, VP8_SET_POSTPROC, &pp_cfg);
+    if (status != VPX_CODEC_OK) {
+      GST_WARNING_OBJECT (dec, "Couldn't set postprocessing settings: %s",
+          gst_vpx_error_name (status));
+    }
+  }
+
+  dec->decoder_inited = TRUE;
+
+  return GST_FLOW_OK;
+}
+
+static GstFlowReturn
+gst_vp9_dec_handle_frame (GstVideoDecoder * decoder, GstVideoCodecFrame * frame)
+{
+  GstVP9Dec *dec;
+  GstFlowReturn ret = GST_FLOW_OK;
+  vpx_codec_err_t status;
+  vpx_codec_iter_t iter = NULL;
+  vpx_image_t *img;
+  long decoder_deadline = 0;
+  GstClockTimeDiff deadline;
+  GstMapInfo minfo;
+
+  GST_DEBUG_OBJECT (decoder, "handle_frame");
+
+  dec = GST_VP9_DEC (decoder);
+
+  if (!dec->decoder_inited) {
+    ret = open_codec (dec, frame);
+    if (ret == GST_FLOW_CUSTOM_SUCCESS_1)
+      return GST_FLOW_OK;
+    else if (ret != GST_FLOW_OK)
+      return ret;
+  }
+
+  deadline = gst_video_decoder_get_max_decode_time (decoder, frame);
+  if (deadline < 0) {
+    decoder_deadline = 1;
+  } else if (deadline == G_MAXINT64) {
+    decoder_deadline = 0;
+  } else {
+    decoder_deadline = MAX (1, deadline / GST_MSECOND);
+  }
+
+  if (!gst_buffer_map (frame->input_buffer, &minfo, GST_MAP_READ)) {
+    GST_ERROR_OBJECT (dec, "Failed to map input buffer");
+    return GST_FLOW_ERROR;
+  }
+
+  status = vpx_codec_decode (&dec->decoder,
+      minfo.data, minfo.size, NULL, decoder_deadline);
+
+  gst_buffer_unmap (frame->input_buffer, &minfo);
+
+  if (status) {
+    GST_VIDEO_DECODER_ERROR (decoder, 1, LIBRARY, ENCODE,
+        ("Failed to decode frame"), ("%s", gst_vpx_error_name (status)), ret);
+    return ret;
+  }
+
+  img = vpx_codec_get_frame (&dec->decoder, &iter);
+  if (img) {
+    GstVideoFormat fmt;
+
+    switch (img->fmt) {
+      case VPX_IMG_FMT_I420:
+        fmt = GST_VIDEO_FORMAT_I420;
+        break;
+      case VPX_IMG_FMT_YV12:
+        fmt = GST_VIDEO_FORMAT_YV12;
+        break;
+      case VPX_IMG_FMT_I422:
+        fmt = GST_VIDEO_FORMAT_Y42B;
+        break;
+      case VPX_IMG_FMT_I444:
+        fmt = GST_VIDEO_FORMAT_Y444;
+        break;
+      default:
+        vpx_img_free (img);
+        GST_ELEMENT_ERROR (decoder, LIBRARY, ENCODE,
+            ("Failed to decode frame"), ("Unsupported color format %d",
+                img->fmt));
+        return GST_FLOW_ERROR;
+        break;
+    }
+
+    /* FIXME: Width/height in the img is wrong */
+    if (!dec->output_state || dec->output_state->info.finfo->format != fmt      /*||
+                                                                                   dec->output_state->info.width != img->w ||
+                                                                                   dec->output_state->info.height != img->h */ ) {
+      gboolean send_tags = !dec->output_state;
+
+      if (dec->output_state)
+        gst_video_codec_state_unref (dec->output_state);
+
+      /* FIXME: The width/height in the img is wrong */
+      dec->output_state =
+          gst_video_decoder_set_output_state (GST_VIDEO_DECODER (dec),
+          fmt, dec->input_state->info.width, dec->input_state->info.height,
+          dec->input_state);
+      gst_video_decoder_negotiate (GST_VIDEO_DECODER (dec));
+
+      if (send_tags)
+        gst_vp9_dec_send_tags (dec);
+    }
+
+    if (deadline < 0) {
+      GST_LOG_OBJECT (dec, "Skipping late frame (%f s past deadline)",
+          (double) -deadline / GST_SECOND);
+      gst_video_decoder_drop_frame (decoder, frame);
+    } else {
+      ret = gst_video_decoder_allocate_output_frame (decoder, frame);
+
+      if (ret == GST_FLOW_OK) {
+        gst_vp9_dec_image_to_buffer (dec, img, frame->output_buffer);
+        ret = gst_video_decoder_finish_frame (decoder, frame);
+      } else {
+        gst_video_decoder_finish_frame (decoder, frame);
+      }
+    }
+
+    vpx_img_free (img);
+
+    while ((img = vpx_codec_get_frame (&dec->decoder, &iter))) {
+      GST_WARNING_OBJECT (decoder, "Multiple decoded frames... dropping");
+      vpx_img_free (img);
+    }
+  } else {
+    /* Invisible frame */
+    GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY (frame);
+    gst_video_decoder_finish_frame (decoder, frame);
+  }
+
+  return ret;
+}
+
+static gboolean
+gst_vp9_dec_decide_allocation (GstVideoDecoder * bdec, GstQuery * query)
+{
+  GstBufferPool *pool;
+  GstStructure *config;
+
+  if (!GST_VIDEO_DECODER_CLASS (parent_class)->decide_allocation (bdec, query))
+    return FALSE;
+
+  g_assert (gst_query_get_n_allocation_pools (query) > 0);
+  gst_query_parse_nth_allocation_pool (query, 0, &pool, NULL, NULL, NULL);
+  g_assert (pool != NULL);
+
+  config = gst_buffer_pool_get_config (pool);
+  if (gst_query_find_allocation_meta (query, GST_VIDEO_META_API_TYPE, NULL)) {
+    gst_buffer_pool_config_add_option (config,
+        GST_BUFFER_POOL_OPTION_VIDEO_META);
+  }
+  gst_buffer_pool_set_config (pool, config);
+  gst_object_unref (pool);
+
+  return TRUE;
+}
+
+#endif /* HAVE_VP9_DECODER */
diff --git a/ext/vpx/gstvp9dec.h b/ext/vpx/gstvp9dec.h
new file mode 100644
index 000000000..ae27f7e08
--- /dev/null
+++ b/ext/vpx/gstvp9dec.h
@@ -0,0 +1,84 @@
+/* VP9
+ * Copyright (C) 2006 David Schleef <ds@schleef.org>
+ * Copyright (C) 2008,2009,2010 Entropy Wave Inc
+ * Copyright (C) 2010-2013 Sebastian Dröge <slomo@circular-chaos.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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef __GST_VP9_DEC_H__
+#define __GST_VP9_DEC_H__
+
+#include <gst/gst.h>
+#include <gst/video/gstvideodecoder.h>
+
+/* FIXME: Undef HAVE_CONFIG_H because vpx_codec.h uses it,
+ * which causes compilation failures */
+#ifdef HAVE_CONFIG_H
+#undef HAVE_CONFIG_H
+#endif
+
+#include <vpx/vpx_decoder.h>
+#include <vpx/vp8dx.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_VP9_DEC \
+  (gst_vp9_dec_get_type())
+#define GST_VP9_DEC(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_VP9_DEC,GstVP9Dec))
+#define GST_VP9_DEC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_VP9_DEC,GstVP9DecClass))
+#define GST_IS_VP9_DEC(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_VP9_DEC))
+#define GST_IS_VP9_DEC_CLASS(obj) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_VP9_DEC))
+
+typedef struct _GstVP9Dec GstVP9Dec;
+typedef struct _GstVP9DecClass GstVP9DecClass;
+
+struct _GstVP9Dec
+{
+  GstVideoDecoder base_video_decoder;
+
+  /* < private > */
+  vpx_codec_ctx_t decoder;
+
+  /* state */
+  gboolean decoder_inited;
+
+  /* properties */
+  gboolean post_processing;
+  enum vp8_postproc_level post_processing_flags;
+  gint deblocking_level;
+  gint noise_level;
+  gint threads;
+
+  GstVideoCodecState *input_state;
+  GstVideoCodecState *output_state;
+};
+
+struct _GstVP9DecClass
+{
+  GstVideoDecoderClass base_video_decoder_class;
+};
+
+GType gst_vp9_dec_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GST_VP9_DEC_H__ */
diff --git a/ext/vpx/gstvp9enc.c b/ext/vpx/gstvp9enc.c
new file mode 100644
index 000000000..ea276f904
--- /dev/null
+++ b/ext/vpx/gstvp9enc.c
@@ -0,0 +1,1936 @@
+/* VP9
+ * Copyright (C) 2006 David Schleef <ds@schleef.org>
+ * Copyright (C) 2010 Entropy Wave Inc
+ * Copyright (C) 2010-2013 Sebastian Dröge <slomo@circular-chaos.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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+/**
+ * SECTION:element-vp9enc
+ * @see_also: vp9dec, webmmux, oggmux
+ *
+ * This element encodes raw video into a VP9 stream.
+ * <ulink url="http://www.webmproject.org">VP9</ulink> is a royalty-free
+ * video codec maintained by <ulink url="http://www.google.com/">Google
+ * </ulink>. It's the successor of On2 VP3, which was the base of the
+ * Theora video codec.
+ *
+ * To control the quality of the encoding, the #GstVP9Enc::target-bitrate,
+ * #GstVP9Enc::min-quantizer, #GstVP9Enc::max-quantizer or #GstVP9Enc::cq-level
+ * properties can be used. Which one is used depends on the mode selected by
+ * the #GstVP9Enc::end-usage property.
+ * See <ulink url="http://www.webmproject.org/docs/encoder-parameters/">Encoder Parameters</ulink>
+ * for explanation, examples for useful encoding parameters and more details
+ * on the encoding parameters.
+ *
+ * <refsect2>
+ * <title>Example pipeline</title>
+ * |[
+ * gst-launch -v videotestsrc num-buffers=1000 ! vp9enc ! webmmux ! filesink location=videotestsrc.webm
+ * ]| This example pipeline will encode a test video source to VP9 muxed in an
+ * WebM container.
+ * </refsect2>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifdef HAVE_VP9_ENCODER
+
+/* glib decided in 2.32 it would be a great idea to deprecated GValueArray without
+ * providing an alternative
+ *
+ * See https://bugzilla.gnome.org/show_bug.cgi?id=667228
+ * */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
+#include <gst/tag/tag.h>
+#include <gst/video/video.h>
+#include <string.h>
+
+#include "gstvp8utils.h"
+#include "gstvp9enc.h"
+
+GST_DEBUG_CATEGORY_STATIC (gst_vp9enc_debug);
+#define GST_CAT_DEFAULT gst_vp9enc_debug
+
+/* From vp9/vp9_cx_iface.c */
+#define DEFAULT_PROFILE 0
+
+#define DEFAULT_RC_END_USAGE VPX_VBR
+#define DEFAULT_RC_TARGET_BITRATE 256000
+#define DEFAULT_RC_MIN_QUANTIZER 4
+#define DEFAULT_RC_MAX_QUANTIZER 63
+
+#define DEFAULT_RC_DROPFRAME_THRESH 0
+#define DEFAULT_RC_RESIZE_ALLOWED 0
+#define DEFAULT_RC_RESIZE_UP_THRESH 30
+#define DEFAULT_RC_RESIZE_DOWN_THRESH 60
+#define DEFAULT_RC_UNDERSHOOT_PCT 100
+#define DEFAULT_RC_OVERSHOOT_PCT 100
+#define DEFAULT_RC_BUF_SZ 6000
+#define DEFAULT_RC_BUF_INITIAL_SZ 4000
+#define DEFAULT_RC_BUF_OPTIMAL_SZ 5000
+#define DEFAULT_RC_2PASS_VBR_BIAS_PCT 50
+#define DEFAULT_RC_2PASS_VBR_MINSECTION_PCT 0
+#define DEFAULT_RC_2PASS_VBR_MAXSECTION_PCT 400
+
+#define DEFAULT_KF_MODE VPX_KF_AUTO
+#define DEFAULT_KF_MAX_DIST 128
+
+#define DEFAULT_MULTIPASS_MODE VPX_RC_ONE_PASS
+#define DEFAULT_MULTIPASS_CACHE_FILE "multipass.cache"
+
+#define DEFAULT_TS_NUMBER_LAYERS 1
+#define DEFAULT_TS_TARGET_BITRATE NULL
+#define DEFAULT_TS_RATE_DECIMATOR NULL
+#define DEFAULT_TS_PERIODICITY 0
+#define DEFAULT_TS_LAYER_ID NULL
+
+#define DEFAULT_ERROR_RESILIENT 0
+#define DEFAULT_LAG_IN_FRAMES 0
+
+#define DEFAULT_THREADS 0
+
+#define DEFAULT_H_SCALING_MODE VP8E_NORMAL
+#define DEFAULT_V_SCALING_MODE VP8E_NORMAL
+#define DEFAULT_CPU_USED 0
+#define DEFAULT_ENABLE_AUTO_ALT_REF FALSE
+#define DEFAULT_DEADLINE VPX_DL_BEST_QUALITY
+#define DEFAULT_NOISE_SENSITIVITY 0
+#define DEFAULT_SHARPNESS 0
+#define DEFAULT_STATIC_THRESHOLD 0
+#define DEFAULT_TOKEN_PARTITIONS 0
+#define DEFAULT_ARNR_MAXFRAMES 0
+#define DEFAULT_ARNR_STRENGTH 3
+#define DEFAULT_ARNR_TYPE 3
+#define DEFAULT_TUNING VP8_TUNE_PSNR
+#define DEFAULT_CQ_LEVEL 10
+#define DEFAULT_MAX_INTRA_BITRATE_PCT 0
+#define DEFAULT_TIMEBASE_N 0
+#define DEFAULT_TIMEBASE_D 1
+
+enum
+{
+  PROP_0,
+  PROP_RC_END_USAGE,
+  PROP_RC_TARGET_BITRATE,
+  PROP_RC_MIN_QUANTIZER,
+  PROP_RC_MAX_QUANTIZER,
+  PROP_RC_DROPFRAME_THRESH,
+  PROP_RC_RESIZE_ALLOWED,
+  PROP_RC_RESIZE_UP_THRESH,
+  PROP_RC_RESIZE_DOWN_THRESH,
+  PROP_RC_UNDERSHOOT_PCT,
+  PROP_RC_OVERSHOOT_PCT,
+  PROP_RC_BUF_SZ,
+  PROP_RC_BUF_INITIAL_SZ,
+  PROP_RC_BUF_OPTIMAL_SZ,
+  PROP_RC_2PASS_VBR_BIAS_PCT,
+  PROP_RC_2PASS_VBR_MINSECTION_PCT,
+  PROP_RC_2PASS_VBR_MAXSECTION_PCT,
+  PROP_KF_MODE,
+  PROP_KF_MAX_DIST,
+  PROP_TS_NUMBER_LAYERS,
+  PROP_TS_TARGET_BITRATE,
+  PROP_TS_RATE_DECIMATOR,
+  PROP_TS_PERIODICITY,
+  PROP_TS_LAYER_ID,
+  PROP_MULTIPASS_MODE,
+  PROP_MULTIPASS_CACHE_FILE,
+  PROP_ERROR_RESILIENT,
+  PROP_LAG_IN_FRAMES,
+  PROP_THREADS,
+  PROP_DEADLINE,
+  PROP_H_SCALING_MODE,
+  PROP_V_SCALING_MODE,
+  PROP_CPU_USED,
+  PROP_ENABLE_AUTO_ALT_REF,
+  PROP_NOISE_SENSITIVITY,
+  PROP_SHARPNESS,
+  PROP_STATIC_THRESHOLD,
+  PROP_TOKEN_PARTITIONS,
+  PROP_ARNR_MAXFRAMES,
+  PROP_ARNR_STRENGTH,
+  PROP_ARNR_TYPE,
+  PROP_TUNING,
+  PROP_CQ_LEVEL,
+  PROP_MAX_INTRA_BITRATE_PCT,
+  PROP_TIMEBASE
+};
+
+#define GST_VP9_ENC_END_USAGE_TYPE (gst_vp9_enc_end_usage_get_type())
+static GType
+gst_vp9_enc_end_usage_get_type (void)
+{
+  static const GEnumValue values[] = {
+    {VPX_VBR, "Variable Bit Rate (VBR) mode", "vbr"},
+    {VPX_CBR, "Constant Bit Rate (CBR) mode", "cbr"},
+    {VPX_CQ, "Constant Quality Mode (CQ) mode", "cq"},
+    {0, NULL, NULL}
+  };
+  static volatile GType id = 0;
+
+  if (g_once_init_enter ((gsize *) & id)) {
+    GType _id;
+
+    _id = g_enum_register_static ("GstVP9EncEndUsage", values);
+
+    g_once_init_leave ((gsize *) & id, _id);
+  }
+
+  return id;
+}
+
+#define GST_VP9_ENC_MULTIPASS_MODE_TYPE (gst_vp9_enc_multipass_mode_get_type())
+static GType
+gst_vp9_enc_multipass_mode_get_type (void)
+{
+  static const GEnumValue values[] = {
+    {VPX_RC_ONE_PASS, "One pass encoding (default)", "one-pass"},
+    {VPX_RC_FIRST_PASS, "First pass of multipass encoding", "first-pass"},
+    {VPX_RC_LAST_PASS, "Last pass of multipass encoding", "last-pass"},
+    {0, NULL, NULL}
+  };
+  static volatile GType id = 0;
+
+  if (g_once_init_enter ((gsize *) & id)) {
+    GType _id;
+
+    _id = g_enum_register_static ("GstVP9EncMultipassMode", values);
+
+    g_once_init_leave ((gsize *) & id, _id);
+  }
+
+  return id;
+}
+
+#define GST_VP9_ENC_KF_MODE_TYPE (gst_vp9_enc_kf_mode_get_type())
+static GType
+gst_vp9_enc_kf_mode_get_type (void)
+{
+  static const GEnumValue values[] = {
+    {VPX_KF_AUTO, "Determine optimal placement automatically", "auto"},
+    {VPX_KF_DISABLED, "Don't automatically place keyframes", "disabled"},
+    {0, NULL, NULL}
+  };
+  static volatile GType id = 0;
+
+  if (g_once_init_enter ((gsize *) & id)) {
+    GType _id;
+
+    _id = g_enum_register_static ("GstVP9EncKfMode", values);
+
+    g_once_init_leave ((gsize *) & id, _id);
+  }
+
+  return id;
+}
+
+#define GST_VP9_ENC_TUNING_TYPE (gst_vp9_enc_tuning_get_type())
+static GType
+gst_vp9_enc_tuning_get_type (void)
+{
+  static const GEnumValue values[] = {
+    {VP8_TUNE_PSNR, "Tune for PSNR", "psnr"},
+    {VP8_TUNE_SSIM, "Tune for SSIM", "ssim"},
+    {0, NULL, NULL}
+  };
+  static volatile GType id = 0;
+
+  if (g_once_init_enter ((gsize *) & id)) {
+    GType _id;
+
+    _id = g_enum_register_static ("GstVP9EncTuning", values);
+
+    g_once_init_leave ((gsize *) & id, _id);
+  }
+
+  return id;
+}
+
+#define GST_VP9_ENC_SCALING_MODE_TYPE (gst_vp9_enc_scaling_mode_get_type())
+static GType
+gst_vp9_enc_scaling_mode_get_type (void)
+{
+  static const GEnumValue values[] = {
+    {VP8E_NORMAL, "Normal", "normal"},
+    {VP8E_FOURFIVE, "4:5", "4:5"},
+    {VP8E_THREEFIVE, "3:5", "3:5"},
+    {VP8E_ONETWO, "1:2", "1:2"},
+    {0, NULL, NULL}
+  };
+  static volatile GType id = 0;
+
+  if (g_once_init_enter ((gsize *) & id)) {
+    GType _id;
+
+    _id = g_enum_register_static ("GstVP9EncScalingMode", values);
+
+    g_once_init_leave ((gsize *) & id, _id);
+  }
+
+  return id;
+}
+
+#define GST_VP9_ENC_TOKEN_PARTITIONS_TYPE (gst_vp9_enc_token_partitions_get_type())
+static GType
+gst_vp9_enc_token_partitions_get_type (void)
+{
+  static const GEnumValue values[] = {
+    {VP8_ONE_TOKENPARTITION, "One token partition", "1"},
+    {VP8_TWO_TOKENPARTITION, "Two token partitions", "2"},
+    {VP8_FOUR_TOKENPARTITION, "Four token partitions", "4"},
+    {VP8_EIGHT_TOKENPARTITION, "Eight token partitions", "8"},
+    {0, NULL, NULL}
+  };
+  static volatile GType id = 0;
+
+  if (g_once_init_enter ((gsize *) & id)) {
+    GType _id;
+
+    _id = g_enum_register_static ("GstVP9EncTokenPartitions", values);
+
+    g_once_init_leave ((gsize *) & id, _id);
+  }
+
+  return id;
+}
+
+#define GST_VP9_ENC_ER_FLAGS_TYPE (gst_vp9_enc_er_flags_get_type())
+static GType
+gst_vp9_enc_er_flags_get_type (void)
+{
+  static const GFlagsValue values[] = {
+    {VPX_ERROR_RESILIENT_DEFAULT, "Default error resilience", "default"},
+    {VPX_ERROR_RESILIENT_PARTITIONS,
+        "Allow partitions to be decoded independently", "partitions"},
+    {0, NULL, NULL}
+  };
+  static volatile GType id = 0;
+
+  if (g_once_init_enter ((gsize *) & id)) {
+    GType _id;
+
+    _id = g_flags_register_static ("GstVP9EncErFlags", values);
+
+    g_once_init_leave ((gsize *) & id, _id);
+  }
+
+  return id;
+}
+
+static void gst_vp9_enc_finalize (GObject * object);
+static void gst_vp9_enc_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_vp9_enc_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+
+static gboolean gst_vp9_enc_start (GstVideoEncoder * encoder);
+static gboolean gst_vp9_enc_stop (GstVideoEncoder * encoder);
+static gboolean gst_vp9_enc_set_format (GstVideoEncoder *
+    video_encoder, GstVideoCodecState * state);
+static gboolean gst_vp9_enc_finish (GstVideoEncoder * video_encoder);
+static GstFlowReturn gst_vp9_enc_handle_frame (GstVideoEncoder *
+    video_encoder, GstVideoCodecFrame * frame);
+static gboolean gst_vp9_enc_sink_event (GstVideoEncoder *
+    video_encoder, GstEvent * event);
+static gboolean gst_vp9_enc_propose_allocation (GstVideoEncoder * encoder,
+    GstQuery * query);
+
+/* FIXME: Y42B and Y444 do not work yet it seems */
+static GstStaticPadTemplate gst_vp9_enc_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    /*GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("{ I420, YV12, Y42B, Y444 }")) */
+    GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("{ I420, YV12 }"))
+    );
+
+static GstStaticPadTemplate gst_vp9_enc_src_template =
+GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("video/x-vp9, " "profile = (string) {0, 1, 2, 3}")
+    );
+
+#define parent_class gst_vp9_enc_parent_class
+G_DEFINE_TYPE_WITH_CODE (GstVP9Enc, gst_vp9_enc, GST_TYPE_VIDEO_ENCODER,
+    G_IMPLEMENT_INTERFACE (GST_TYPE_TAG_SETTER, NULL);
+    G_IMPLEMENT_INTERFACE (GST_TYPE_PRESET, NULL););
+
+static void
+gst_vp9_enc_class_init (GstVP9EncClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstElementClass *element_class;
+  GstVideoEncoderClass *video_encoder_class;
+
+  gobject_class = G_OBJECT_CLASS (klass);
+  element_class = GST_ELEMENT_CLASS (klass);
+  video_encoder_class = GST_VIDEO_ENCODER_CLASS (klass);
+
+  gobject_class->set_property = gst_vp9_enc_set_property;
+  gobject_class->get_property = gst_vp9_enc_get_property;
+  gobject_class->finalize = gst_vp9_enc_finalize;
+
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&gst_vp9_enc_src_template));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&gst_vp9_enc_sink_template));
+
+  gst_element_class_set_static_metadata (element_class,
+      "On2 VP9 Encoder",
+      "Codec/Encoder/Video",
+      "Encode VP9 video streams", "David Schleef <ds@entropywave.com>, "
+      "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
+
+  video_encoder_class->start = gst_vp9_enc_start;
+  video_encoder_class->stop = gst_vp9_enc_stop;
+  video_encoder_class->handle_frame = gst_vp9_enc_handle_frame;
+  video_encoder_class->set_format = gst_vp9_enc_set_format;
+  video_encoder_class->finish = gst_vp9_enc_finish;
+  video_encoder_class->sink_event = gst_vp9_enc_sink_event;
+  video_encoder_class->propose_allocation = gst_vp9_enc_propose_allocation;
+
+  g_object_class_install_property (gobject_class, PROP_RC_END_USAGE,
+      g_param_spec_enum ("end-usage", "Rate control mode",
+          "Rate control mode",
+          GST_VP9_ENC_END_USAGE_TYPE, DEFAULT_RC_END_USAGE,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_RC_TARGET_BITRATE,
+      g_param_spec_int ("target-bitrate", "Target bitrate",
+          "Target bitrate (in bits/sec)",
+          0, G_MAXINT, DEFAULT_RC_TARGET_BITRATE,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_RC_MIN_QUANTIZER,
+      g_param_spec_int ("min-quantizer", "Minimum Quantizer",
+          "Minimum Quantizer (best)",
+          0, 63, DEFAULT_RC_MIN_QUANTIZER,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_RC_MAX_QUANTIZER,
+      g_param_spec_int ("max-quantizer", "Maximum Quantizer",
+          "Maximum Quantizer (worst)",
+          0, 63, DEFAULT_RC_MAX_QUANTIZER,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_RC_DROPFRAME_THRESH,
+      g_param_spec_int ("dropframe-threshold", "Drop Frame Threshold",
+          "Temporal resampling threshold (buf %)",
+          0, 100, DEFAULT_RC_DROPFRAME_THRESH,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_RC_RESIZE_ALLOWED,
+      g_param_spec_boolean ("resize-allowed", "Resize Allowed",
+          "Allow spatial resampling",
+          DEFAULT_RC_RESIZE_ALLOWED,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_RC_RESIZE_UP_THRESH,
+      g_param_spec_int ("resize-up-threshold", "Resize Up Threshold",
+          "Upscale threshold (buf %)",
+          0, 100, DEFAULT_RC_RESIZE_UP_THRESH,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_RC_RESIZE_DOWN_THRESH,
+      g_param_spec_int ("resize-down-threshold", "Resize Down Threshold",
+          "Downscale threshold (buf %)",
+          0, 100, DEFAULT_RC_RESIZE_DOWN_THRESH,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_RC_UNDERSHOOT_PCT,
+      g_param_spec_int ("undershoot", "Undershoot PCT",
+          "Datarate undershoot (min) target (%)",
+          0, 1000, DEFAULT_RC_UNDERSHOOT_PCT,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_RC_OVERSHOOT_PCT,
+      g_param_spec_int ("overshoot", "Overshoot PCT",
+          "Datarate overshoot (max) target (%)",
+          0, 1000, DEFAULT_RC_OVERSHOOT_PCT,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_RC_BUF_SZ,
+      g_param_spec_int ("buffer-size", "Buffer size",
+          "Client buffer size (ms)",
+          0, G_MAXINT, DEFAULT_RC_BUF_SZ,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_RC_BUF_INITIAL_SZ,
+      g_param_spec_int ("buffer-initial-size", "Buffer initial size",
+          "Initial client buffer size (ms)",
+          0, G_MAXINT, DEFAULT_RC_BUF_INITIAL_SZ,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_RC_BUF_OPTIMAL_SZ,
+      g_param_spec_int ("buffer-optimal-size", "Buffer optimal size",
+          "Optimal client buffer size (ms)",
+          0, G_MAXINT, DEFAULT_RC_BUF_OPTIMAL_SZ,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_RC_2PASS_VBR_BIAS_PCT,
+      g_param_spec_int ("twopass-vbr-bias", "2-pass VBR bias",
+          "CBR/VBR bias (0=CBR, 100=VBR)",
+          0, 100, DEFAULT_RC_2PASS_VBR_BIAS_PCT,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class,
+      PROP_RC_2PASS_VBR_MINSECTION_PCT,
+      g_param_spec_int ("twopass-vbr-minsection", "2-pass GOP min bitrate",
+          "GOP minimum bitrate (% target)", 0, G_MAXINT,
+          DEFAULT_RC_2PASS_VBR_MINSECTION_PCT,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class,
+      PROP_RC_2PASS_VBR_MAXSECTION_PCT,
+      g_param_spec_int ("twopass-vbr-maxsection", "2-pass GOP max bitrate",
+          "GOP maximum bitrate (% target)", 0, G_MAXINT,
+          DEFAULT_RC_2PASS_VBR_MINSECTION_PCT,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_KF_MODE,
+      g_param_spec_enum ("keyframe-mode", "Keyframe Mode",
+          "Keyframe placement",
+          GST_VP9_ENC_KF_MODE_TYPE, DEFAULT_KF_MODE,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_KF_MAX_DIST,
+      g_param_spec_int ("keyframe-max-dist", "Keyframe max distance",
+          "Maximum distance between keyframes (number of frames)",
+          0, G_MAXINT, DEFAULT_KF_MAX_DIST,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_MULTIPASS_MODE,
+      g_param_spec_enum ("multipass-mode", "Multipass Mode",
+          "Multipass encode mode",
+          GST_VP9_ENC_MULTIPASS_MODE_TYPE, DEFAULT_MULTIPASS_MODE,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_MULTIPASS_CACHE_FILE,
+      g_param_spec_string ("multipass-cache-file", "Multipass Cache File",
+          "Multipass cache file",
+          DEFAULT_MULTIPASS_CACHE_FILE,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_TS_NUMBER_LAYERS,
+      g_param_spec_int ("temporal-scalability-number-layers",
+          "Number of coding layers", "Number of coding layers to use", 1, 5,
+          DEFAULT_TS_NUMBER_LAYERS,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_TS_TARGET_BITRATE,
+      g_param_spec_value_array ("temporal-scalability-target-bitrate",
+          "Coding layer target bitrates",
+          "Target bitrates for coding layers (one per layer, decreasing)",
+          g_param_spec_int ("target-bitrate", "Target bitrate",
+              "Target bitrate", 0, G_MAXINT, DEFAULT_RC_TARGET_BITRATE,
+              G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS),
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_TS_RATE_DECIMATOR,
+      g_param_spec_value_array ("temporal-scalability-rate-decimator",
+          "Coding layer rate decimator",
+          "Rate decimation factors for each layer",
+          g_param_spec_int ("rate-decimator", "Rate decimator",
+              "Rate decimator", 0, 1000000000, 0,
+              G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS),
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_TS_PERIODICITY,
+      g_param_spec_int ("temporal-scalability-periodicity",
+          "Coding layer periodicity",
+          "Length of sequence that defines layer membership periodicity", 0, 16,
+          DEFAULT_TS_PERIODICITY,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_TS_LAYER_ID,
+      g_param_spec_value_array ("temporal-scalability-layer-id",
+          "Coding layer identification",
+          "Sequence defining coding layer membership",
+          g_param_spec_int ("layer-id", "Layer ID", "Layer ID", 0, 4, 0,
+              G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS),
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_LAG_IN_FRAMES,
+      g_param_spec_int ("lag-in-frames", "Lag in frames",
+          "Maximum number of frames to lag",
+          0, 25, DEFAULT_LAG_IN_FRAMES,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_ERROR_RESILIENT,
+      g_param_spec_flags ("error-resilient", "Error resilient",
+          "Error resilience flags",
+          GST_VP9_ENC_ER_FLAGS_TYPE, DEFAULT_ERROR_RESILIENT,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_THREADS,
+      g_param_spec_int ("threads", "Threads",
+          "Number of threads to use",
+          0, 64, DEFAULT_THREADS,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_DEADLINE,
+      g_param_spec_int64 ("deadline", "Deadline",
+          "Deadline per frame (usec, 0=disabled)",
+          0, G_MAXINT64, DEFAULT_DEADLINE,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_H_SCALING_MODE,
+      g_param_spec_enum ("horizontal-scaling-mode", "Horizontal scaling mode",
+          "Horizontal scaling mode",
+          GST_VP9_ENC_SCALING_MODE_TYPE, DEFAULT_H_SCALING_MODE,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_V_SCALING_MODE,
+      g_param_spec_enum ("vertical-scaling-mode", "Vertical scaling mode",
+          "Vertical scaling mode",
+          GST_VP9_ENC_SCALING_MODE_TYPE, DEFAULT_V_SCALING_MODE,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_CPU_USED,
+      g_param_spec_int ("cpu-used", "CPU used",
+          "CPU used",
+          -16, 16, DEFAULT_CPU_USED,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_ENABLE_AUTO_ALT_REF,
+      g_param_spec_boolean ("auto-alt-ref", "Auto alt reference frames",
+          "Automatically generate AltRef frames",
+          DEFAULT_ENABLE_AUTO_ALT_REF,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_NOISE_SENSITIVITY,
+      g_param_spec_int ("noise-sensitivity", "Noise sensitivity",
+          "Noise sensisivity (frames to blur)",
+          0, 6, DEFAULT_NOISE_SENSITIVITY,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_SHARPNESS,
+      g_param_spec_int ("sharpness", "Sharpness",
+          "Filter sharpness",
+          0, 7, DEFAULT_SHARPNESS,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_STATIC_THRESHOLD,
+      g_param_spec_int ("static-threshold", "Static Threshold",
+          "Motion detection threshold",
+          0, G_MAXINT, DEFAULT_STATIC_THRESHOLD,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_TOKEN_PARTITIONS,
+      g_param_spec_enum ("token-partitions", "Token partitions",
+          "Number of token partitions",
+          GST_VP9_ENC_TOKEN_PARTITIONS_TYPE, DEFAULT_TOKEN_PARTITIONS,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_ARNR_MAXFRAMES,
+      g_param_spec_int ("arnr-maxframes", "AltRef max frames",
+          "AltRef maximum number of frames",
+          0, 15, DEFAULT_ARNR_MAXFRAMES,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_ARNR_STRENGTH,
+      g_param_spec_int ("arnr-strength", "AltRef strength",
+          "AltRef strength",
+          0, 6, DEFAULT_ARNR_STRENGTH,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_ARNR_TYPE,
+      g_param_spec_int ("arnr-type", "AltRef type",
+          "AltRef type",
+          1, 3, DEFAULT_ARNR_TYPE,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_TUNING,
+      g_param_spec_enum ("tuning", "Tuning",
+          "Tuning",
+          GST_VP9_ENC_TUNING_TYPE, DEFAULT_TUNING,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_CQ_LEVEL,
+      g_param_spec_int ("cq-level", "Constrained quality level",
+          "Constrained quality level",
+          0, 63, DEFAULT_CQ_LEVEL,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_MAX_INTRA_BITRATE_PCT,
+      g_param_spec_int ("max-intra-bitrate", "Max Intra bitrate",
+          "Maximum Intra frame bitrate",
+          0, G_MAXINT, DEFAULT_MAX_INTRA_BITRATE_PCT,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_TIMEBASE,
+      gst_param_spec_fraction ("timebase", "Shortest interframe time",
+          "Fraction of one second that is the shortest interframe time - normally left as zero which will default to the framerate",
+          0, 1, G_MAXINT, 1, DEFAULT_TIMEBASE_N, DEFAULT_TIMEBASE_D,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  GST_DEBUG_CATEGORY_INIT (gst_vp9enc_debug, "vp9enc", 0, "VP9 Encoder");
+}
+
+static void
+gst_vp9_enc_init (GstVP9Enc * gst_vp9_enc)
+{
+  vpx_codec_err_t status;
+
+  GST_DEBUG_OBJECT (gst_vp9_enc, "init");
+
+  status =
+      vpx_codec_enc_config_default (&vpx_codec_vp9_cx_algo, &gst_vp9_enc->cfg,
+      0);
+  if (status != VPX_CODEC_OK) {
+    GST_ERROR_OBJECT (gst_vp9_enc,
+        "Failed to get default encoder configuration: %s",
+        gst_vpx_error_name (status));
+    gst_vp9_enc->have_default_config = FALSE;
+  } else {
+    gst_vp9_enc->have_default_config = TRUE;
+  }
+
+  gst_vp9_enc->cfg.rc_end_usage = DEFAULT_RC_END_USAGE;
+  gst_vp9_enc->cfg.rc_target_bitrate = DEFAULT_RC_TARGET_BITRATE / 1000;
+  gst_vp9_enc->rc_target_bitrate_set = FALSE;
+  gst_vp9_enc->cfg.rc_min_quantizer = DEFAULT_RC_MIN_QUANTIZER;
+  gst_vp9_enc->cfg.rc_max_quantizer = DEFAULT_RC_MAX_QUANTIZER;
+  gst_vp9_enc->cfg.rc_dropframe_thresh = DEFAULT_RC_DROPFRAME_THRESH;
+  gst_vp9_enc->cfg.rc_resize_allowed = DEFAULT_RC_RESIZE_ALLOWED;
+  gst_vp9_enc->cfg.rc_resize_up_thresh = DEFAULT_RC_RESIZE_UP_THRESH;
+  gst_vp9_enc->cfg.rc_resize_down_thresh = DEFAULT_RC_RESIZE_DOWN_THRESH;
+  gst_vp9_enc->cfg.rc_undershoot_pct = DEFAULT_RC_UNDERSHOOT_PCT;
+  gst_vp9_enc->cfg.rc_overshoot_pct = DEFAULT_RC_OVERSHOOT_PCT;
+  gst_vp9_enc->cfg.rc_buf_sz = DEFAULT_RC_BUF_SZ;
+  gst_vp9_enc->cfg.rc_buf_initial_sz = DEFAULT_RC_BUF_INITIAL_SZ;
+  gst_vp9_enc->cfg.rc_buf_optimal_sz = DEFAULT_RC_BUF_OPTIMAL_SZ;
+  gst_vp9_enc->cfg.rc_2pass_vbr_bias_pct = DEFAULT_RC_2PASS_VBR_BIAS_PCT;
+  gst_vp9_enc->cfg.rc_2pass_vbr_minsection_pct =
+      DEFAULT_RC_2PASS_VBR_MINSECTION_PCT;
+  gst_vp9_enc->cfg.rc_2pass_vbr_maxsection_pct =
+      DEFAULT_RC_2PASS_VBR_MAXSECTION_PCT;
+  gst_vp9_enc->cfg.kf_mode = DEFAULT_KF_MODE;
+  gst_vp9_enc->cfg.kf_max_dist = DEFAULT_KF_MAX_DIST;
+  gst_vp9_enc->cfg.g_pass = DEFAULT_MULTIPASS_MODE;
+  gst_vp9_enc->multipass_cache_file = g_strdup (DEFAULT_MULTIPASS_CACHE_FILE);
+  gst_vp9_enc->cfg.ts_number_layers = DEFAULT_TS_NUMBER_LAYERS;
+  gst_vp9_enc->n_ts_target_bitrate = 0;
+  gst_vp9_enc->n_ts_rate_decimator = 0;
+  gst_vp9_enc->cfg.ts_periodicity = DEFAULT_TS_PERIODICITY;
+  gst_vp9_enc->n_ts_layer_id = 0;
+  gst_vp9_enc->cfg.g_error_resilient = DEFAULT_ERROR_RESILIENT;
+  gst_vp9_enc->cfg.g_lag_in_frames = DEFAULT_LAG_IN_FRAMES;
+  gst_vp9_enc->cfg.g_threads = DEFAULT_THREADS;
+  gst_vp9_enc->deadline = DEFAULT_DEADLINE;
+  gst_vp9_enc->h_scaling_mode = DEFAULT_H_SCALING_MODE;
+  gst_vp9_enc->v_scaling_mode = DEFAULT_V_SCALING_MODE;
+  gst_vp9_enc->cpu_used = DEFAULT_CPU_USED;
+  gst_vp9_enc->enable_auto_alt_ref = DEFAULT_ENABLE_AUTO_ALT_REF;
+  gst_vp9_enc->noise_sensitivity = DEFAULT_NOISE_SENSITIVITY;
+  gst_vp9_enc->sharpness = DEFAULT_SHARPNESS;
+  gst_vp9_enc->static_threshold = DEFAULT_STATIC_THRESHOLD;
+  gst_vp9_enc->token_partitions = DEFAULT_TOKEN_PARTITIONS;
+  gst_vp9_enc->arnr_maxframes = DEFAULT_ARNR_MAXFRAMES;
+  gst_vp9_enc->arnr_strength = DEFAULT_ARNR_STRENGTH;
+  gst_vp9_enc->arnr_type = DEFAULT_ARNR_TYPE;
+  gst_vp9_enc->tuning = DEFAULT_TUNING;
+  gst_vp9_enc->cq_level = DEFAULT_CQ_LEVEL;
+  gst_vp9_enc->max_intra_bitrate_pct = DEFAULT_MAX_INTRA_BITRATE_PCT;
+  gst_vp9_enc->timebase_n = DEFAULT_TIMEBASE_N;
+  gst_vp9_enc->timebase_d = DEFAULT_TIMEBASE_D;
+
+  gst_vp9_enc->cfg.g_profile = DEFAULT_PROFILE;
+
+  g_mutex_init (&gst_vp9_enc->encoder_lock);
+}
+
+static void
+gst_vp9_enc_finalize (GObject * object)
+{
+  GstVP9Enc *gst_vp9_enc;
+
+  GST_DEBUG_OBJECT (object, "finalize");
+
+  g_return_if_fail (GST_IS_VP9_ENC (object));
+  gst_vp9_enc = GST_VP9_ENC (object);
+
+  g_free (gst_vp9_enc->multipass_cache_file);
+  gst_vp9_enc->multipass_cache_file = NULL;
+
+  if (gst_vp9_enc->input_state)
+    gst_video_codec_state_unref (gst_vp9_enc->input_state);
+
+  g_mutex_clear (&gst_vp9_enc->encoder_lock);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+
+}
+
+static void
+gst_vp9_enc_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstVP9Enc *gst_vp9_enc;
+  gboolean global = FALSE;
+  vpx_codec_err_t status;
+
+  g_return_if_fail (GST_IS_VP9_ENC (object));
+  gst_vp9_enc = GST_VP9_ENC (object);
+
+  GST_DEBUG_OBJECT (object, "gst_vp9_enc_set_property");
+  g_mutex_lock (&gst_vp9_enc->encoder_lock);
+  switch (prop_id) {
+    case PROP_RC_END_USAGE:
+      gst_vp9_enc->cfg.rc_end_usage = g_value_get_enum (value);
+      global = TRUE;
+      break;
+    case PROP_RC_TARGET_BITRATE:
+      gst_vp9_enc->cfg.rc_target_bitrate = g_value_get_int (value) / 1000;
+      gst_vp9_enc->rc_target_bitrate_set = TRUE;
+      global = TRUE;
+      break;
+    case PROP_RC_MIN_QUANTIZER:
+      gst_vp9_enc->cfg.rc_min_quantizer = g_value_get_int (value);
+      global = TRUE;
+      break;
+    case PROP_RC_MAX_QUANTIZER:
+      gst_vp9_enc->cfg.rc_max_quantizer = g_value_get_int (value);
+      global = TRUE;
+      break;
+    case PROP_RC_DROPFRAME_THRESH:
+      gst_vp9_enc->cfg.rc_dropframe_thresh = g_value_get_int (value);
+      global = TRUE;
+      break;
+    case PROP_RC_RESIZE_ALLOWED:
+      gst_vp9_enc->cfg.rc_resize_allowed = g_value_get_boolean (value);
+      global = TRUE;
+      break;
+    case PROP_RC_RESIZE_UP_THRESH:
+      gst_vp9_enc->cfg.rc_resize_up_thresh = g_value_get_int (value);
+      global = TRUE;
+      break;
+    case PROP_RC_RESIZE_DOWN_THRESH:
+      gst_vp9_enc->cfg.rc_resize_down_thresh = g_value_get_int (value);
+      global = TRUE;
+      break;
+    case PROP_RC_UNDERSHOOT_PCT:
+      gst_vp9_enc->cfg.rc_undershoot_pct = g_value_get_int (value);
+      global = TRUE;
+      break;
+    case PROP_RC_OVERSHOOT_PCT:
+      gst_vp9_enc->cfg.rc_overshoot_pct = g_value_get_int (value);
+      global = TRUE;
+      break;
+    case PROP_RC_BUF_SZ:
+      gst_vp9_enc->cfg.rc_buf_sz = g_value_get_int (value);
+      global = TRUE;
+      break;
+    case PROP_RC_BUF_INITIAL_SZ:
+      gst_vp9_enc->cfg.rc_buf_initial_sz = g_value_get_int (value);
+      global = TRUE;
+      break;
+    case PROP_RC_BUF_OPTIMAL_SZ:
+      gst_vp9_enc->cfg.rc_buf_optimal_sz = g_value_get_int (value);
+      global = TRUE;
+      break;
+    case PROP_RC_2PASS_VBR_BIAS_PCT:
+      gst_vp9_enc->cfg.rc_2pass_vbr_bias_pct = g_value_get_int (value);
+      global = TRUE;
+      break;
+    case PROP_RC_2PASS_VBR_MINSECTION_PCT:
+      gst_vp9_enc->cfg.rc_2pass_vbr_minsection_pct = g_value_get_int (value);
+      global = TRUE;
+      break;
+    case PROP_RC_2PASS_VBR_MAXSECTION_PCT:
+      gst_vp9_enc->cfg.rc_2pass_vbr_maxsection_pct = g_value_get_int (value);
+      global = TRUE;
+      break;
+    case PROP_KF_MODE:
+      gst_vp9_enc->cfg.kf_mode = g_value_get_enum (value);
+      global = TRUE;
+      break;
+    case PROP_KF_MAX_DIST:
+      gst_vp9_enc->cfg.kf_max_dist = g_value_get_int (value);
+      global = TRUE;
+      break;
+    case PROP_MULTIPASS_MODE:
+      gst_vp9_enc->cfg.g_pass = g_value_get_enum (value);
+      global = TRUE;
+      break;
+    case PROP_MULTIPASS_CACHE_FILE:
+      if (gst_vp9_enc->multipass_cache_file)
+        g_free (gst_vp9_enc->multipass_cache_file);
+      gst_vp9_enc->multipass_cache_file = g_value_dup_string (value);
+      break;
+    case PROP_TS_NUMBER_LAYERS:
+      gst_vp9_enc->cfg.ts_number_layers = g_value_get_int (value);
+      global = TRUE;
+      break;
+    case PROP_TS_TARGET_BITRATE:{
+      GValueArray *va = g_value_get_boxed (value);
+
+      memset (&gst_vp9_enc->cfg.ts_target_bitrate, 0,
+          sizeof (gst_vp9_enc->cfg.ts_target_bitrate));
+      if (va->n_values > VPX_TS_MAX_LAYERS) {
+        g_warning ("%s: Only %d layers allowed at maximum",
+            GST_ELEMENT_NAME (gst_vp9_enc), VPX_TS_MAX_LAYERS);
+      } else if (va) {
+        gint i;
+
+        for (i = 0; i < va->n_values; i++)
+          gst_vp9_enc->cfg.ts_target_bitrate[i] =
+              g_value_get_int (g_value_array_get_nth (va, i));
+        gst_vp9_enc->n_ts_target_bitrate = va->n_values;
+      } else {
+        gst_vp9_enc->n_ts_target_bitrate = 0;
+      }
+      global = TRUE;
+      break;
+    }
+    case PROP_TS_RATE_DECIMATOR:{
+      GValueArray *va = g_value_get_boxed (value);
+
+      memset (&gst_vp9_enc->cfg.ts_rate_decimator, 0,
+          sizeof (gst_vp9_enc->cfg.ts_rate_decimator));
+      if (va->n_values > VPX_TS_MAX_LAYERS) {
+        g_warning ("%s: Only %d layers allowed at maximum",
+            GST_ELEMENT_NAME (gst_vp9_enc), VPX_TS_MAX_LAYERS);
+      } else if (va) {
+        gint i;
+
+        for (i = 0; i < va->n_values; i++)
+          gst_vp9_enc->cfg.ts_rate_decimator[i] =
+              g_value_get_int (g_value_array_get_nth (va, i));
+        gst_vp9_enc->n_ts_rate_decimator = va->n_values;
+      } else {
+        gst_vp9_enc->n_ts_rate_decimator = 0;
+      }
+      global = TRUE;
+      break;
+    }
+    case PROP_TS_PERIODICITY:
+      gst_vp9_enc->cfg.ts_periodicity = g_value_get_int (value);
+      global = TRUE;
+      break;
+    case PROP_TS_LAYER_ID:{
+      GValueArray *va = g_value_get_boxed (value);
+
+      memset (&gst_vp9_enc->cfg.ts_layer_id, 0,
+          sizeof (gst_vp9_enc->cfg.ts_layer_id));
+      if (va->n_values > VPX_TS_MAX_PERIODICITY) {
+        g_warning ("%s: Only %d sized layer sequences allowed at maximum",
+            GST_ELEMENT_NAME (gst_vp9_enc), VPX_TS_MAX_PERIODICITY);
+      } else if (va) {
+        gint i;
+
+        for (i = 0; i < va->n_values; i++)
+          gst_vp9_enc->cfg.ts_layer_id[i] =
+              g_value_get_int (g_value_array_get_nth (va, i));
+        gst_vp9_enc->n_ts_layer_id = va->n_values;
+      } else {
+        gst_vp9_enc->n_ts_layer_id = 0;
+      }
+      global = TRUE;
+      break;
+    }
+    case PROP_ERROR_RESILIENT:
+      gst_vp9_enc->cfg.g_error_resilient = g_value_get_flags (value);
+      global = TRUE;
+      break;
+    case PROP_LAG_IN_FRAMES:
+      gst_vp9_enc->cfg.g_lag_in_frames = g_value_get_int (value);
+      global = TRUE;
+      break;
+    case PROP_THREADS:
+      gst_vp9_enc->cfg.g_threads = g_value_get_int (value);
+      global = TRUE;
+      break;
+    case PROP_DEADLINE:
+      gst_vp9_enc->deadline = g_value_get_int64 (value);
+      break;
+    case PROP_H_SCALING_MODE:
+      gst_vp9_enc->h_scaling_mode = g_value_get_enum (value);
+      if (gst_vp9_enc->inited) {
+        vpx_scaling_mode_t sm;
+
+        sm.h_scaling_mode = gst_vp9_enc->h_scaling_mode;
+        sm.v_scaling_mode = gst_vp9_enc->v_scaling_mode;
+
+        status =
+            vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_SCALEMODE, &sm);
+        if (status != VPX_CODEC_OK) {
+          GST_WARNING_OBJECT (gst_vp9_enc,
+              "Failed to set VP8E_SET_SCALEMODE: %s",
+              gst_vpx_error_name (status));
+        }
+      }
+      break;
+    case PROP_V_SCALING_MODE:
+      gst_vp9_enc->v_scaling_mode = g_value_get_enum (value);
+      if (gst_vp9_enc->inited) {
+        vpx_scaling_mode_t sm;
+
+        sm.h_scaling_mode = gst_vp9_enc->h_scaling_mode;
+        sm.v_scaling_mode = gst_vp9_enc->v_scaling_mode;
+
+        status =
+            vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_SCALEMODE, &sm);
+        if (status != VPX_CODEC_OK) {
+          GST_WARNING_OBJECT (gst_vp9_enc,
+              "Failed to set VP8E_SET_SCALEMODE: %s",
+              gst_vpx_error_name (status));
+        }
+      }
+      break;
+    case PROP_CPU_USED:
+      gst_vp9_enc->cpu_used = g_value_get_int (value);
+      if (gst_vp9_enc->inited) {
+        status =
+            vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_CPUUSED,
+            gst_vp9_enc->cpu_used);
+        if (status != VPX_CODEC_OK) {
+          GST_WARNING_OBJECT (gst_vp9_enc, "Failed to set VP8E_SET_CPUUSED: %s",
+              gst_vpx_error_name (status));
+        }
+      }
+      break;
+    case PROP_ENABLE_AUTO_ALT_REF:
+      gst_vp9_enc->enable_auto_alt_ref = g_value_get_boolean (value);
+      if (gst_vp9_enc->inited) {
+        status =
+            vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_ENABLEAUTOALTREF,
+            (gst_vp9_enc->enable_auto_alt_ref ? 1 : 0));
+        if (status != VPX_CODEC_OK) {
+          GST_WARNING_OBJECT (gst_vp9_enc,
+              "Failed to set VP8E_SET_ENABLEAUTOALTREF: %s",
+              gst_vpx_error_name (status));
+        }
+      }
+      break;
+    case PROP_NOISE_SENSITIVITY:
+      gst_vp9_enc->noise_sensitivity = g_value_get_int (value);
+      if (gst_vp9_enc->inited) {
+        status =
+            vpx_codec_control (&gst_vp9_enc->encoder,
+            VP8E_SET_NOISE_SENSITIVITY, gst_vp9_enc->noise_sensitivity);
+        if (status != VPX_CODEC_OK) {
+          GST_WARNING_OBJECT (gst_vp9_enc,
+              "Failed to set VP8E_SET_NOISE_SENSITIVITY: %s",
+              gst_vpx_error_name (status));
+        }
+      }
+      break;
+    case PROP_SHARPNESS:
+      gst_vp9_enc->sharpness = g_value_get_int (value);
+      if (gst_vp9_enc->inited) {
+        status = vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_SHARPNESS,
+            gst_vp9_enc->sharpness);
+        if (status != VPX_CODEC_OK) {
+          GST_WARNING_OBJECT (gst_vp9_enc,
+              "Failed to set VP8E_SET_SHARPNESS: %s",
+              gst_vpx_error_name (status));
+        }
+      }
+      break;
+    case PROP_STATIC_THRESHOLD:
+      gst_vp9_enc->static_threshold = g_value_get_int (value);
+      if (gst_vp9_enc->inited) {
+        status =
+            vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_STATIC_THRESHOLD,
+            gst_vp9_enc->static_threshold);
+        if (status != VPX_CODEC_OK) {
+          GST_WARNING_OBJECT (gst_vp9_enc,
+              "Failed to set VP8E_SET_STATIC_THRESHOLD: %s",
+              gst_vpx_error_name (status));
+        }
+      }
+      break;
+    case PROP_TOKEN_PARTITIONS:
+      gst_vp9_enc->token_partitions = g_value_get_enum (value);
+      if (gst_vp9_enc->inited) {
+        status =
+            vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_TOKEN_PARTITIONS,
+            gst_vp9_enc->token_partitions);
+        if (status != VPX_CODEC_OK) {
+          GST_WARNING_OBJECT (gst_vp9_enc,
+              "Failed to set VP8E_SET_TOKEN_PARTIONS: %s",
+              gst_vpx_error_name (status));
+        }
+      }
+      break;
+    case PROP_ARNR_MAXFRAMES:
+      gst_vp9_enc->arnr_maxframes = g_value_get_int (value);
+      if (gst_vp9_enc->inited) {
+        status =
+            vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_ARNR_MAXFRAMES,
+            gst_vp9_enc->arnr_maxframes);
+        if (status != VPX_CODEC_OK) {
+          GST_WARNING_OBJECT (gst_vp9_enc,
+              "Failed to set VP8E_SET_ARNR_MAXFRAMES: %s",
+              gst_vpx_error_name (status));
+        }
+      }
+      break;
+    case PROP_ARNR_STRENGTH:
+      gst_vp9_enc->arnr_strength = g_value_get_int (value);
+      if (gst_vp9_enc->inited) {
+        status =
+            vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_ARNR_STRENGTH,
+            gst_vp9_enc->arnr_strength);
+        if (status != VPX_CODEC_OK) {
+          GST_WARNING_OBJECT (gst_vp9_enc,
+              "Failed to set VP8E_SET_ARNR_STRENGTH: %s",
+              gst_vpx_error_name (status));
+        }
+      }
+      break;
+    case PROP_ARNR_TYPE:
+      gst_vp9_enc->arnr_type = g_value_get_int (value);
+      if (gst_vp9_enc->inited) {
+        status = vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_ARNR_TYPE,
+            gst_vp9_enc->arnr_type);
+        if (status != VPX_CODEC_OK) {
+          GST_WARNING_OBJECT (gst_vp9_enc,
+              "Failed to set VP8E_SET_ARNR_TYPE: %s",
+              gst_vpx_error_name (status));
+        }
+      }
+      break;
+    case PROP_TUNING:
+      gst_vp9_enc->tuning = g_value_get_enum (value);
+      if (gst_vp9_enc->inited) {
+        status = vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_TUNING,
+            gst_vp9_enc->tuning);
+        if (status != VPX_CODEC_OK) {
+          GST_WARNING_OBJECT (gst_vp9_enc,
+              "Failed to set VP8E_SET_TUNING: %s", gst_vpx_error_name (status));
+        }
+      }
+      break;
+    case PROP_CQ_LEVEL:
+      gst_vp9_enc->cq_level = g_value_get_int (value);
+      if (gst_vp9_enc->inited) {
+        status = vpx_codec_control (&gst_vp9_enc->encoder, VP8E_SET_CQ_LEVEL,
+            gst_vp9_enc->cq_level);
+        if (status != VPX_CODEC_OK) {
+          GST_WARNING_OBJECT (gst_vp9_enc,
+              "Failed to set VP8E_SET_CQ_LEVEL: %s",
+              gst_vpx_error_name (status));
+        }
+      }
+      break;
+    case PROP_MAX_INTRA_BITRATE_PCT:
+      gst_vp9_enc->max_intra_bitrate_pct = g_value_get_int (value);
+      if (gst_vp9_enc->inited) {
+        status =
+            vpx_codec_control (&gst_vp9_enc->encoder,
+            VP8E_SET_MAX_INTRA_BITRATE_PCT, gst_vp9_enc->max_intra_bitrate_pct);
+        if (status != VPX_CODEC_OK) {
+          GST_WARNING_OBJECT (gst_vp9_enc,
+              "Failed to set VP8E_SET_MAX_INTRA_BITRATE_PCT: %s",
+              gst_vpx_error_name (status));
+        }
+      }
+      break;
+    case PROP_TIMEBASE:
+      gst_vp9_enc->timebase_n = gst_value_get_fraction_numerator (value);
+      gst_vp9_enc->timebase_d = gst_value_get_fraction_denominator (value);
+      break;
+    default:
+      break;
+  }
+
+  if (global &&gst_vp9_enc->inited) {
+    status =
+        vpx_codec_enc_config_set (&gst_vp9_enc->encoder, &gst_vp9_enc->cfg);
+    if (status != VPX_CODEC_OK) {
+      g_mutex_unlock (&gst_vp9_enc->encoder_lock);
+      GST_ELEMENT_ERROR (gst_vp9_enc, LIBRARY, INIT,
+          ("Failed to set encoder configuration"), ("%s",
+              gst_vpx_error_name (status)));
+    } else {
+      g_mutex_unlock (&gst_vp9_enc->encoder_lock);
+    }
+  } else {
+    g_mutex_unlock (&gst_vp9_enc->encoder_lock);
+  }
+}
+
+static void
+gst_vp9_enc_get_property (GObject * object, guint prop_id, GValue * value,
+    GParamSpec * pspec)
+{
+  GstVP9Enc *gst_vp9_enc;
+
+  g_return_if_fail (GST_IS_VP9_ENC (object));
+  gst_vp9_enc = GST_VP9_ENC (object);
+
+  g_mutex_lock (&gst_vp9_enc->encoder_lock);
+  switch (prop_id) {
+    case PROP_RC_END_USAGE:
+      g_value_set_enum (value, gst_vp9_enc->cfg.rc_end_usage);
+      break;
+    case PROP_RC_TARGET_BITRATE:
+      g_value_set_int (value, gst_vp9_enc->cfg.rc_target_bitrate * 1000);
+      break;
+    case PROP_RC_MIN_QUANTIZER:
+      g_value_set_int (value, gst_vp9_enc->cfg.rc_min_quantizer);
+      break;
+    case PROP_RC_MAX_QUANTIZER:
+      g_value_set_int (value, gst_vp9_enc->cfg.rc_max_quantizer);
+      break;
+    case PROP_RC_DROPFRAME_THRESH:
+      g_value_set_int (value, gst_vp9_enc->cfg.rc_dropframe_thresh);
+      break;
+    case PROP_RC_RESIZE_ALLOWED:
+      g_value_set_boolean (value, gst_vp9_enc->cfg.rc_resize_allowed);
+      break;
+    case PROP_RC_RESIZE_UP_THRESH:
+      g_value_set_int (value, gst_vp9_enc->cfg.rc_resize_up_thresh);
+      break;
+    case PROP_RC_RESIZE_DOWN_THRESH:
+      g_value_set_int (value, gst_vp9_enc->cfg.rc_resize_down_thresh);
+      break;
+    case PROP_RC_UNDERSHOOT_PCT:
+      g_value_set_int (value, gst_vp9_enc->cfg.rc_undershoot_pct);
+      break;
+    case PROP_RC_OVERSHOOT_PCT:
+      g_value_set_int (value, gst_vp9_enc->cfg.rc_overshoot_pct);
+      break;
+    case PROP_RC_BUF_SZ:
+      g_value_set_int (value, gst_vp9_enc->cfg.rc_buf_sz);
+      break;
+    case PROP_RC_BUF_INITIAL_SZ:
+      g_value_set_int (value, gst_vp9_enc->cfg.rc_buf_initial_sz);
+      break;
+    case PROP_RC_BUF_OPTIMAL_SZ:
+      g_value_set_int (value, gst_vp9_enc->cfg.rc_buf_optimal_sz);
+      break;
+    case PROP_RC_2PASS_VBR_BIAS_PCT:
+      g_value_set_int (value, gst_vp9_enc->cfg.rc_2pass_vbr_bias_pct);
+      break;
+    case PROP_RC_2PASS_VBR_MINSECTION_PCT:
+      g_value_set_int (value, gst_vp9_enc->cfg.rc_2pass_vbr_minsection_pct);
+      break;
+    case PROP_RC_2PASS_VBR_MAXSECTION_PCT:
+      g_value_set_int (value, gst_vp9_enc->cfg.rc_2pass_vbr_maxsection_pct);
+      break;
+    case PROP_KF_MODE:
+      g_value_set_enum (value, gst_vp9_enc->cfg.kf_mode);
+      break;
+    case PROP_KF_MAX_DIST:
+      g_value_set_int (value, gst_vp9_enc->cfg.kf_max_dist);
+      break;
+    case PROP_MULTIPASS_MODE:
+      g_value_set_enum (value, gst_vp9_enc->cfg.g_pass);
+      break;
+    case PROP_MULTIPASS_CACHE_FILE:
+      g_value_set_string (value, gst_vp9_enc->multipass_cache_file);
+      break;
+    case PROP_TS_NUMBER_LAYERS:
+      g_value_set_int (value, gst_vp9_enc->cfg.ts_number_layers);
+      break;
+    case PROP_TS_TARGET_BITRATE:{
+      GValueArray *va;
+
+      if (gst_vp9_enc->n_ts_target_bitrate == 0) {
+        g_value_set_boxed (value, NULL);
+      } else {
+        gint i;
+
+        va = g_value_array_new (gst_vp9_enc->n_ts_target_bitrate);
+        for (i = 0; i < gst_vp9_enc->n_ts_target_bitrate; i++) {
+          GValue v = { 0, };
+
+          g_value_init (&v, G_TYPE_INT);
+          g_value_set_int (&v, gst_vp9_enc->cfg.ts_target_bitrate[i]);
+          g_value_array_append (va, &v);
+          g_value_unset (&v);
+        }
+        g_value_set_boxed (value, va);
+        g_value_array_free (va);
+      }
+      break;
+    }
+    case PROP_TS_RATE_DECIMATOR:{
+      GValueArray *va;
+
+      if (gst_vp9_enc->n_ts_rate_decimator == 0) {
+        g_value_set_boxed (value, NULL);
+      } else {
+        gint i;
+
+        va = g_value_array_new (gst_vp9_enc->n_ts_rate_decimator);
+        for (i = 0; i < gst_vp9_enc->n_ts_rate_decimator; i++) {
+          GValue v = { 0, };
+
+          g_value_init (&v, G_TYPE_INT);
+          g_value_set_int (&v, gst_vp9_enc->cfg.ts_rate_decimator[i]);
+          g_value_array_append (va, &v);
+          g_value_unset (&v);
+        }
+        g_value_set_boxed (value, va);
+        g_value_array_free (va);
+      }
+      break;
+    }
+    case PROP_TS_PERIODICITY:
+      g_value_set_int (value, gst_vp9_enc->cfg.ts_periodicity);
+      break;
+    case PROP_TS_LAYER_ID:{
+      GValueArray *va;
+
+      if (gst_vp9_enc->n_ts_layer_id == 0) {
+        g_value_set_boxed (value, NULL);
+      } else {
+        gint i;
+
+        va = g_value_array_new (gst_vp9_enc->n_ts_layer_id);
+        for (i = 0; i < gst_vp9_enc->n_ts_layer_id; i++) {
+          GValue v = { 0, };
+
+          g_value_init (&v, G_TYPE_INT);
+          g_value_set_int (&v, gst_vp9_enc->cfg.ts_layer_id[i]);
+          g_value_array_append (va, &v);
+          g_value_unset (&v);
+        }
+        g_value_set_boxed (value, va);
+        g_value_array_free (va);
+      }
+      break;
+    }
+    case PROP_ERROR_RESILIENT:
+      g_value_set_flags (value, gst_vp9_enc->cfg.g_error_resilient);
+      break;
+    case PROP_LAG_IN_FRAMES:
+      g_value_set_int (value, gst_vp9_enc->cfg.g_lag_in_frames);
+      break;
+    case PROP_THREADS:
+      g_value_set_int (value, gst_vp9_enc->cfg.g_threads);
+      break;
+    case PROP_DEADLINE:
+      g_value_set_int64 (value, gst_vp9_enc->deadline);
+      break;
+    case PROP_H_SCALING_MODE:
+      g_value_set_enum (value, gst_vp9_enc->h_scaling_mode);
+      break;
+    case PROP_V_SCALING_MODE:
+      g_value_set_enum (value, gst_vp9_enc->v_scaling_mode);
+      break;
+    case PROP_CPU_USED:
+      g_value_set_int (value, gst_vp9_enc->cpu_used);
+      break;
+    case PROP_ENABLE_AUTO_ALT_REF:
+      g_value_set_boolean (value, gst_vp9_enc->enable_auto_alt_ref);
+      break;
+    case PROP_NOISE_SENSITIVITY:
+      g_value_set_int (value, gst_vp9_enc->noise_sensitivity);
+      break;
+    case PROP_SHARPNESS:
+      g_value_set_int (value, gst_vp9_enc->sharpness);
+      break;
+    case PROP_STATIC_THRESHOLD:
+      g_value_set_int (value, gst_vp9_enc->static_threshold);
+      break;
+    case PROP_TOKEN_PARTITIONS:
+      g_value_set_enum (value, gst_vp9_enc->token_partitions);
+      break;
+    case PROP_ARNR_MAXFRAMES:
+      g_value_set_int (value, gst_vp9_enc->arnr_maxframes);
+      break;
+    case PROP_ARNR_STRENGTH:
+      g_value_set_int (value, gst_vp9_enc->arnr_strength);
+      break;
+    case PROP_ARNR_TYPE:
+      g_value_set_int (value, gst_vp9_enc->arnr_type);
+      break;
+    case PROP_TUNING:
+      g_value_set_enum (value, gst_vp9_enc->tuning);
+      break;
+    case PROP_CQ_LEVEL:
+      g_value_set_int (value, gst_vp9_enc->cq_level);
+      break;
+    case PROP_MAX_INTRA_BITRATE_PCT:
+      g_value_set_int (value, gst_vp9_enc->max_intra_bitrate_pct);
+      break;
+    case PROP_TIMEBASE:
+      gst_value_set_fraction (value, gst_vp9_enc->timebase_n,
+          gst_vp9_enc->timebase_d);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+
+  g_mutex_unlock (&gst_vp9_enc->encoder_lock);
+}
+
+static gboolean
+gst_vp9_enc_start (GstVideoEncoder * video_encoder)
+{
+  GstVP9Enc *encoder = GST_VP9_ENC (video_encoder);
+
+  GST_DEBUG_OBJECT (video_encoder, "start");
+
+  if (!encoder->have_default_config) {
+    GST_ELEMENT_ERROR (encoder, LIBRARY, INIT,
+        ("Failed to get default encoder configuration"), (NULL));
+    return FALSE;
+  }
+
+  return TRUE;
+}
+
+static gboolean
+gst_vp9_enc_stop (GstVideoEncoder * video_encoder)
+{
+  GstVP9Enc *encoder;
+
+  GST_DEBUG_OBJECT (video_encoder, "stop");
+
+  encoder = GST_VP9_ENC (video_encoder);
+
+  g_mutex_lock (&encoder->encoder_lock);
+  if (encoder->inited) {
+    vpx_codec_destroy (&encoder->encoder);
+    encoder->inited = FALSE;
+  }
+
+  if (encoder->first_pass_cache_content) {
+    g_byte_array_free (encoder->first_pass_cache_content, TRUE);
+    encoder->first_pass_cache_content = NULL;
+  }
+
+  if (encoder->cfg.rc_twopass_stats_in.buf) {
+    g_free (encoder->cfg.rc_twopass_stats_in.buf);
+    encoder->cfg.rc_twopass_stats_in.buf = NULL;
+    encoder->cfg.rc_twopass_stats_in.sz = 0;
+  }
+  g_mutex_unlock (&encoder->encoder_lock);
+
+  gst_tag_setter_reset_tags (GST_TAG_SETTER (encoder));
+
+  return TRUE;
+}
+
+static gint
+gst_vp9_enc_get_downstream_profile (GstVP9Enc * encoder)
+{
+  GstCaps *allowed;
+  GstStructure *s;
+  gint profile = DEFAULT_PROFILE;
+
+  allowed = gst_pad_get_allowed_caps (GST_VIDEO_ENCODER_SRC_PAD (encoder));
+  if (allowed) {
+    allowed = gst_caps_truncate (allowed);
+    s = gst_caps_get_structure (allowed, 0);
+    if (gst_structure_has_field (s, "profile")) {
+      const GValue *v = gst_structure_get_value (s, "profile");
+      const gchar *profile_str = NULL;
+
+      if (GST_VALUE_HOLDS_LIST (v) && gst_value_list_get_size (v) > 0) {
+        profile_str = g_value_get_string (gst_value_list_get_value (v, 0));
+      } else if (G_VALUE_HOLDS_STRING (v)) {
+        profile_str = g_value_get_string (v);
+      }
+
+      if (profile_str) {
+        gchar *endptr = NULL;
+
+        profile = g_ascii_strtoull (profile_str, &endptr, 10);
+        if (*endptr != '\0' || profile < 0 || profile > 3) {
+          GST_ERROR_OBJECT (encoder, "Invalid profile '%s'", profile_str);
+          profile = DEFAULT_PROFILE;
+        }
+      }
+    }
+    gst_caps_unref (allowed);
+  }
+
+  GST_DEBUG_OBJECT (encoder, "Using profile %d", profile);
+
+  return profile;
+}
+
+static gboolean
+gst_vp9_enc_set_format (GstVideoEncoder * video_encoder,
+    GstVideoCodecState * state)
+{
+  GstVP9Enc *encoder;
+  vpx_codec_err_t status;
+  vpx_image_t *image;
+  GstCaps *caps;
+  gboolean ret = TRUE;
+  GstVideoInfo *info = &state->info;
+  GstVideoCodecState *output_state;
+  gchar *profile_str;
+
+  encoder = GST_VP9_ENC (video_encoder);
+  GST_DEBUG_OBJECT (video_encoder, "set_format");
+
+  if (encoder->inited) {
+    GST_DEBUG_OBJECT (video_encoder, "refusing renegotiation");
+    return FALSE;
+  }
+
+  g_mutex_lock (&encoder->encoder_lock);
+  encoder->cfg.g_profile = gst_vp9_enc_get_downstream_profile (encoder);
+
+  /* Scale default bitrate to our size */
+  if (!encoder->rc_target_bitrate_set)
+    encoder->cfg.rc_target_bitrate =
+        gst_util_uint64_scale (DEFAULT_RC_TARGET_BITRATE,
+        GST_VIDEO_INFO_WIDTH (info) * GST_VIDEO_INFO_HEIGHT (info),
+        320 * 240 * 1000);
+
+  encoder->cfg.g_w = GST_VIDEO_INFO_WIDTH (info);
+  encoder->cfg.g_h = GST_VIDEO_INFO_HEIGHT (info);
+
+  if (encoder->timebase_n != 0 && encoder->timebase_d != 0) {
+    GST_DEBUG_OBJECT (video_encoder, "Using timebase configuration");
+    encoder->cfg.g_timebase.num = encoder->timebase_n;
+    encoder->cfg.g_timebase.den = encoder->timebase_d;
+  } else if (GST_VIDEO_INFO_FPS_D (info) != 0
+      && GST_VIDEO_INFO_FPS_N (info) != 0) {
+    /* GstVideoInfo holds either the framerate or max-framerate (if framerate
+     * is 0) in FPS so this will be used if max-framerate or framerate
+     * is set */
+    GST_DEBUG_OBJECT (video_encoder, "Setting timebase from framerate");
+    encoder->cfg.g_timebase.num = GST_VIDEO_INFO_FPS_D (info);
+    encoder->cfg.g_timebase.den = GST_VIDEO_INFO_FPS_N (info);
+  } else {
+    /* Zero framerate and max-framerate but still need to setup the timebase to avoid
+     * a divide by zero error. Presuming the lowest common denominator will be RTP -
+     * VP9 payload draft states clock rate of 90000 which should work for anyone where
+     * FPS < 90000 (shouldn't be too many cases where it's higher) though wouldn't be optimal. RTP specification
+     * http://tools.ietf.org/html/draft-ietf-payload-vp9-01 section 6.3.1 */
+    GST_WARNING_OBJECT (encoder,
+        "No timebase and zero framerate setting timebase to 1/90000");
+    encoder->cfg.g_timebase.num = 1;
+    encoder->cfg.g_timebase.den = 90000;
+  }
+
+  if (encoder->cfg.g_pass == VPX_RC_FIRST_PASS) {
+    encoder->first_pass_cache_content = g_byte_array_sized_new (4096);
+  } else if (encoder->cfg.g_pass == VPX_RC_LAST_PASS) {
+    GError *err = NULL;
+
+    if (!encoder->multipass_cache_file) {
+      GST_ELEMENT_ERROR (encoder, RESOURCE, OPEN_READ,
+          ("No multipass cache file provided"), (NULL));
+      g_mutex_unlock (&encoder->encoder_lock);
+      return FALSE;
+    }
+
+    if (!g_file_get_contents (encoder->multipass_cache_file,
+            (gchar **) & encoder->cfg.rc_twopass_stats_in.buf,
+            &encoder->cfg.rc_twopass_stats_in.sz, &err)) {
+      GST_ELEMENT_ERROR (encoder, RESOURCE, OPEN_READ,
+          ("Failed to read multipass cache file provided"), ("%s",
+              err->message));
+      g_error_free (err);
+      g_mutex_unlock (&encoder->encoder_lock);
+      return FALSE;
+    }
+  }
+
+  status = vpx_codec_enc_init (&encoder->encoder, &vpx_codec_vp9_cx_algo,
+      &encoder->cfg, 0);
+  if (status != VPX_CODEC_OK) {
+    GST_ELEMENT_ERROR (encoder, LIBRARY, INIT,
+        ("Failed to initialize encoder"), ("%s", gst_vpx_error_name (status)));
+    g_mutex_unlock (&encoder->encoder_lock);
+    return FALSE;
+  }
+
+  /* FIXME: Disabled for now, does not work with VP9 */
+#if 0
+  {
+    vpx_scaling_mode_t sm;
+
+    sm.h_scaling_mode = encoder->h_scaling_mode;
+    sm.v_scaling_mode = encoder->v_scaling_mode;
+
+    status = vpx_codec_control (&encoder->encoder, VP8E_SET_SCALEMODE, &sm);
+    if (status != VPX_CODEC_OK) {
+      GST_WARNING_OBJECT (encoder, "Failed to set VP8E_SET_SCALEMODE: %s",
+          gst_vpx_error_name (status));
+    }
+  }
+#endif
+
+  status =
+      vpx_codec_control (&encoder->encoder, VP8E_SET_CPUUSED,
+      encoder->cpu_used);
+  if (status != VPX_CODEC_OK) {
+    GST_WARNING_OBJECT (encoder, "Failed to set VP8E_SET_CPUUSED: %s",
+        gst_vpx_error_name (status));
+  }
+
+  status =
+      vpx_codec_control (&encoder->encoder, VP8E_SET_ENABLEAUTOALTREF,
+      (encoder->enable_auto_alt_ref ? 1 : 0));
+  if (status != VPX_CODEC_OK) {
+    GST_WARNING_OBJECT (encoder,
+        "Failed to set VP8E_SET_ENABLEAUTOALTREF: %s",
+        gst_vpx_error_name (status));
+  }
+  status = vpx_codec_control (&encoder->encoder, VP8E_SET_NOISE_SENSITIVITY,
+      encoder->noise_sensitivity);
+  if (status != VPX_CODEC_OK) {
+    GST_WARNING_OBJECT (encoder,
+        "Failed to set VP8E_SET_NOISE_SENSITIVITY: %s",
+        gst_vpx_error_name (status));
+  }
+  status = vpx_codec_control (&encoder->encoder, VP8E_SET_SHARPNESS,
+      encoder->sharpness);
+  if (status != VPX_CODEC_OK) {
+    GST_WARNING_OBJECT (encoder,
+        "Failed to set VP8E_SET_SHARPNESS: %s", gst_vpx_error_name (status));
+  }
+  status = vpx_codec_control (&encoder->encoder, VP8E_SET_STATIC_THRESHOLD,
+      encoder->static_threshold);
+  if (status != VPX_CODEC_OK) {
+    GST_WARNING_OBJECT (encoder,
+        "Failed to set VP8E_SET_STATIC_THRESHOLD: %s",
+        gst_vpx_error_name (status));
+  }
+  status = vpx_codec_control (&encoder->encoder, VP8E_SET_TOKEN_PARTITIONS,
+      encoder->token_partitions);
+  if (status != VPX_CODEC_OK) {
+    GST_WARNING_OBJECT (encoder,
+        "Failed to set VP8E_SET_TOKEN_PARTIONS: %s",
+        gst_vpx_error_name (status));
+  }
+  status = vpx_codec_control (&encoder->encoder, VP8E_SET_ARNR_MAXFRAMES,
+      encoder->arnr_maxframes);
+  if (status != VPX_CODEC_OK) {
+    GST_WARNING_OBJECT (encoder,
+        "Failed to set VP8E_SET_ARNR_MAXFRAMES: %s",
+        gst_vpx_error_name (status));
+  }
+  status = vpx_codec_control (&encoder->encoder, VP8E_SET_ARNR_STRENGTH,
+      encoder->arnr_strength);
+  if (status != VPX_CODEC_OK) {
+    GST_WARNING_OBJECT (encoder,
+        "Failed to set VP8E_SET_ARNR_STRENGTH: %s",
+        gst_vpx_error_name (status));
+  }
+  status = vpx_codec_control (&encoder->encoder, VP8E_SET_ARNR_TYPE,
+      encoder->arnr_type);
+  if (status != VPX_CODEC_OK) {
+    GST_WARNING_OBJECT (encoder,
+        "Failed to set VP8E_SET_ARNR_TYPE: %s", gst_vpx_error_name (status));
+  }
+  status = vpx_codec_control (&encoder->encoder, VP8E_SET_TUNING,
+      encoder->tuning);
+  if (status != VPX_CODEC_OK) {
+    GST_WARNING_OBJECT (encoder,
+        "Failed to set VP8E_SET_TUNING: %s", gst_vpx_error_name (status));
+  }
+  status = vpx_codec_control (&encoder->encoder, VP8E_SET_CQ_LEVEL,
+      encoder->cq_level);
+  if (status != VPX_CODEC_OK) {
+    GST_WARNING_OBJECT (encoder,
+        "Failed to set VP8E_SET_CQ_LEVEL: %s", gst_vpx_error_name (status));
+  }
+  status = vpx_codec_control (&encoder->encoder, VP8E_SET_MAX_INTRA_BITRATE_PCT,
+      encoder->max_intra_bitrate_pct);
+  if (status != VPX_CODEC_OK) {
+    GST_WARNING_OBJECT (encoder,
+        "Failed to set VP8E_SET_MAX_INTRA_BITRATE_PCT: %s",
+        gst_vpx_error_name (status));
+  }
+
+  if (GST_VIDEO_INFO_FPS_D (info) == 0 || GST_VIDEO_INFO_FPS_N (info) == 0) {
+    gst_video_encoder_set_latency (video_encoder, GST_CLOCK_TIME_NONE,
+        GST_CLOCK_TIME_NONE);
+  } else {
+    gst_video_encoder_set_latency (video_encoder, 0,
+        gst_util_uint64_scale (encoder->cfg.g_lag_in_frames,
+            GST_VIDEO_INFO_FPS_D (info) * GST_SECOND,
+            GST_VIDEO_INFO_FPS_N (info)));
+  }
+  encoder->inited = TRUE;
+
+  /* Store input state */
+  if (encoder->input_state)
+    gst_video_codec_state_unref (encoder->input_state);
+  encoder->input_state = gst_video_codec_state_ref (state);
+
+  /* prepare cached image buffer setup */
+  image = &encoder->image;
+  memset (image, 0, sizeof (*image));
+
+  switch (encoder->input_state->info.finfo->format) {
+    case GST_VIDEO_FORMAT_I420:
+      image->fmt = VPX_IMG_FMT_I420;
+      image->bps = 12;
+      image->x_chroma_shift = image->y_chroma_shift = 1;
+      break;
+    case GST_VIDEO_FORMAT_YV12:
+      image->fmt = VPX_IMG_FMT_YV12;
+      image->bps = 12;
+      image->x_chroma_shift = image->y_chroma_shift = 1;
+      break;
+    case GST_VIDEO_FORMAT_Y42B:
+      image->fmt = VPX_IMG_FMT_I422;
+      image->bps = 16;
+      image->x_chroma_shift = 1;
+      image->y_chroma_shift = 0;
+      break;
+    case GST_VIDEO_FORMAT_Y444:
+      image->fmt = VPX_IMG_FMT_I444;
+      image->bps = 24;
+      image->x_chroma_shift = image->y_chroma_shift = 0;
+      break;
+    default:
+      g_assert_not_reached ();
+      break;
+  }
+  image->w = image->d_w = GST_VIDEO_INFO_WIDTH (info);
+  image->h = image->d_h = GST_VIDEO_INFO_HEIGHT (info);
+
+  image->stride[VPX_PLANE_Y] = GST_VIDEO_INFO_COMP_STRIDE (info, 0);
+  image->stride[VPX_PLANE_U] = GST_VIDEO_INFO_COMP_STRIDE (info, 1);
+  image->stride[VPX_PLANE_V] = GST_VIDEO_INFO_COMP_STRIDE (info, 2);
+
+  profile_str = g_strdup_printf ("%d", encoder->cfg.g_profile);
+  caps = gst_caps_new_simple ("video/x-vp9",
+      "profile", G_TYPE_STRING, profile_str, NULL);
+  g_free (profile_str);
+
+  g_mutex_unlock (&encoder->encoder_lock);
+
+  output_state =
+      gst_video_encoder_set_output_state (video_encoder, caps, state);
+  gst_video_codec_state_unref (output_state);
+
+  gst_video_encoder_negotiate (GST_VIDEO_ENCODER (encoder));
+
+  return ret;
+}
+
+static GstFlowReturn
+gst_vp9_enc_process (GstVP9Enc * encoder)
+{
+  vpx_codec_iter_t iter = NULL;
+  const vpx_codec_cx_pkt_t *pkt;
+  GstVideoEncoder *video_encoder;
+  GstVideoCodecFrame *frame;
+  GstFlowReturn ret = GST_FLOW_OK;
+
+  video_encoder = GST_VIDEO_ENCODER (encoder);
+
+  g_mutex_lock (&encoder->encoder_lock);
+  pkt = vpx_codec_get_cx_data (&encoder->encoder, &iter);
+  while (pkt != NULL) {
+    GstBuffer *buffer;
+    gboolean invisible;
+
+    GST_DEBUG_OBJECT (encoder, "packet %u type %d", (guint) pkt->data.frame.sz,
+        pkt->kind);
+
+    if (pkt->kind == VPX_CODEC_STATS_PKT
+        && encoder->cfg.g_pass == VPX_RC_FIRST_PASS) {
+      GST_LOG_OBJECT (encoder, "handling STATS packet");
+
+      g_byte_array_append (encoder->first_pass_cache_content,
+          pkt->data.twopass_stats.buf, pkt->data.twopass_stats.sz);
+
+      frame = gst_video_encoder_get_oldest_frame (video_encoder);
+      if (frame != NULL) {
+        buffer = gst_buffer_new ();
+        GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_LIVE);
+        frame->output_buffer = buffer;
+        g_mutex_unlock (&encoder->encoder_lock);
+        ret = gst_video_encoder_finish_frame (video_encoder, frame);
+        g_mutex_lock (&encoder->encoder_lock);
+      }
+
+      pkt = vpx_codec_get_cx_data (&encoder->encoder, &iter);
+      continue;
+    } else if (pkt->kind != VPX_CODEC_CX_FRAME_PKT) {
+      GST_LOG_OBJECT (encoder, "non frame pkt: %d", pkt->kind);
+      pkt = vpx_codec_get_cx_data (&encoder->encoder, &iter);
+      continue;
+    }
+
+    invisible = (pkt->data.frame.flags & VPX_FRAME_IS_INVISIBLE) != 0;
+    frame = gst_video_encoder_get_oldest_frame (video_encoder);
+    g_assert (frame != NULL);
+    if ((pkt->data.frame.flags & VPX_FRAME_IS_KEY) != 0)
+      GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT (frame);
+    else
+      GST_VIDEO_CODEC_FRAME_UNSET_SYNC_POINT (frame);
+
+    /* FIXME : It would be nice to avoid the memory copy ... */
+    buffer =
+        gst_buffer_new_wrapped (g_memdup (pkt->data.frame.buf,
+            pkt->data.frame.sz), pkt->data.frame.sz);
+
+    if (invisible) {
+      g_mutex_unlock (&encoder->encoder_lock);
+      ret = gst_pad_push (GST_VIDEO_ENCODER_SRC_PAD (encoder), buffer);
+      g_mutex_lock (&encoder->encoder_lock);
+      gst_video_codec_frame_unref (frame);
+    } else {
+      frame->output_buffer = buffer;
+      g_mutex_unlock (&encoder->encoder_lock);
+      ret = gst_video_encoder_finish_frame (video_encoder, frame);
+      g_mutex_lock (&encoder->encoder_lock);
+    }
+
+    pkt = vpx_codec_get_cx_data (&encoder->encoder, &iter);
+  }
+  g_mutex_unlock (&encoder->encoder_lock);
+
+  return ret;
+}
+
+static GstFlowReturn
+gst_vp9_enc_finish (GstVideoEncoder * video_encoder)
+{
+  GstVP9Enc *encoder;
+  int flags = 0;
+  vpx_codec_err_t status;
+
+  GST_DEBUG_OBJECT (video_encoder, "finish");
+
+  encoder = GST_VP9_ENC (video_encoder);
+
+  g_mutex_lock (&encoder->encoder_lock);
+  status =
+      vpx_codec_encode (&encoder->encoder, NULL, encoder->n_frames, 1, flags,
+      encoder->deadline);
+  g_mutex_unlock (&encoder->encoder_lock);
+  if (status != 0) {
+    GST_ERROR_OBJECT (encoder, "encode returned %d %s", status,
+        gst_vpx_error_name (status));
+    return GST_FLOW_ERROR;
+  }
+
+  /* dispatch remaining frames */
+  gst_vp9_enc_process (encoder);
+
+  if (encoder->cfg.g_pass == VPX_RC_FIRST_PASS && encoder->multipass_cache_file) {
+    GError *err = NULL;
+
+    if (!g_file_set_contents (encoder->multipass_cache_file,
+            (const gchar *) encoder->first_pass_cache_content->data,
+            encoder->first_pass_cache_content->len, &err)) {
+      GST_ELEMENT_ERROR (encoder, RESOURCE, WRITE, (NULL),
+          ("Failed to write multipass cache file: %s", err->message));
+      g_error_free (err);
+    }
+  }
+
+  return GST_FLOW_OK;
+}
+
+static vpx_image_t *
+gst_vp9_enc_buffer_to_image (GstVP9Enc * enc, GstVideoFrame * frame)
+{
+  vpx_image_t *image = g_slice_new (vpx_image_t);
+
+  memcpy (image, &enc->image, sizeof (*image));
+
+  image->planes[VPX_PLANE_Y] = GST_VIDEO_FRAME_COMP_DATA (frame, 0);
+  image->planes[VPX_PLANE_U] = GST_VIDEO_FRAME_COMP_DATA (frame, 1);
+  image->planes[VPX_PLANE_V] = GST_VIDEO_FRAME_COMP_DATA (frame, 2);
+
+  image->stride[VPX_PLANE_Y] = GST_VIDEO_FRAME_COMP_STRIDE (frame, 0);
+  image->stride[VPX_PLANE_U] = GST_VIDEO_FRAME_COMP_STRIDE (frame, 1);
+  image->stride[VPX_PLANE_V] = GST_VIDEO_FRAME_COMP_STRIDE (frame, 2);
+
+  return image;
+}
+
+static GstFlowReturn
+gst_vp9_enc_handle_frame (GstVideoEncoder * video_encoder,
+    GstVideoCodecFrame * frame)
+{
+  GstVP9Enc *encoder;
+  vpx_codec_err_t status;
+  int flags = 0;
+  vpx_image_t *image;
+  GstVideoFrame vframe;
+
+  GST_DEBUG_OBJECT (video_encoder, "handle_frame");
+
+  encoder = GST_VP9_ENC (video_encoder);
+
+  encoder->n_frames++;
+
+  GST_DEBUG_OBJECT (video_encoder, "size %d %d",
+      GST_VIDEO_INFO_WIDTH (&encoder->input_state->info),
+      GST_VIDEO_INFO_HEIGHT (&encoder->input_state->info));
+
+  gst_video_frame_map (&vframe, &encoder->input_state->info,
+      frame->input_buffer, GST_MAP_READ);
+  image = gst_vp9_enc_buffer_to_image (encoder, &vframe);
+
+  if (GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME (frame)) {
+    flags |= VPX_EFLAG_FORCE_KF;
+  }
+
+  g_mutex_lock (&encoder->encoder_lock);
+  status = vpx_codec_encode (&encoder->encoder, image,
+      encoder->n_frames, 1, flags, encoder->deadline);
+  g_mutex_unlock (&encoder->encoder_lock);
+  gst_video_frame_unmap (&vframe);
+
+  if (status != 0) {
+    GST_ELEMENT_ERROR (encoder, LIBRARY, ENCODE,
+        ("Failed to encode frame"), ("%s", gst_vpx_error_name (status)));
+    return FALSE;
+  }
+  gst_video_codec_frame_unref (frame);
+  return gst_vp9_enc_process (encoder);
+}
+
+static gboolean
+gst_vp9_enc_sink_event (GstVideoEncoder * benc, GstEvent * event)
+{
+  GstVP9Enc *enc = GST_VP9_ENC (benc);
+
+  /* FIXME : Move this to base encoder class */
+
+  if (GST_EVENT_TYPE (event) == GST_EVENT_TAG) {
+    GstTagList *list;
+    GstTagSetter *setter = GST_TAG_SETTER (enc);
+    const GstTagMergeMode mode = gst_tag_setter_get_tag_merge_mode (setter);
+
+    gst_event_parse_tag (event, &list);
+    gst_tag_setter_merge_tags (setter, list, mode);
+  }
+
+  /* just peeked, baseclass handles the rest */
+  return GST_VIDEO_ENCODER_CLASS (parent_class)->sink_event (benc, event);
+}
+
+static gboolean
+gst_vp9_enc_propose_allocation (GstVideoEncoder * encoder, GstQuery * query)
+{
+  gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, NULL);
+
+  return GST_VIDEO_ENCODER_CLASS (parent_class)->propose_allocation (encoder,
+      query);
+}
+
+#endif /* HAVE_VP9_ENCODER */
diff --git a/ext/vpx/gstvp9enc.h b/ext/vpx/gstvp9enc.h
new file mode 100644
index 000000000..8026d5808
--- /dev/null
+++ b/ext/vpx/gstvp9enc.h
@@ -0,0 +1,113 @@
+/* VP9
+ * Copyright (C) 2006 David Schleef <ds@schleef.org>
+ * Copyright (C) 2010 Entropy Wave Inc
+ * Copyright (C) 2010-2013 Sebastian Dröge <slomo@circular-chaos.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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+#ifndef __GST_VP9_ENC_H__
+#define __GST_VP9_ENC_H__
+
+#include <gst/gst.h>
+#include <gst/video/gstvideoencoder.h>
+
+/* FIXME: Undef HAVE_CONFIG_H because vpx_codec.h uses it,
+ * which causes compilation failures */
+#ifdef HAVE_CONFIG_H
+#undef HAVE_CONFIG_H
+#endif
+
+#include <vpx/vpx_encoder.h>
+#include <vpx/vp8cx.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_VP9_ENC \
+  (gst_vp9_enc_get_type())
+#define GST_VP9_ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_VP9_ENC,GstVP9Enc))
+#define GST_VP9_ENC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_VP9_ENC,GstVP9EncClass))
+#define GST_IS_VP9_ENC(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_VP9_ENC))
+#define GST_IS_VP9_ENC_CLASS(obj) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_VP9_ENC))
+
+typedef struct _GstVP9Enc GstVP9Enc;
+typedef struct _GstVP9EncClass GstVP9EncClass;
+
+struct _GstVP9Enc
+{
+  GstVideoEncoder base_video_encoder;
+
+  /* < private > */
+  vpx_codec_ctx_t encoder;
+  GMutex encoder_lock;
+
+  /* properties */
+  vpx_codec_enc_cfg_t cfg;
+  gboolean have_default_config;
+  gboolean rc_target_bitrate_set;
+  gint n_ts_target_bitrate;
+  gint n_ts_rate_decimator;
+  gint n_ts_layer_id;
+  /* Global two-pass options */
+  gchar *multipass_cache_file;
+  GByteArray *first_pass_cache_content;
+
+  /* Encode parameter */
+  gint64 deadline;
+
+  /* Controls */
+  VPX_SCALING_MODE h_scaling_mode;
+  VPX_SCALING_MODE v_scaling_mode;
+  int cpu_used;
+  gboolean enable_auto_alt_ref;
+  unsigned int noise_sensitivity;
+  unsigned int sharpness;
+  unsigned int static_threshold;
+  vp8e_token_partitions token_partitions;
+  unsigned int arnr_maxframes;
+  unsigned int arnr_strength;
+  unsigned int arnr_type;
+  vp8e_tuning tuning;
+  unsigned int cq_level;
+  unsigned int max_intra_bitrate_pct;
+  /* Timebase - a value of 0 will use the framerate */
+  unsigned int timebase_n;
+  unsigned int timebase_d;
+
+  /* state */
+  gboolean inited;
+
+  vpx_image_t image;
+
+  int n_frames;
+
+  GstVideoCodecState *input_state;
+};
+
+struct _GstVP9EncClass
+{
+  GstVideoEncoderClass base_video_encoder_class;
+};
+
+GType gst_vp9_enc_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GST_VP9_ENC_H__ */
diff --git a/ext/vpx/plugin.c b/ext/vpx/plugin.c
index 363e3328e..4f04efaff 100644
--- a/ext/vpx/plugin.c
+++ b/ext/vpx/plugin.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  */
 
@@ -27,6 +27,8 @@
 
 #include "gstvp8dec.h"
 #include "gstvp8enc.h"
+#include "gstvp9dec.h"
+#include "gstvp9enc.h"
 
 static gboolean
 plugin_init (GstPlugin * plugin)
@@ -41,6 +43,16 @@ plugin_init (GstPlugin * plugin)
       gst_vp8_enc_get_type ());
 #endif
 
+#ifdef HAVE_VP9_DECODER
+  gst_element_register (plugin, "vp9dec", GST_RANK_PRIMARY,
+      gst_vp9_dec_get_type ());
+#endif
+
+#ifdef HAVE_VP9_ENCODER
+  gst_element_register (plugin, "vp9enc", GST_RANK_PRIMARY,
+      gst_vp9_enc_get_type ());
+#endif
+
   return TRUE;
 }
 
diff --git a/ext/wavpack/Makefile.in b/ext/wavpack/Makefile.in
index 704b03c83..b5c56c4b0 100644
--- a/ext/wavpack/Makefile.in
+++ b/ext/wavpack/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/wavpack
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -140,10 +166,23 @@ libgstwavpack_la_OBJECTS = $(am_libgstwavpack_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstwavpack_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstwavpack_la_CFLAGS) $(CFLAGS) \
 	$(libgstwavpack_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -156,20 +195,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstwavpack_la_SOURCES)
 DIST_SOURCES = $(libgstwavpack_la_SOURCES)
 am__can_run_installinfo = \
@@ -178,6 +213,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -346,6 +398,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -562,6 +615,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -588,12 +642,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstwavpack.la: $(libgstwavpack_la_OBJECTS) $(libgstwavpack_la_DEPENDENCIES) $(EXTRA_libgstwavpack_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstwavpack_la_LINK) -rpath $(plugindir) $(libgstwavpack_la_OBJECTS) $(libgstwavpack_la_LIBADD) $(LIBS)
 
@@ -671,26 +728,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -702,15 +748,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -719,6 +761,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -863,19 +920,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/wavpack/gstwavpack.c b/ext/wavpack/gstwavpack.c
index 74bb070f4..1609aa2e1 100644
--- a/ext/wavpack/gstwavpack.c
+++ b/ext/wavpack/gstwavpack.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/ext/wavpack/gstwavpackcommon.c b/ext/wavpack/gstwavpackcommon.c
index c38447079..40ffb3af7 100644
--- a/ext/wavpack/gstwavpackcommon.c
+++ b/ext/wavpack/gstwavpackcommon.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/ext/wavpack/gstwavpackcommon.h b/ext/wavpack/gstwavpackcommon.h
index 4f0568354..f4a81bfe4 100644
--- a/ext/wavpack/gstwavpackcommon.h
+++ b/ext/wavpack/gstwavpackcommon.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_WAVPACK_COMMON_H__
diff --git a/ext/wavpack/gstwavpackdec.c b/ext/wavpack/gstwavpackdec.c
index 86425ad3a..6032b1bf7 100644
--- a/ext/wavpack/gstwavpackdec.c
+++ b/ext/wavpack/gstwavpackdec.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/ext/wavpack/gstwavpackdec.h b/ext/wavpack/gstwavpackdec.h
index 006428cea..8a002b4bf 100644
--- a/ext/wavpack/gstwavpackdec.h
+++ b/ext/wavpack/gstwavpackdec.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_WAVPACK_DEC_H__
diff --git a/ext/wavpack/gstwavpackenc.c b/ext/wavpack/gstwavpackenc.c
index cdd55923f..eccafa192 100644
--- a/ext/wavpack/gstwavpackenc.c
+++ b/ext/wavpack/gstwavpackenc.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/ext/wavpack/gstwavpackenc.h b/ext/wavpack/gstwavpackenc.h
index aab4296fb..26a5b1128 100644
--- a/ext/wavpack/gstwavpackenc.h
+++ b/ext/wavpack/gstwavpackenc.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_WAVPACK_ENC_H__
diff --git a/ext/wavpack/gstwavpackstreamreader.c b/ext/wavpack/gstwavpackstreamreader.c
index da1fdc27b..f10cf5840 100644
--- a/ext/wavpack/gstwavpackstreamreader.c
+++ b/ext/wavpack/gstwavpackstreamreader.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <string.h>
diff --git a/ext/wavpack/gstwavpackstreamreader.h b/ext/wavpack/gstwavpackstreamreader.h
index 713b4c155..17412cc6c 100644
--- a/ext/wavpack/gstwavpackstreamreader.h
+++ b/ext/wavpack/gstwavpackstreamreader.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_WAVPACK_STREAM_READER_H__
diff --git a/gst-libs/gst/gettext.h b/gst-libs/gst/gettext.h
index 59902b35e..fc70ab795 100644
--- a/gst-libs/gst/gettext.h
+++ b/gst-libs/gst/gettext.h
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Library General Public
    License along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
    USA.  */
 
 #ifndef _LIBGETTEXT_H
diff --git a/gst-libs/gst/glib-compat-private.h b/gst-libs/gst/glib-compat-private.h
index 9a92993d4..8f37de205 100644
--- a/gst-libs/gst/glib-compat-private.h
+++ b/gst-libs/gst/glib-compat-private.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GLIB_COMPAT_PRIVATE_H__
diff --git a/gst-libs/gst/gst-i18n-plugin.h b/gst-libs/gst/gst-i18n-plugin.h
index fe597d229..ff40ce251 100644
--- a/gst-libs/gst/gst-i18n-plugin.h
+++ b/gst-libs/gst/gst-i18n-plugin.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_I18N_PLUGIN_H__
diff --git a/gst-plugins-good.doap b/gst-plugins-good.doap
index 0d53a264e..7fa664d9f 100644
--- a/gst-plugins-good.doap
+++ b/gst-plugins-good.doap
@@ -34,61 +34,21 @@ the plug-in code, LGPL or LGPL-compatible for the supporting library).
 
  <release>
   <Version>
-   <revision>1.0.8</revision>
-   <branch>1.0</branch>
+   <revision>1.1.2</revision>
+   <branch>1.1</branch>
    <name></name>
    <created>2013-07-11</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.0.8.tar.xz" />
-  </Version>
- </release>
-
- <release>
-  <Version>
-   <revision>1.0.7</revision>
-   <branch>1.0</branch>
-   <name></name>
-   <created>2013-04-26</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.0.7.tar.xz" />
-  </Version>
- </release>
-
- <release>
-  <Version>
-   <revision>1.0.6</revision>
-   <branch>1.0</branch>
-   <name></name>
-   <created>2013-03-22</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.0.6.tar.xz" />
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.1.2.tar.xz" />
   </Version>
  </release>
 
  <release>
   <Version>
-   <revision>1.0.5</revision>
-   <branch>1.0</branch>
-   <name></name>
-   <created>2013-01-08</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.0.5.tar.xz" />
-  </Version>
- </release>
-
- <release>
-  <Version>
-   <revision>1.0.4</revision>
-   <branch>1.0</branch>
-   <name></name>
-   <created>2012-12-18</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.0.4.tar.xz" />
-  </Version>
- </release>
-
- <release>
-  <Version>
-   <revision>1.0.3</revision>
-   <branch>1.0</branch>
+   <revision>1.1.1</revision>
+   <branch>1.1</branch>
    <name></name>
-   <created>2012-11-21</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.0.3.tar.xz" />
+   <created>2013-06-05</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.1.1.tar.xz" />
   </Version>
  </release>
 
diff --git a/gst-plugins-good.spec b/gst-plugins-good.spec
index 7cf54ce80..398e68565 100644
--- a/gst-plugins-good.spec
+++ b/gst-plugins-good.spec
@@ -4,7 +4,7 @@
 %define gst_minver   0.11.0
 
 Name: 		%{gstreamer}-plugins-good
-Version: 	1.0.8
+Version: 	1.1.2
 Release: 	1.gst
 Summary: 	GStreamer plug-ins with good code and licensing
 
@@ -129,6 +129,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/gstreamer-%{majorminor}/libgstshapewipe.so
 %{_libdir}/gstreamer-%{majorminor}/libgstvideofilter.so
 %{_libdir}/gstreamer-%{majorminor}/libgstaudioparsers.so
+%{_libdir}/gstreamer-%{majorminor}/libgstdtmf.so
 
 # sys plugins
 %{_libdir}/gstreamer-%{majorminor}/libgstvideo4linux2.so
diff --git a/gst-plugins-good.spec.in b/gst-plugins-good.spec.in
index 088f139e4..50c02b1bb 100644
--- a/gst-plugins-good.spec.in
+++ b/gst-plugins-good.spec.in
@@ -129,6 +129,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/gstreamer-%{majorminor}/libgstshapewipe.so
 %{_libdir}/gstreamer-%{majorminor}/libgstvideofilter.so
 %{_libdir}/gstreamer-%{majorminor}/libgstaudioparsers.so
+%{_libdir}/gstreamer-%{majorminor}/libgstdtmf.so
 
 # sys plugins
 @USE_GST_V4L2_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstvideo4linux2.so
diff --git a/gst/Makefile.in b/gst/Makefile.in
index a167544f9..afcb69343 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -20,23 +19,51 @@
 # descending into all subdirectories a second time, but only after the first
 # (parallel) run has finished, so it should go right through the second time.
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,8 +83,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/parallel-subdirs.mak
+DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \
+	$(srcdir)/Makefile.in $(srcdir)/Makefile.am
 subdir = gst
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -65,7 +92,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-gcc-inline-assembly.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 \
@@ -101,21 +127,28 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -123,9 +156,29 @@ am__can_run_installinfo = \
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -319,6 +372,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -523,22 +577,25 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -553,57 +610,12 @@ $(RECURSIVE_TARGETS):
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-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: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -619,12 +631,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -636,15 +643,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -653,6 +656,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -813,22 +831,20 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean 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 installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean 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 \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 .PHONY: independent-subdirs $(SUBDIRS)
diff --git a/gst/alpha/Makefile.in b/gst/alpha/Makefile.in
index eaef61b62..afa5a32c9 100644
--- a/gst/alpha/Makefile.in
+++ b/gst/alpha/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/alpha
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -136,6 +162,7 @@ libgstalpha_la_OBJECTS = $(am_libgstalpha_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstalpha_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstalpha_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstalpha_la_CFLAGS) $(CFLAGS) \
@@ -148,6 +175,18 @@ libgstalphacolor_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstalphacolor_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstalphacolor_la_CFLAGS) $(CFLAGS) \
 	$(libgstalphacolor_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -160,20 +199,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstalpha_la_SOURCES) $(libgstalphacolor_la_SOURCES)
 DIST_SOURCES = $(libgstalpha_la_SOURCES) \
 	$(libgstalphacolor_la_SOURCES)
@@ -183,6 +218,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -351,6 +403,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -565,6 +618,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -591,14 +645,18 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstalpha.la: $(libgstalpha_la_OBJECTS) $(libgstalpha_la_DEPENDENCIES) $(EXTRA_libgstalpha_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstalpha_la_LINK) -rpath $(plugindir) $(libgstalpha_la_OBJECTS) $(libgstalpha_la_LIBADD) $(LIBS)
+
 libgstalphacolor.la: $(libgstalphacolor_la_OBJECTS) $(libgstalphacolor_la_DEPENDENCIES) $(EXTRA_libgstalphacolor_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstalphacolor_la_LINK) -rpath $(plugindir) $(libgstalphacolor_la_OBJECTS) $(libgstalphacolor_la_LIBADD) $(LIBS)
 
@@ -652,26 +710,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -683,15 +730,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -700,6 +743,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -844,19 +902,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/alpha/gstalpha.c b/gst/alpha/gstalpha.c
index df53d7863..5213d2c7e 100644
--- a/gst/alpha/gstalpha.c
+++ b/gst/alpha/gstalpha.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -191,9 +191,9 @@ gst_alpha_method_get_type (void)
   static GType alpha_method_type = 0;
   static const GEnumValue alpha_method[] = {
     {ALPHA_METHOD_SET, "Set/adjust alpha channel", "set"},
-    {ALPHA_METHOD_GREEN, "Chroma Key green", "green"},
-    {ALPHA_METHOD_BLUE, "Chroma Key blue", "blue"},
-    {ALPHA_METHOD_CUSTOM, "Chroma Key on target_r/g/b", "custom"},
+    {ALPHA_METHOD_GREEN, "Chroma Key on pure green", "green"},
+    {ALPHA_METHOD_BLUE, "Chroma Key on pure blue", "blue"},
+    {ALPHA_METHOD_CUSTOM, "Chroma Key on custom RGB values", "custom"},
     {0, NULL, NULL},
   };
 
@@ -227,15 +227,18 @@ gst_alpha_class_init (GstAlphaClass * klass)
           0.0, 1.0, DEFAULT_ALPHA,
           G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TARGET_R,
-      g_param_spec_uint ("target-r", "Target Red", "The Red target", 0, 255,
+      g_param_spec_uint ("target-r", "Target Red",
+          "The red color value for custom RGB chroma keying", 0, 255,
           DEFAULT_TARGET_R,
           G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TARGET_G,
-      g_param_spec_uint ("target-g", "Target Green", "The Green target", 0, 255,
+      g_param_spec_uint ("target-g", "Target Green",
+          "The green color value for custom RGB chroma keying", 0, 255,
           DEFAULT_TARGET_G,
           G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TARGET_B,
-      g_param_spec_uint ("target-b", "Target Blue", "The Blue target", 0, 255,
+      g_param_spec_uint ("target-b", "Target Blue",
+          "The blue color value for custom RGB chroma keying", 0, 255,
           DEFAULT_TARGET_B,
           G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_ANGLE,
@@ -253,7 +256,7 @@ gst_alpha_class_init (GstAlphaClass * klass)
           G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (G_OBJECT_CLASS (klass),
       PROP_WHITE_SENSITIVITY, g_param_spec_uint ("white-sensitivity",
-          "Sensitivity", "Sensitivity to bright colors", 0, 128,
+          "White Sensitivity", "Sensitivity to bright colors", 0, 128,
           DEFAULT_WHITE_SENSITIVITY,
           G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (G_OBJECT_CLASS (klass),
@@ -327,20 +330,6 @@ gst_alpha_set_property (GObject * object, guint prop_id,
           && (alpha->prefer_passthrough);
       alpha->method = method;
 
-      switch (alpha->method) {
-        case ALPHA_METHOD_GREEN:
-          alpha->target_r = 0;
-          alpha->target_g = 255;
-          alpha->target_b = 0;
-          break;
-        case ALPHA_METHOD_BLUE:
-          alpha->target_r = 0;
-          alpha->target_g = 0;
-          alpha->target_b = 255;
-          break;
-        default:
-          break;
-      }
       gst_alpha_set_process_function (alpha);
       gst_alpha_init_params (alpha);
       break;
@@ -2300,8 +2289,26 @@ gst_alpha_init_params_full (GstAlpha * alpha,
   gfloat tmp;
   gfloat tmp1, tmp2;
   gfloat y;
+  guint target_r = alpha->target_r;
+  guint target_g = alpha->target_g;
+  guint target_b = alpha->target_b;
   const gint *matrix;
 
+  switch (alpha->method) {
+    case ALPHA_METHOD_GREEN:
+      target_r = 0;
+      target_g = 255;
+      target_b = 0;
+      break;
+    case ALPHA_METHOD_BLUE:
+      target_r = 0;
+      target_g = 0;
+      target_b = 255;
+      break;
+    default:
+      break;
+  }
+
   /* RGB->RGB: convert to SDTV YUV, chroma keying, convert back
    * YUV->RGB: chroma keying, convert to RGB
    * RGB->YUV: convert to YUV, chroma keying
@@ -2325,20 +2332,18 @@ gst_alpha_init_params_full (GstAlpha * alpha,
         (alpha->out_sdtv) ? cog_rgb_to_ycbcr_matrix_8bit_sdtv :
         cog_rgb_to_ycbcr_matrix_8bit_hdtv;
 
-  y = (matrix[0] * ((gint) alpha->target_r) +
-      matrix[1] * ((gint) alpha->target_g) +
-      matrix[2] * ((gint) alpha->target_b) + matrix[3]) >> 8;
+  y = (matrix[0] * ((gint) target_r) +
+      matrix[1] * ((gint) target_g) +
+      matrix[2] * ((gint) target_b) + matrix[3]) >> 8;
   /* Cb,Cr without offset here because the chroma keying
    * works with them being in range [-128,127]
    */
   tmp1 =
-      (matrix[4] * ((gint) alpha->target_r) +
-      matrix[5] * ((gint) alpha->target_g) +
-      matrix[6] * ((gint) alpha->target_b)) >> 8;
+      (matrix[4] * ((gint) target_r) +
+      matrix[5] * ((gint) target_g) + matrix[6] * ((gint) target_b)) >> 8;
   tmp2 =
-      (matrix[8] * ((gint) alpha->target_r) +
-      matrix[9] * ((gint) alpha->target_g) +
-      matrix[10] * ((gint) alpha->target_b)) >> 8;
+      (matrix[8] * ((gint) target_r) +
+      matrix[9] * ((gint) target_g) + matrix[10] * ((gint) target_b)) >> 8;
 
   kgl = sqrt (tmp1 * tmp1 + tmp2 * tmp2);
   alpha->cb = 127 * (tmp1 / kgl);
diff --git a/gst/alpha/gstalpha.h b/gst/alpha/gstalpha.h
index a3131341d..948fb78a5 100644
--- a/gst/alpha/gstalpha.h
+++ b/gst/alpha/gstalpha.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_ALPHA_H__
diff --git a/gst/alpha/gstalphacolor.c b/gst/alpha/gstalphacolor.c
index ee8d97a05..99676776e 100644
--- a/gst/alpha/gstalphacolor.c
+++ b/gst/alpha/gstalphacolor.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/alpha/gstalphacolor.h b/gst/alpha/gstalphacolor.h
index ca0e5cc41..540f62129 100644
--- a/gst/alpha/gstalphacolor.h
+++ b/gst/alpha/gstalphacolor.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _GST_ALPHA_COLOR_H_
diff --git a/gst/apetag/Makefile.in b/gst/apetag/Makefile.in
index c52048a78..1f960441b 100644
--- a/gst/apetag/Makefile.in
+++ b/gst/apetag/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/apetag
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -135,10 +161,23 @@ libgstapetag_la_OBJECTS = $(am_libgstapetag_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstapetag_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstapetag_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstapetag_la_CFLAGS) $(CFLAGS) \
 	$(libgstapetag_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstapetag_la_SOURCES)
 DIST_SOURCES = $(libgstapetag_la_SOURCES)
 am__can_run_installinfo = \
@@ -173,6 +208,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -341,6 +393,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -551,6 +604,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -577,12 +631,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstapetag.la: $(libgstapetag_la_OBJECTS) $(libgstapetag_la_DEPENDENCIES) $(EXTRA_libgstapetag_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstapetag_la_LINK) -rpath $(plugindir) $(libgstapetag_la_OBJECTS) $(libgstapetag_la_LIBADD) $(LIBS)
 
@@ -628,26 +685,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -659,15 +705,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -676,6 +718,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -820,19 +877,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/apetag/gstapedemux.c b/gst/apetag/gstapedemux.c
index 4181d98d7..840765441 100644
--- a/gst/apetag/gstapedemux.c
+++ b/gst/apetag/gstapedemux.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/apetag/gstapedemux.h b/gst/apetag/gstapedemux.h
index 3378e5b47..f340547b8 100644
--- a/gst/apetag/gstapedemux.h
+++ b/gst/apetag/gstapedemux.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_APE_DEMUX_H__
diff --git a/gst/audiofx/Makefile.am b/gst/audiofx/Makefile.am
index c0e7297de..3ca249c12 100644
--- a/gst/audiofx/Makefile.am
+++ b/gst/audiofx/Makefile.am
@@ -5,6 +5,9 @@ plugin_LTLIBRARIES = libgstaudiofx.la
 # FIXME 0.11: ignore GValueArray warnings for now until this is sorted
 ERROR_CFLAGS=
 
+ORC_SOURCE=audiopanoramaorc
+include $(top_srcdir)/common/orc.mak
+
 # sources used to compile this plug-in
 libgstaudiofx_la_SOURCES = audiofx.c\
 	audiopanorama.c \
@@ -20,17 +23,21 @@ libgstaudiofx_la_SOURCES = audiofx.c\
 	audiowsincband.c \
 	audiowsinclimit.c \
 	audiofirfilter.c \
-	audioecho.c
+	audioecho.c \
+	gstscaletempo.c
+nodist_libgstaudiofx_la_SOURCES = $(ORC_NODIST_SOURCES)
 
 # flags used to compile this plugin
 libgstaudiofx_la_CFLAGS = $(GST_CFLAGS) \
 	$(GST_BASE_CFLAGS) \
-	$(GST_PLUGINS_BASE_CFLAGS)
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(ORC_CFLAGS)
 libgstaudiofx_la_LIBADD = $(GST_LIBS) \
 	$(GST_BASE_LIBS) \
 	$(GST_PLUGINS_BASE_LIBS) \
 	-lgstaudio-$(GST_API_VERSION) \
 	-lgstfft-$(GST_API_VERSION) \
+	$(ORC_LIBS) \
 	$(LIBM)
 libgstaudiofx_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstaudiofx_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
@@ -50,6 +57,7 @@ noinst_HEADERS = audiopanorama.h \
         audiowsinclimit.h \
 	audiofirfilter.h \
 	audioecho.h \
+	gstscaletempo.h \
 	math_compat.h
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/audiofx/Makefile.in b/gst/audiofx/Makefile.in
index 12081a7cf..b659b9ee3 100644
--- a/gst/audiofx/Makefile.in
+++ b/gst/audiofx/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,25 +16,75 @@
 
 # plugindir is set in configure
 
+#
+# 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 '+='.
+#
+
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -55,16 +104,15 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS)
 subdir = gst/audiofx
-DIST_COMMON = $(noinst_HEADERS) $(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-gcc-inline-assembly.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 \
@@ -132,7 +180,7 @@ LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgstaudiofx_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1)
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libgstaudiofx_la_OBJECTS = libgstaudiofx_la-audiofx.lo \
 	libgstaudiofx_la-audiopanorama.lo \
 	libgstaudiofx_la-audioinvert.lo \
@@ -147,15 +195,32 @@ am_libgstaudiofx_la_OBJECTS = libgstaudiofx_la-audiofx.lo \
 	libgstaudiofx_la-audiowsincband.lo \
 	libgstaudiofx_la-audiowsinclimit.lo \
 	libgstaudiofx_la-audiofirfilter.lo \
-	libgstaudiofx_la-audioecho.lo
-libgstaudiofx_la_OBJECTS = $(am_libgstaudiofx_la_OBJECTS)
+	libgstaudiofx_la-audioecho.lo \
+	libgstaudiofx_la-gstscaletempo.lo
+am__objects_1 = libgstaudiofx_la-tmp-orc.lo
+nodist_libgstaudiofx_la_OBJECTS = $(am__objects_1)
+libgstaudiofx_la_OBJECTS = $(am_libgstaudiofx_la_OBJECTS) \
+	$(nodist_libgstaudiofx_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstaudiofx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) \
 	$(libgstaudiofx_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -168,21 +233,18 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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 = $(libgstaudiofx_la_SOURCES)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(libgstaudiofx_la_SOURCES) \
+	$(nodist_libgstaudiofx_la_SOURCES)
 DIST_SOURCES = $(libgstaudiofx_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
@@ -190,6 +252,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -360,6 +439,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -521,6 +601,16 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 plugin_LTLIBRARIES = libgstaudiofx.la
+ORC_SOURCE = audiopanoramaorc
+EXTRA_DIST = $(ORC_SOURCE).orc
+ORC_NODIST_SOURCES = tmp-orc.c $(ORC_SOURCE).h
+BUILT_SOURCES = tmp-orc.c $(ORC_SOURCE).h
+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     $@";
 
 # sources used to compile this plug-in
 libgstaudiofx_la_SOURCES = audiofx.c\
@@ -537,19 +627,23 @@ libgstaudiofx_la_SOURCES = audiofx.c\
 	audiowsincband.c \
 	audiowsinclimit.c \
 	audiofirfilter.c \
-	audioecho.c
+	audioecho.c \
+	gstscaletempo.c
 
+nodist_libgstaudiofx_la_SOURCES = $(ORC_NODIST_SOURCES)
 
 # flags used to compile this plugin
 libgstaudiofx_la_CFLAGS = $(GST_CFLAGS) \
 	$(GST_BASE_CFLAGS) \
-	$(GST_PLUGINS_BASE_CFLAGS)
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(ORC_CFLAGS)
 
 libgstaudiofx_la_LIBADD = $(GST_LIBS) \
 	$(GST_BASE_LIBS) \
 	$(GST_PLUGINS_BASE_LIBS) \
 	-lgstaudio-$(GST_API_VERSION) \
 	-lgstfft-$(GST_API_VERSION) \
+	$(ORC_LIBS) \
 	$(LIBM)
 
 libgstaudiofx_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
@@ -570,13 +664,15 @@ noinst_HEADERS = audiopanorama.h \
         audiowsinclimit.h \
 	audiofirfilter.h \
 	audioecho.h \
+	gstscaletempo.h \
 	math_compat.h
 
-all: all-am
+all: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/orc.mak $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -597,6 +693,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
@@ -606,6 +703,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -632,12 +730,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstaudiofx.la: $(libgstaudiofx_la_OBJECTS) $(libgstaudiofx_la_DEPENDENCIES) $(EXTRA_libgstaudiofx_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstaudiofx_la_LINK) -rpath $(plugindir) $(libgstaudiofx_la_OBJECTS) $(libgstaudiofx_la_LIBADD) $(LIBS)
 
@@ -662,6 +763,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudiofx_la-audiopanorama.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudiofx_la-audiowsincband.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudiofx_la-audiowsinclimit.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudiofx_la-gstscaletempo.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudiofx_la-tmp-orc.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -789,32 +892,35 @@ libgstaudiofx_la-audioecho.lo: audioecho.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audioecho.lo `test -f 'audioecho.c' || echo '$(srcdir)/'`audioecho.c
 
+libgstaudiofx_la-gstscaletempo.lo: gstscaletempo.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-gstscaletempo.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-gstscaletempo.Tpo -c -o libgstaudiofx_la-gstscaletempo.lo `test -f 'gstscaletempo.c' || echo '$(srcdir)/'`gstscaletempo.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-gstscaletempo.Tpo $(DEPDIR)/libgstaudiofx_la-gstscaletempo.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstscaletempo.c' object='libgstaudiofx_la-gstscaletempo.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 $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-gstscaletempo.lo `test -f 'gstscaletempo.c' || echo '$(srcdir)/'`gstscaletempo.c
+
+libgstaudiofx_la-tmp-orc.lo: tmp-orc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-tmp-orc.Tpo -c -o libgstaudiofx_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-tmp-orc.Tpo $(DEPDIR)/libgstaudiofx_la-tmp-orc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tmp-orc.c' object='libgstaudiofx_la-tmp-orc.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 $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
+
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -826,15 +932,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -843,6 +945,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -877,14 +994,19 @@ distdir: $(DISTFILES)
 	    || exit 1; \
 	  fi; \
 	done
+	$(MAKE) $(AM_MAKEFLAGS) \
+	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
+	  dist-hook
 check-am: all-am
-check: check-am
+check: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) check-am
 all-am: Makefile $(LTLIBRARIES) $(HEADERS)
 installdirs:
 	for dir in "$(DESTDIR)$(plugindir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
-install: install-am
+install: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) install-am
 install-exec: install-exec-am
 install-data: install-data-am
 uninstall: uninstall-am
@@ -914,10 +1036,11 @@ distclean-generic:
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
 	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
 clean: clean-am
 
-clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \
-	mostlyclean-am
+clean-am: clean-generic clean-libtool clean-local \
+	clean-pluginLTLIBRARIES mostlyclean-am
 
 distclean: distclean-am
 	-rm -rf ./$(DEPDIR)
@@ -985,10 +1108,11 @@ ps-am:
 
 uninstall-am: uninstall-pluginLTLIBRARIES
 
-.MAKE: install-am install-strip
+.MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-local clean-pluginLTLIBRARIES \
+	cscopelist-am ctags ctags-am 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 \
@@ -999,8 +1123,45 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	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-pluginLTLIBRARIES
-
+	tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
+
+
+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
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
 	androgenizer \
diff --git a/gst/audiofx/audioamplify.c b/gst/audiofx/audioamplify.c
index 953527d5e..ad5f3c535 100644
--- a/gst/audiofx/audioamplify.c
+++ b/gst/audiofx/audioamplify.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/audiofx/audioamplify.h b/gst/audiofx/audioamplify.h
index 2f5fc413f..573eed155 100644
--- a/gst/audiofx/audioamplify.h
+++ b/gst/audiofx/audioamplify.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_AMPLIFY_H__
diff --git a/gst/audiofx/audiochebband.c b/gst/audiofx/audiochebband.c
index a51a9735a..d29500927 100644
--- a/gst/audiofx/audiochebband.c
+++ b/gst/audiofx/audiochebband.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* 
diff --git a/gst/audiofx/audiochebband.h b/gst/audiofx/audiochebband.h
index 6af31486b..58bdaf0e3 100644
--- a/gst/audiofx/audiochebband.h
+++ b/gst/audiofx/audiochebband.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_CHEB_BAND_H__
diff --git a/gst/audiofx/audiocheblimit.c b/gst/audiofx/audiocheblimit.c
index f50d25bf9..549a9d2e3 100644
--- a/gst/audiofx/audiocheblimit.c
+++ b/gst/audiofx/audiocheblimit.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* 
diff --git a/gst/audiofx/audiocheblimit.h b/gst/audiofx/audiocheblimit.h
index a9f42ba39..19309601e 100644
--- a/gst/audiofx/audiocheblimit.h
+++ b/gst/audiofx/audiocheblimit.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_CHEB_LIMIT_H__
diff --git a/gst/audiofx/audiodynamic.c b/gst/audiofx/audiodynamic.c
index e2d87dcb7..bbc9e93c9 100644
--- a/gst/audiofx/audiodynamic.c
+++ b/gst/audiofx/audiodynamic.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/audiofx/audiodynamic.h b/gst/audiofx/audiodynamic.h
index 66cf9b141..09f3bc633 100644
--- a/gst/audiofx/audiodynamic.h
+++ b/gst/audiofx/audiodynamic.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_DYNAMIC_H__
diff --git a/gst/audiofx/audioecho.c b/gst/audiofx/audioecho.c
index 10b51d946..2c09c8864 100644
--- a/gst/audiofx/audioecho.c
+++ b/gst/audiofx/audioecho.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/audiofx/audioecho.h b/gst/audiofx/audioecho.h
index 1be3cbcc4..a3a3de36d 100644
--- a/gst/audiofx/audioecho.h
+++ b/gst/audiofx/audioecho.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_ECHO_H__
diff --git a/gst/audiofx/audiofirfilter.c b/gst/audiofx/audiofirfilter.c
index 03bbf1129..e0887ad49 100644
--- a/gst/audiofx/audiofirfilter.c
+++ b/gst/audiofx/audiofirfilter.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  * 
  */
 
diff --git a/gst/audiofx/audiofirfilter.h b/gst/audiofx/audiofirfilter.h
index 6ade86f2e..f3b347583 100644
--- a/gst/audiofx/audiofirfilter.h
+++ b/gst/audiofx/audiofirfilter.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  * 
  */
 
diff --git a/gst/audiofx/audiofx.c b/gst/audiofx/audiofx.c
index e8dfa6c32..dbddabef1 100644
--- a/gst/audiofx/audiofx.c
+++ b/gst/audiofx/audiofx.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -36,6 +36,7 @@
 #include "audiowsinclimit.h"
 #include "audiofirfilter.h"
 #include "audioecho.h"
+#include "gstscaletempo.h"
 
 /* entry point to initialize the plug-in
  * initialize the plug-in itself
@@ -68,7 +69,9 @@ plugin_init (GstPlugin * plugin)
       gst_element_register (plugin, "audiofirfilter", GST_RANK_NONE,
           GST_TYPE_AUDIO_FIR_FILTER) &&
       gst_element_register (plugin, "audioecho", GST_RANK_NONE,
-          GST_TYPE_AUDIO_ECHO));
+          GST_TYPE_AUDIO_ECHO) &&
+      gst_element_register (plugin, "scaletempo", GST_RANK_NONE,
+          GST_TYPE_SCALETEMPO));
 }
 
 GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
diff --git a/gst/audiofx/audiofxbasefirfilter.c b/gst/audiofx/audiofxbasefirfilter.c
index aaa6f0685..dd906b539 100644
--- a/gst/audiofx/audiofxbasefirfilter.c
+++ b/gst/audiofx/audiofxbasefirfilter.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  * 
  */
 
diff --git a/gst/audiofx/audiofxbasefirfilter.h b/gst/audiofx/audiofxbasefirfilter.h
index 5bbc50b51..2bd5561df 100644
--- a/gst/audiofx/audiofxbasefirfilter.h
+++ b/gst/audiofx/audiofxbasefirfilter.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  * 
  */
 
diff --git a/gst/audiofx/audiofxbaseiirfilter.c b/gst/audiofx/audiofxbaseiirfilter.c
index 8fd0977bc..50a00da7c 100644
--- a/gst/audiofx/audiofxbaseiirfilter.c
+++ b/gst/audiofx/audiofxbaseiirfilter.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/audiofx/audiofxbaseiirfilter.h b/gst/audiofx/audiofxbaseiirfilter.h
index 8cf91c806..d0e8b8b5f 100644
--- a/gst/audiofx/audiofxbaseiirfilter.h
+++ b/gst/audiofx/audiofxbaseiirfilter.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_FX_BASE_IIR_FILTER_H__
diff --git a/gst/audiofx/audioiirfilter.c b/gst/audiofx/audioiirfilter.c
index 0882017d8..cf3070f15 100644
--- a/gst/audiofx/audioiirfilter.c
+++ b/gst/audiofx/audioiirfilter.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  * 
  */
 
diff --git a/gst/audiofx/audioiirfilter.h b/gst/audiofx/audioiirfilter.h
index 1cf72f4c6..ab39c5be9 100644
--- a/gst/audiofx/audioiirfilter.h
+++ b/gst/audiofx/audioiirfilter.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  * 
  */
 
diff --git a/gst/audiofx/audioinvert.c b/gst/audiofx/audioinvert.c
index 0dc8a962f..7671db1b5 100644
--- a/gst/audiofx/audioinvert.c
+++ b/gst/audiofx/audioinvert.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/audiofx/audioinvert.h b/gst/audiofx/audioinvert.h
index b0d841a88..cbb5b3f44 100644
--- a/gst/audiofx/audioinvert.h
+++ b/gst/audiofx/audioinvert.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_INVERT_H__
diff --git a/gst/audiofx/audiokaraoke.c b/gst/audiofx/audiokaraoke.c
index 16266f642..9d5d575f5 100644
--- a/gst/audiofx/audiokaraoke.c
+++ b/gst/audiofx/audiokaraoke.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/audiofx/audiokaraoke.h b/gst/audiofx/audiokaraoke.h
index a299b8878..1391efc33 100644
--- a/gst/audiofx/audiokaraoke.h
+++ b/gst/audiofx/audiokaraoke.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_KARAOKE_H__
diff --git a/gst/audiofx/audiopanorama.c b/gst/audiofx/audiopanorama.c
index ee8da45c0..295c1bd4e 100644
--- a/gst/audiofx/audiopanorama.c
+++ b/gst/audiofx/audiopanorama.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -45,18 +45,19 @@
 #include <gst/gst.h>
 #include <gst/base/gstbasetransform.h>
 
+#ifdef HAVE_ORC
+#include <orc/orcfunctions.h>
+#else
+#define orc_memset memset
+#endif
+
 #include "audiopanorama.h"
+#include "audiopanoramaorc.h"
 
 #define GST_CAT_DEFAULT gst_audio_panorama_debug
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
 
 /* Filter signals and args */
-enum
-{
-  /* FILL ME */
-  LAST_SIGNAL
-};
-
 enum
 {
   PROP_0,
@@ -64,13 +65,6 @@ enum
   PROP_METHOD
 };
 
-enum
-{
-  METHOD_PSYCHOACOUSTIC = 0,
-  METHOD_SIMPLE,
-  NUM_METHODS
-};
-
 #define GST_TYPE_AUDIO_PANORAMA_METHOD (gst_audio_panorama_method_get_type ())
 static GType
 gst_audio_panorama_method_get_type (void)
@@ -95,21 +89,17 @@ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("audio/x-raw, "
         "format = (string) { " GST_AUDIO_NE (F32) ", " GST_AUDIO_NE (S16) "}, "
-        "rate = (int) [ 1, MAX ], " "channels = (int) 1, "
-        "layout = (string) interleaved;"
-        "audio/x-raw, "
-        "format = (string) { " GST_AUDIO_NE (F32) ", " GST_AUDIO_NE (S16) "}, "
-        "rate = (int) [ 1, MAX ], " "channels = (int) 2, "
-        "layout = (string) interleaved, " "channel-mask = (bitmask) 0x3")
+        "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 2 ], "
+        "layout = (string) interleaved")
     );
 
 static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("audio/x-raw, "
-        "format = (string) { " GST_AUDIO_NE (S32) ", " GST_AUDIO_NE (S16) "}, "
+        "format = (string) { " GST_AUDIO_NE (F32) ", " GST_AUDIO_NE (S16) "}, "
         "rate = (int) [ 1, MAX ], " "channels = (int) 2, "
-        "layout = (string) interleaved, " "channel-mask = (bitmask)0x3")
+        "layout = (string) interleaved")
     );
 
 G_DEFINE_TYPE (GstAudioPanorama, gst_audio_panorama, GST_TYPE_BASE_TRANSFORM);
@@ -126,23 +116,23 @@ static GstCaps *gst_audio_panorama_transform_caps (GstBaseTransform * base,
 static gboolean gst_audio_panorama_set_caps (GstBaseTransform * base,
     GstCaps * incaps, GstCaps * outcaps);
 
-static void gst_audio_panorama_transform_m2s_int (GstAudioPanorama * filter,
+static void gst_audio_panorama_m2s_int (gfloat pan,
     gint16 * idata, gint16 * odata, guint num_samples);
-static void gst_audio_panorama_transform_s2s_int (GstAudioPanorama * filter,
+static void gst_audio_panorama_s2s_int (gfloat pan,
     gint16 * idata, gint16 * odata, guint num_samples);
-static void gst_audio_panorama_transform_m2s_float (GstAudioPanorama * filter,
+static void gst_audio_panorama_m2s_float (gfloat pan,
     gfloat * idata, gfloat * odata, guint num_samples);
-static void gst_audio_panorama_transform_s2s_float (GstAudioPanorama * filter,
+static void gst_audio_panorama_s2s_float (gfloat pan,
     gfloat * idata, gfloat * odata, guint num_samples);
 
-static void gst_audio_panorama_transform_m2s_int_simple (GstAudioPanorama *
-    filter, gint16 * idata, gint16 * odata, guint num_samples);
-static void gst_audio_panorama_transform_s2s_int_simple (GstAudioPanorama *
-    filter, gint16 * idata, gint16 * odata, guint num_samples);
-static void gst_audio_panorama_transform_m2s_float_simple (GstAudioPanorama *
-    filter, gfloat * idata, gfloat * odata, guint num_samples);
-static void gst_audio_panorama_transform_s2s_float_simple (GstAudioPanorama *
-    filter, gfloat * idata, gfloat * odata, guint num_samples);
+static void gst_audio_panorama_m2s_int_simple (gfloat pan,
+    gint16 * idata, gint16 * odata, guint num_samples);
+static void gst_audio_panorama_s2s_int_simple (gfloat pan,
+    gint16 * idata, gint16 * odata, guint num_samples);
+static void gst_audio_panorama_m2s_float_simple (gfloat pan,
+    gfloat * idata, gfloat * odata, guint num_samples);
+static void gst_audio_panorama_s2s_float_simple (gfloat pan,
+    gfloat * idata, gfloat * odata, guint num_samples);
 
 static GstFlowReturn gst_audio_panorama_transform (GstBaseTransform * base,
     GstBuffer * inbuf, GstBuffer * outbuf);
@@ -151,20 +141,20 @@ static GstFlowReturn gst_audio_panorama_transform (GstBaseTransform * base,
 /* Table with processing functions: [channels][format][method] */
 static GstAudioPanoramaProcessFunc panorama_process_functions[2][2][2] = {
   {
-        {(GstAudioPanoramaProcessFunc) gst_audio_panorama_transform_m2s_int,
-              (GstAudioPanoramaProcessFunc)
-            gst_audio_panorama_transform_m2s_int_simple},
-        {(GstAudioPanoramaProcessFunc) gst_audio_panorama_transform_m2s_float,
-              (GstAudioPanoramaProcessFunc)
-            gst_audio_panorama_transform_m2s_float_simple}
+        {
+              (GstAudioPanoramaProcessFunc) gst_audio_panorama_m2s_int,
+            (GstAudioPanoramaProcessFunc) gst_audio_panorama_m2s_int_simple},
+        {
+              (GstAudioPanoramaProcessFunc) gst_audio_panorama_m2s_float,
+            (GstAudioPanoramaProcessFunc) gst_audio_panorama_m2s_float_simple}
       },
   {
-        {(GstAudioPanoramaProcessFunc) gst_audio_panorama_transform_s2s_int,
-              (GstAudioPanoramaProcessFunc)
-            gst_audio_panorama_transform_s2s_int_simple},
-        {(GstAudioPanoramaProcessFunc) gst_audio_panorama_transform_s2s_float,
-              (GstAudioPanoramaProcessFunc)
-            gst_audio_panorama_transform_s2s_float_simple}
+        {
+              (GstAudioPanoramaProcessFunc) gst_audio_panorama_s2s_int,
+            (GstAudioPanoramaProcessFunc) gst_audio_panorama_s2s_int_simple},
+        {
+              (GstAudioPanoramaProcessFunc) gst_audio_panorama_s2s_float,
+            (GstAudioPanoramaProcessFunc) gst_audio_panorama_s2s_float_simple}
       }
 };
 
@@ -253,10 +243,7 @@ gst_audio_panorama_set_process_function (GstAudioPanorama * filter,
   }
 
   format_index = GST_AUDIO_FORMAT_INFO_IS_FLOAT (finfo) ? 1 : 0;
-
   method_index = filter->method;
-  if (method_index >= NUM_METHODS || method_index < 0)
-    method_index = METHOD_PSYCHOACOUSTIC;
 
   filter->process =
       panorama_process_functions[channel_index][format_index][method_index];
@@ -326,20 +313,33 @@ gst_audio_panorama_transform_caps (GstBaseTransform * base,
 {
   GstCaps *res;
   GstStructure *structure;
+  gint i;
 
-  /* transform caps gives one single caps so we can just replace
-   * the channel property with our range. */
+  /* replace the channel property with our range. */
   res = gst_caps_copy (caps);
-  structure = gst_caps_get_structure (res, 0);
-  if (direction == GST_PAD_SRC) {
-    GST_INFO ("allow 1-2 channels");
-    gst_structure_set (structure, "channels", GST_TYPE_INT_RANGE, 1, 2, NULL);
-    gst_structure_remove_field (structure, "channel-mask");
-  } else {
-    GST_INFO ("allow 2 channels");
-    gst_structure_set (structure, "channels", G_TYPE_INT, 2, NULL);
+  for (i = 0; i < gst_caps_get_size (res); i++) {
+    structure = gst_caps_get_structure (res, i);
+    if (direction == GST_PAD_SRC) {
+      GST_INFO_OBJECT (base, "[%d] allow 1-2 channels", i);
+      gst_structure_set (structure, "channels", GST_TYPE_INT_RANGE, 1, 2, NULL);
+    } else {
+      GST_INFO_OBJECT (base, "[%d] allow 2 channels", i);
+      gst_structure_set (structure, "channels", G_TYPE_INT, 2, NULL);
+    }
     gst_structure_remove_field (structure, "channel-mask");
   }
+  GST_DEBUG_OBJECT (base, "transformed %" GST_PTR_FORMAT, res);
+
+  if (filter) {
+    GstCaps *intersection;
+
+    GST_DEBUG_OBJECT (base, "Using filter caps %" GST_PTR_FORMAT, filter);
+    intersection =
+        gst_caps_intersect_full (filter, res, GST_CAPS_INTERSECT_FIRST);
+    gst_caps_unref (res);
+    res = intersection;
+    GST_DEBUG_OBJECT (base, "Intersection %" GST_PTR_FORMAT, res);
+  }
 
   return res;
 }
@@ -373,250 +373,128 @@ no_format:
 }
 
 /* psychoacoustic processing functions */
+
+/* mono to stereo panning
+ * pan: -1.0  0.0  1.0
+ * l:    1.0  0.5  0.0  
+ * r:    0.0  0.5  1.0
+ *
+ * FIXME: we should use -3db (1/sqtr(2)) for 50:50
+ */
 static void
-gst_audio_panorama_transform_m2s_int (GstAudioPanorama * filter, gint16 * idata,
-    gint16 * odata, guint num_samples)
+gst_audio_panorama_m2s_int (gfloat pan, gint16 * idata, gint16 * odata, guint n)
 {
-  guint i;
-  gdouble val;
-  glong lval, rval;
-  gdouble rpan, lpan;
-
-  /* pan:  -1.0  0.0  1.0
-   * lpan:  1.0  0.5  0.0  
-   * rpan:  0.0  0.5  1.0
-   *
-   * FIXME: we should use -3db (1/sqtr(2)) for 50:50
-   */
-  rpan = (gdouble) (filter->panorama + 1.0) / 2.0;
-  lpan = 1.0 - rpan;
-
-  for (i = 0; i < num_samples; i++) {
-    val = (gdouble) * idata++;
-
-    lval = (glong) (val * lpan);
-    rval = (glong) (val * rpan);
-
-    *odata++ = (gint16) CLAMP (lval, G_MININT16, G_MAXINT16);
-    *odata++ = (gint16) CLAMP (rval, G_MININT16, G_MAXINT16);
-  }
+  gfloat r = (pan + 1.0) / 2.0;
+  audiopanoramam_orc_process_s16_ch1_psy (odata, idata, 1.0 - r, r, n);
 }
 
 static void
-gst_audio_panorama_transform_s2s_int (GstAudioPanorama * filter, gint16 * idata,
-    gint16 * odata, guint num_samples)
+gst_audio_panorama_m2s_float (gfloat pan, gfloat * idata,
+    gfloat * odata, guint n)
 {
-  guint i;
-  glong lval, rval;
-  gdouble lival, rival;
-  gdouble lrpan, llpan, rrpan, rlpan;
-
-  /* pan:  -1.0  0.0  1.0
-   * llpan: 1.0  1.0  0.0
-   * lrpan: 1.0  0.0  0.0
-   * rrpan: 0.0  1.0  1.0
-   * rlpan: 0.0  0.0  1.0
-   */
-  if (filter->panorama > 0) {
-    rlpan = (gdouble) filter->panorama;
-    llpan = 1.0 - rlpan;
-    lrpan = 0.0;
-    rrpan = 1.0;
-  } else {
-    rrpan = (gdouble) (1.0 + filter->panorama);
-    lrpan = 1.0 - rrpan;
-    rlpan = 0.0;
-    llpan = 1.0;
-  }
-
-  for (i = 0; i < num_samples; i++) {
-    lival = (gdouble) * idata++;
-    rival = (gdouble) * idata++;
-
-    lval = lival * llpan + rival * lrpan;
-    rval = lival * rlpan + rival * rrpan;
-
-    *odata++ = (gint16) CLAMP (lval, G_MININT16, G_MAXINT16);
-    *odata++ = (gint16) CLAMP (rval, G_MININT16, G_MAXINT16);
-  }
+  gfloat r = (pan + 1.0) / 2.0;
+  audiopanoramam_orc_process_f32_ch1_psy (odata, idata, 1.0 - r, r, n);
 }
 
+/* stereo balance
+ * pan: -1.0  0.0  1.0
+ * ll:   1.0  1.0  0.0
+ * lr:   1.0  0.0  0.0
+ * rr:   0.0  1.0  1.0
+ * rl:   0.0  0.0  1.0
+ */
 static void
-gst_audio_panorama_transform_m2s_float (GstAudioPanorama * filter,
-    gfloat * idata, gfloat * odata, guint num_samples)
+gst_audio_panorama_s2s_int (gfloat pan, gint16 * idata, gint16 * odata, guint n)
 {
-  guint i;
-  gfloat val;
-  gdouble rpan, lpan;
-
-  /* pan:  -1.0  0.0  1.0
-   * lpan:  1.0  0.5  0.0  
-   * rpan:  0.0  0.5  1.0
-   *
-   * FIXME: we should use -3db (1/sqtr(2)) for 50:50
-   */
-  rpan = (gdouble) (filter->panorama + 1.0) / 2.0;
-  lpan = 1.0 - rpan;
-
-  for (i = 0; i < num_samples; i++) {
-    val = *idata++;
-
-    *odata++ = val * lpan;
-    *odata++ = val * rpan;
+  if (pan == 0.0) {
+    audiopanoramam_orc_process_s16_ch2_none (odata, idata, n);
+  } else if (pan > 0.0) {
+    gfloat rl = pan;
+    gfloat ll = 1.0 - rl;
+    audiopanoramam_orc_process_s16_ch2_psy_right (odata, idata, ll, rl, n);
+  } else {
+    gfloat rr = 1.0 + pan;
+    gfloat lr = 1.0 - rr;
+    audiopanoramam_orc_process_s16_ch2_psy_left (odata, idata, lr, rr, n);
   }
 }
 
 static void
-gst_audio_panorama_transform_s2s_float (GstAudioPanorama * filter,
-    gfloat * idata, gfloat * odata, guint num_samples)
+gst_audio_panorama_s2s_float (gfloat pan, gfloat * idata,
+    gfloat * odata, guint n)
 {
-  guint i;
-  gfloat lival, rival;
-  gdouble lrpan, llpan, rrpan, rlpan;
-
-  /* pan:  -1.0  0.0  1.0
-   * llpan: 1.0  1.0  0.0
-   * lrpan: 1.0  0.0  0.0
-   * rrpan: 0.0  1.0  1.0
-   * rlpan: 0.0  0.0  1.0
-   */
-  if (filter->panorama > 0) {
-    rlpan = (gdouble) filter->panorama;
-    llpan = 1.0 - rlpan;
-    lrpan = 0.0;
-    rrpan = 1.0;
+  if (pan == 0.0) {
+    audiopanoramam_orc_process_f32_ch2_none (odata, idata, n);
+  } else if (pan > 0.0) {
+    gfloat rl = pan;
+    gfloat ll = 1.0 - rl;
+    audiopanoramam_orc_process_f32_ch2_psy_right (odata, idata, ll, rl, n);
   } else {
-    rrpan = (gdouble) (1.0 + filter->panorama);
-    lrpan = 1.0 - rrpan;
-    rlpan = 0.0;
-    llpan = 1.0;
-  }
-
-  for (i = 0; i < num_samples; i++) {
-    lival = *idata++;
-    rival = *idata++;
-
-    *odata++ = lival * llpan + rival * lrpan;
-    *odata++ = lival * rlpan + rival * rrpan;
+    gfloat rr = 1.0 + pan;
+    gfloat lr = 1.0 - rr;
+    audiopanoramam_orc_process_f32_ch2_psy_left (odata, idata, lr, rr, n);
   }
 }
 
 /* simple processing functions */
+
 static void
-gst_audio_panorama_transform_m2s_int_simple (GstAudioPanorama * filter,
-    gint16 * idata, gint16 * odata, guint num_samples)
+gst_audio_panorama_m2s_int_simple (gfloat pan, gint16 * idata,
+    gint16 * odata, guint n)
 {
-  guint i;
-  gdouble pan;
-  glong lval, rval;
-
-  if (filter->panorama > 0.0) {
-    pan = 1.0 - filter->panorama;
-    for (i = 0; i < num_samples; i++) {
-      rval = *idata++;
-      lval = (glong) ((gdouble) rval * pan);
-
-      *odata++ = (gint16) CLAMP (lval, G_MININT16, G_MAXINT16);
-      *odata++ = (gint16) rval;
-    }
+  if (pan == 0.0) {
+    audiopanoramam_orc_process_s16_ch1_none (odata, idata, n);
+  } else if (pan > 0.0) {
+    gfloat lpan = 1.0 - pan;
+    audiopanoramam_orc_process_s16_ch1_sim_left (odata, idata, lpan, n);
   } else {
-    pan = 1.0 + filter->panorama;
-    for (i = 0; i < num_samples; i++) {
-      lval = *idata++;
-      rval = (glong) ((gdouble) lval * pan);
-
-      *odata++ = (gint16) lval;
-      *odata++ = (gint16) CLAMP (rval, G_MININT16, G_MAXINT16);
-    }
+    gfloat rpan = 1.0 + pan;
+    audiopanoramam_orc_process_s16_ch1_sim_right (odata, idata, rpan, n);
   }
 }
 
 static void
-gst_audio_panorama_transform_s2s_int_simple (GstAudioPanorama * filter,
-    gint16 * idata, gint16 * odata, guint num_samples)
+gst_audio_panorama_s2s_int_simple (gfloat pan, gint16 * idata,
+    gint16 * odata, guint n)
 {
-  guint i;
-  glong lval, rval;
-  gdouble lival, rival, pan;
-
-  if (filter->panorama > 0.0) {
-    pan = 1.0 - filter->panorama;
-    for (i = 0; i < num_samples; i++) {
-      lival = (gdouble) * idata++;
-      rival = (gdouble) * idata++;
-
-      lval = (glong) (lival * pan);
-      rval = (glong) rival;
-
-      *odata++ = (gint16) CLAMP (lval, G_MININT16, G_MAXINT16);
-      *odata++ = (gint16) rval;
-    }
+  if (pan == 0.0) {
+    audiopanoramam_orc_process_s16_ch2_none (odata, idata, n);
+  } else if (pan > 0.0) {
+    gfloat lpan = 1.0 - pan;
+    audiopanoramam_orc_process_s16_ch2_sim_left (odata, idata, lpan, n);
   } else {
-    pan = 1.0 + filter->panorama;
-    for (i = 0; i < num_samples; i++) {
-      lival = (gdouble) * idata++;
-      rival = (gdouble) * idata++;
-
-      lval = (glong) lival;
-      rval = (glong) (rival * pan);
-
-      *odata++ = (gint16) lval;
-      *odata++ = (gint16) CLAMP (rval, G_MININT16, G_MAXINT16);
-    }
+    gfloat rpan = 1.0 + pan;
+    audiopanoramam_orc_process_s16_ch2_sim_right (odata, idata, rpan, n);
   }
 }
 
 static void
-gst_audio_panorama_transform_m2s_float_simple (GstAudioPanorama * filter,
-    gfloat * idata, gfloat * odata, guint num_samples)
+gst_audio_panorama_m2s_float_simple (gfloat pan, gfloat * idata,
+    gfloat * odata, guint n)
 {
-  guint i;
-  gfloat val, pan;
-
-  if (filter->panorama > 0.0) {
-    pan = 1.0 - filter->panorama;
-    for (i = 0; i < num_samples; i++) {
-      val = *idata++;
-
-      *odata++ = val * pan;
-      *odata++ = val;
-    }
+  if (pan == 0.0) {
+    audiopanoramam_orc_process_f32_ch1_none (odata, idata, n);
+  } else if (pan > 0.0) {
+    gfloat lpan = 1.0 - pan;
+    audiopanoramam_orc_process_f32_ch1_sim_left (odata, idata, lpan, n);
   } else {
-    pan = 1.0 + filter->panorama;
-    for (i = 0; i < num_samples; i++) {
-      val = *idata++;
-
-      *odata++ = val;
-      *odata++ = val * pan;
-    }
+    gfloat rpan = 1.0 + pan;
+    audiopanoramam_orc_process_f32_ch1_sim_right (odata, idata, rpan, n);
   }
 }
 
 static void
-gst_audio_panorama_transform_s2s_float_simple (GstAudioPanorama * filter,
-    gfloat * idata, gfloat * odata, guint num_samples)
+gst_audio_panorama_s2s_float_simple (gfloat pan, gfloat * idata,
+    gfloat * odata, guint n)
 {
-  guint i;
-  gfloat lival, rival, pan;
-
-  if (filter->panorama > 0.0) {
-    pan = 1.0 - filter->panorama;
-    for (i = 0; i < num_samples; i++) {
-      lival = *idata++;
-      rival = *idata++;
-
-      *odata++ = lival * pan;
-      *odata++ = rival;
-    }
+  if (pan == 0.0) {
+    audiopanoramam_orc_process_f32_ch2_none (odata, idata, n);
+  } else if (pan > 0.0) {
+    gfloat lpan = 1.0 - pan;
+    audiopanoramam_orc_process_f32_ch2_sim_left (odata, idata, lpan, n);
   } else {
-    pan = 1.0 + filter->panorama;
-    for (i = 0; i < num_samples; i++) {
-      lival = *idata++;
-      rival = *idata++;
-
-      *odata++ = lival;
-      *odata++ = rival * pan;
-    }
+    gfloat rpan = 1.0 + pan;
+    audiopanoramam_orc_process_f32_ch2_sim_right (odata, idata, rpan, n);
   }
 }
 
@@ -627,34 +505,32 @@ gst_audio_panorama_transform (GstBaseTransform * base, GstBuffer * inbuf,
     GstBuffer * outbuf)
 {
   GstAudioPanorama *filter = GST_AUDIO_PANORAMA (base);
-  GstClockTime timestamp, stream_time;
+  GstClockTime ts;
   GstMapInfo inmap, outmap;
 
-  timestamp = GST_BUFFER_TIMESTAMP (inbuf);
-  stream_time =
-      gst_segment_to_stream_time (&base->segment, GST_FORMAT_TIME, timestamp);
+  ts = gst_segment_to_stream_time (&base->segment, GST_FORMAT_TIME,
+      GST_BUFFER_TIMESTAMP (inbuf));
 
-  GST_DEBUG_OBJECT (filter, "sync to %" GST_TIME_FORMAT,
-      GST_TIME_ARGS (timestamp));
-
-  if (GST_CLOCK_TIME_IS_VALID (stream_time))
-    gst_object_sync_values (GST_OBJECT (filter), stream_time);
+  if (GST_CLOCK_TIME_IS_VALID (ts)) {
+    GST_DEBUG_OBJECT (filter, "sync to %" GST_TIME_FORMAT, GST_TIME_ARGS (ts));
+    gst_object_sync_values (GST_OBJECT (filter), ts);
+  }
 
-  gst_buffer_map (inbuf, &inmap, GST_MAP_READ);
   gst_buffer_map (outbuf, &outmap, GST_MAP_WRITE);
 
   if (G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (inbuf, GST_BUFFER_FLAG_GAP))) {
     GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_GAP);
-    memset (outmap.data, 0, outmap.size);
+    orc_memset (outmap.data, 0, outmap.size);
   } else {
-    /* output always stereo, input mono or stereo,
+    /* output is always stereo, input is mono or stereo,
      * and info describes input format */
     guint num_samples = outmap.size / (2 * GST_AUDIO_INFO_BPS (&filter->info));
 
-    filter->process (filter, inmap.data, outmap.data, num_samples);
+    gst_buffer_map (inbuf, &inmap, GST_MAP_READ);
+    filter->process (filter->panorama, inmap.data, outmap.data, num_samples);
+    gst_buffer_unmap (inbuf, &inmap);
   }
 
-  gst_buffer_unmap (inbuf, &inmap);
   gst_buffer_unmap (outbuf, &outmap);
 
   return GST_FLOW_OK;
diff --git a/gst/audiofx/audiopanorama.h b/gst/audiofx/audiopanorama.h
index e445f4dd6..44d1cec2b 100644
--- a/gst/audiofx/audiopanorama.h
+++ b/gst/audiofx/audiopanorama.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
  
 #ifndef __GST_AUDIO_PANORAMA_H__
@@ -37,18 +37,24 @@ G_BEGIN_DECLS
 typedef struct _GstAudioPanorama      GstAudioPanorama;
 typedef struct _GstAudioPanoramaClass GstAudioPanoramaClass;
 
-typedef void (*GstAudioPanoramaProcessFunc)(GstAudioPanorama*, guint8*, guint8*, guint);
+typedef void (*GstAudioPanoramaProcessFunc)(gfloat, guint8*, guint8*, guint);
+
+typedef enum
+{
+  METHOD_PSYCHOACOUSTIC = 0,
+  METHOD_SIMPLE
+} GstAudioPanoramaMethod;
 
 struct _GstAudioPanorama {
   GstBaseTransform element;
 
+  /* properties */
   gfloat panorama;
+  GstAudioPanoramaMethod method;
 
   /* < private > */
   GstAudioPanoramaProcessFunc process;
-
   GstAudioInfo info;
-  gint method;
 };
 
 struct _GstAudioPanoramaClass {
diff --git a/gst/audiofx/audiopanoramaorc-dist.c b/gst/audiofx/audiopanoramaorc-dist.c
new file mode 100644
index 000000000..dc8714642
--- /dev/null
+++ b/gst/audiofx/audiopanoramaorc-dist.c
@@ -0,0 +1,3977 @@
+
+/* autogenerated from audiopanoramaorc.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 ORC_INTERNAL
+#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
+#define ORC_INTERNAL __attribute__((visibility("hidden")))
+#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
+#define ORC_INTERNAL __hidden
+#elif defined (__GNUC__)
+#define ORC_INTERNAL __attribute__((visibility("hidden")))
+#else
+#define ORC_INTERNAL
+#endif
+#endif
+
+
+#ifndef DISABLE_ORC
+#include <orc/orc.h>
+#endif
+void audiopanoramam_orc_process_s16_ch1_none (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, int n);
+void audiopanoramam_orc_process_f32_ch1_none (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, int n);
+void audiopanoramam_orc_process_s16_ch2_none (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, int n);
+void audiopanoramam_orc_process_f32_ch2_none (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, int n);
+void audiopanoramam_orc_process_s16_ch1_psy (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, float p2, int n);
+void audiopanoramam_orc_process_f32_ch1_psy (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, float p2, int n);
+void audiopanoramam_orc_process_s16_ch2_psy_right (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, float p2, int n);
+void audiopanoramam_orc_process_s16_ch2_psy_left (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, float p2, int n);
+void audiopanoramam_orc_process_f32_ch2_psy_right (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, float p2, int n);
+void audiopanoramam_orc_process_f32_ch2_psy_left (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, float p2, int n);
+void audiopanoramam_orc_process_s16_ch1_sim_right (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, int n);
+void audiopanoramam_orc_process_s16_ch1_sim_left (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, int n);
+void audiopanoramam_orc_process_s16_ch2_sim_right (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, int n);
+void audiopanoramam_orc_process_s16_ch2_sim_left (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, int n);
+void audiopanoramam_orc_process_f32_ch1_sim_right (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, int n);
+void audiopanoramam_orc_process_f32_ch1_sim_left (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, int n);
+void audiopanoramam_orc_process_f32_ch2_sim_right (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, int n);
+void audiopanoramam_orc_process_f32_ch2_sim_left (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float 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 */
+
+
+
+/* audiopanoramam_orc_process_s16_ch1_none */
+#ifdef DISABLE_ORC
+void
+audiopanoramam_orc_process_s16_ch1_none (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var32;
+  orc_union16 var33;
+  orc_union32 var34;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var32 = ptr4[i];
+    /* 1: loadw */
+    var33 = ptr4[i];
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var32.i;
+      _dest.x2[1] = var33.i;
+      var34.i = _dest.i;
+    }
+    /* 3: storel */
+    ptr0[i] = var34;
+  }
+
+}
+
+#else
+static void
+_backup_audiopanoramam_orc_process_s16_ch1_none (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var32;
+  orc_union16 var33;
+  orc_union32 var34;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var32 = ptr4[i];
+    /* 1: loadw */
+    var33 = ptr4[i];
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var32.i;
+      _dest.x2[1] = var33.i;
+      var34.i = _dest.i;
+    }
+    /* 3: storel */
+    ptr0[i] = var34;
+  }
+
+}
+
+void
+audiopanoramam_orc_process_s16_ch1_none (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
+        109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
+            49,
+        54, 95, 99, 104, 49, 95, 110, 111, 110, 101, 11, 4, 4, 12, 2, 2,
+        195, 0, 4, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_s16_ch1_none);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audiopanoramam_orc_process_s16_ch1_none");
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_s16_ch1_none);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audiopanoramam_orc_process_f32_ch1_none */
+#ifdef DISABLE_ORC
+void
+audiopanoramam_orc_process_f32_ch1_none (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var32;
+  orc_union32 var33;
+  orc_union64 var34;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var32 = ptr4[i];
+    /* 1: loadl */
+    var33 = ptr4[i];
+    /* 2: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var32.i;
+      _dest.x2[1] = var33.i;
+      var34.i = _dest.i;
+    }
+    /* 3: storeq */
+    ptr0[i] = var34;
+  }
+
+}
+
+#else
+static void
+_backup_audiopanoramam_orc_process_f32_ch1_none (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var32;
+  orc_union32 var33;
+  orc_union64 var34;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var32 = ptr4[i];
+    /* 1: loadl */
+    var33 = ptr4[i];
+    /* 2: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var32.i;
+      _dest.x2[1] = var33.i;
+      var34.i = _dest.i;
+    }
+    /* 3: storeq */
+    ptr0[i] = var34;
+  }
+
+}
+
+void
+audiopanoramam_orc_process_f32_ch1_none (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
+        109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
+            51,
+        50, 95, 99, 104, 49, 95, 110, 111, 110, 101, 11, 8, 8, 12, 4, 4,
+        194, 0, 4, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_f32_ch1_none);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audiopanoramam_orc_process_f32_ch1_none");
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_f32_ch1_none);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 4, "s1");
+
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audiopanoramam_orc_process_s16_ch2_none */
+#ifdef DISABLE_ORC
+void
+audiopanoramam_orc_process_s16_ch2_none (gint16 * ORC_RESTRICT d1,
+    const gint16 * 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: copyw */
+    var33.x2[0] = var32.x2[0];
+    var33.x2[1] = var32.x2[1];
+    /* 2: storel */
+    ptr0[i] = var33;
+  }
+
+}
+
+#else
+static void
+_backup_audiopanoramam_orc_process_s16_ch2_none (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: copyw */
+    var33.x2[0] = var32.x2[0];
+    var33.x2[1] = var32.x2[1];
+    /* 2: storel */
+    ptr0[i] = var33;
+  }
+
+}
+
+void
+audiopanoramam_orc_process_s16_ch2_none (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
+        109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
+            49,
+        54, 95, 99, 104, 50, 95, 110, 111, 110, 101, 11, 4, 4, 12, 4, 4,
+        21, 1, 79, 0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_s16_ch2_none);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audiopanoramam_orc_process_s16_ch2_none");
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_s16_ch2_none);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+
+      orc_program_append_2 (p, "copyw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audiopanoramam_orc_process_f32_ch2_none */
+#ifdef DISABLE_ORC
+void
+audiopanoramam_orc_process_f32_ch2_none (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var32;
+  orc_union64 var33;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union64 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var32 = ptr4[i];
+    /* 1: copyl */
+    var33.x2[0] = var32.x2[0];
+    var33.x2[1] = var32.x2[1];
+    /* 2: storeq */
+    ptr0[i] = var33;
+  }
+
+}
+
+#else
+static void
+_backup_audiopanoramam_orc_process_f32_ch2_none (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var32;
+  orc_union64 var33;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var32 = ptr4[i];
+    /* 1: copyl */
+    var33.x2[0] = var32.x2[0];
+    var33.x2[1] = var32.x2[1];
+    /* 2: storeq */
+    ptr0[i] = var33;
+  }
+
+}
+
+void
+audiopanoramam_orc_process_f32_ch2_none (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
+        109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
+            51,
+        50, 95, 99, 104, 50, 95, 110, 111, 110, 101, 11, 8, 8, 12, 8, 8,
+        21, 1, 112, 0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_f32_ch2_none);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audiopanoramam_orc_process_f32_ch2_none");
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_f32_ch2_none);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 8, "s1");
+
+      orc_program_append_2 (p, "copyl", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audiopanoramam_orc_process_s16_ch1_psy */
+#ifdef DISABLE_ORC
+void
+audiopanoramam_orc_process_s16_ch1_psy (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, float p2, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union64 var43;
+  orc_union64 var44;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 3: loadpl */
+  var36.f = p2;
+  /* 5: loadpl */
+  var37.f = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var35 = ptr4[i];
+    /* 1: convswl */
+    var39.i = var35.i;
+    /* 2: convlf */
+    var40.f = var39.i;
+    /* 4: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var40.i);
+      _src2.i = ORC_DENORMAL (var36.i);
+      _dest1.f = _src1.f * _src2.f;
+      var41.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 6: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var40.i);
+      _src2.i = ORC_DENORMAL (var37.i);
+      _dest1.f = _src1.f * _src2.f;
+      var42.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 7: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var41.i;
+      var43.i = _dest.i;
+    }
+    /* 8: convfl */
+    {
+      int tmp;
+      tmp = (int) var43.x2f[0];
+      if (tmp == 0x80000000 && !(var43.x2[0] & 0x80000000))
+        tmp = 0x7fffffff;
+      var44.x2[0] = tmp;
+    }
+    {
+      int tmp;
+      tmp = (int) var43.x2f[1];
+      if (tmp == 0x80000000 && !(var43.x2[1] & 0x80000000))
+        tmp = 0x7fffffff;
+      var44.x2[1] = tmp;
+    }
+    /* 9: convssslw */
+    var38.x2[0] = ORC_CLAMP_SW (var44.x2[0]);
+    var38.x2[1] = ORC_CLAMP_SW (var44.x2[1]);
+    /* 10: storel */
+    ptr0[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_audiopanoramam_orc_process_s16_ch1_psy (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union64 var43;
+  orc_union64 var44;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 3: loadpl */
+  var36.i = ex->params[25];
+  /* 5: loadpl */
+  var37.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var35 = ptr4[i];
+    /* 1: convswl */
+    var39.i = var35.i;
+    /* 2: convlf */
+    var40.f = var39.i;
+    /* 4: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var40.i);
+      _src2.i = ORC_DENORMAL (var36.i);
+      _dest1.f = _src1.f * _src2.f;
+      var41.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 6: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var40.i);
+      _src2.i = ORC_DENORMAL (var37.i);
+      _dest1.f = _src1.f * _src2.f;
+      var42.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 7: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var41.i;
+      var43.i = _dest.i;
+    }
+    /* 8: convfl */
+    {
+      int tmp;
+      tmp = (int) var43.x2f[0];
+      if (tmp == 0x80000000 && !(var43.x2[0] & 0x80000000))
+        tmp = 0x7fffffff;
+      var44.x2[0] = tmp;
+    }
+    {
+      int tmp;
+      tmp = (int) var43.x2f[1];
+      if (tmp == 0x80000000 && !(var43.x2[1] & 0x80000000))
+        tmp = 0x7fffffff;
+      var44.x2[1] = tmp;
+    }
+    /* 9: convssslw */
+    var38.x2[0] = ORC_CLAMP_SW (var44.x2[0]);
+    var38.x2[1] = ORC_CLAMP_SW (var44.x2[1]);
+    /* 10: storel */
+    ptr0[i] = var38;
+  }
+
+}
+
+void
+audiopanoramam_orc_process_s16_ch1_psy (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, float p2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 38, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
+        109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
+            49,
+        54, 95, 99, 104, 49, 95, 112, 115, 121, 11, 4, 4, 12, 2, 2, 17,
+        4, 17, 4, 20, 8, 20, 4, 20, 4, 153, 33, 4, 211, 33, 33, 202,
+        34, 33, 25, 202, 33, 33, 24, 194, 32, 33, 34, 21, 1, 210, 32, 32,
+        21, 1, 165, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_s16_ch1_psy);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audiopanoramam_orc_process_s16_ch1_psy");
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_s16_ch1_psy);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_parameter_float (p, 4, "p1");
+      orc_program_add_parameter_float (p, 4, "p2");
+      orc_program_add_temporary (p, 8, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+
+      orc_program_append_2 (p, "convswl", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convlf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_P2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union32 tmp;
+    tmp.f = p1;
+    ex->params[ORC_VAR_P1] = tmp.i;
+  }
+  {
+    orc_union32 tmp;
+    tmp.f = p2;
+    ex->params[ORC_VAR_P2] = tmp.i;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audiopanoramam_orc_process_f32_ch1_psy */
+#ifdef DISABLE_ORC
+void
+audiopanoramam_orc_process_f32_ch1_psy (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, float p2, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union64 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 1: loadpl */
+  var35.f = p2;
+  /* 4: loadpl */
+  var37.f = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var34 = ptr4[i];
+    /* 2: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var34.i);
+      _src2.i = ORC_DENORMAL (var35.i);
+      _dest1.f = _src1.f * _src2.f;
+      var39.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 3: loadl */
+    var36 = ptr4[i];
+    /* 5: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var36.i);
+      _src2.i = ORC_DENORMAL (var37.i);
+      _dest1.f = _src1.f * _src2.f;
+      var40.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 6: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var40.i;
+      _dest.x2[1] = var39.i;
+      var38.i = _dest.i;
+    }
+    /* 7: storeq */
+    ptr0[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_audiopanoramam_orc_process_f32_ch1_psy (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union64 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 1: loadpl */
+  var35.i = ex->params[25];
+  /* 4: loadpl */
+  var37.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var34 = ptr4[i];
+    /* 2: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var34.i);
+      _src2.i = ORC_DENORMAL (var35.i);
+      _dest1.f = _src1.f * _src2.f;
+      var39.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 3: loadl */
+    var36 = ptr4[i];
+    /* 5: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var36.i);
+      _src2.i = ORC_DENORMAL (var37.i);
+      _dest1.f = _src1.f * _src2.f;
+      var40.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 6: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var40.i;
+      _dest.x2[1] = var39.i;
+      var38.i = _dest.i;
+    }
+    /* 7: storeq */
+    ptr0[i] = var38;
+  }
+
+}
+
+void
+audiopanoramam_orc_process_f32_ch1_psy (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, float p2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 38, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
+        109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
+            51,
+        50, 95, 99, 104, 49, 95, 112, 115, 121, 11, 8, 8, 12, 4, 4, 17,
+        4, 17, 4, 20, 4, 20, 4, 202, 33, 4, 25, 202, 32, 4, 24, 194,
+        0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_f32_ch1_psy);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audiopanoramam_orc_process_f32_ch1_psy");
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_f32_ch1_psy);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_parameter_float (p, 4, "p1");
+      orc_program_add_parameter_float (p, 4, "p2");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_P2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union32 tmp;
+    tmp.f = p1;
+    ex->params[ORC_VAR_P1] = tmp.i;
+  }
+  {
+    orc_union32 tmp;
+    tmp.f = p2;
+    ex->params[ORC_VAR_P2] = tmp.i;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audiopanoramam_orc_process_s16_ch2_psy_right */
+#ifdef DISABLE_ORC
+void
+audiopanoramam_orc_process_s16_ch2_psy_right (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, float p2, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union64 var40;
+  orc_union64 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union64 var47;
+  orc_union64 var48;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 5: loadpl */
+  var37.f = p2;
+  /* 7: loadpl */
+  var38.f = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var36 = ptr4[i];
+    /* 1: convswl */
+    var40.x2[0] = var36.x2[0];
+    var40.x2[1] = var36.x2[1];
+    /* 2: convlf */
+    var41.x2f[0] = var40.x2[0];
+    var41.x2f[1] = var40.x2[1];
+    /* 3: select0ql */
+    {
+      orc_union64 _src;
+      _src.i = var41.i;
+      var42.i = _src.x2[0];
+    }
+    /* 4: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var41.i;
+      var43.i = _src.x2[1];
+    }
+    /* 6: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var42.i);
+      _src2.i = ORC_DENORMAL (var37.i);
+      _dest1.f = _src1.f * _src2.f;
+      var44.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 8: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var42.i);
+      _src2.i = ORC_DENORMAL (var38.i);
+      _dest1.f = _src1.f * _src2.f;
+      var45.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 9: addf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var44.i);
+      _src2.i = ORC_DENORMAL (var43.i);
+      _dest1.f = _src1.f + _src2.f;
+      var46.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 10: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var45.i;
+      _dest.x2[1] = var46.i;
+      var47.i = _dest.i;
+    }
+    /* 11: convfl */
+    {
+      int tmp;
+      tmp = (int) var47.x2f[0];
+      if (tmp == 0x80000000 && !(var47.x2[0] & 0x80000000))
+        tmp = 0x7fffffff;
+      var48.x2[0] = tmp;
+    }
+    {
+      int tmp;
+      tmp = (int) var47.x2f[1];
+      if (tmp == 0x80000000 && !(var47.x2[1] & 0x80000000))
+        tmp = 0x7fffffff;
+      var48.x2[1] = tmp;
+    }
+    /* 12: convssslw */
+    var39.x2[0] = ORC_CLAMP_SW (var48.x2[0]);
+    var39.x2[1] = ORC_CLAMP_SW (var48.x2[1]);
+    /* 13: storel */
+    ptr0[i] = var39;
+  }
+
+}
+
+#else
+static void
+_backup_audiopanoramam_orc_process_s16_ch2_psy_right (OrcExecutor *
+    ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union64 var40;
+  orc_union64 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union64 var47;
+  orc_union64 var48;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 5: loadpl */
+  var37.i = ex->params[25];
+  /* 7: loadpl */
+  var38.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var36 = ptr4[i];
+    /* 1: convswl */
+    var40.x2[0] = var36.x2[0];
+    var40.x2[1] = var36.x2[1];
+    /* 2: convlf */
+    var41.x2f[0] = var40.x2[0];
+    var41.x2f[1] = var40.x2[1];
+    /* 3: select0ql */
+    {
+      orc_union64 _src;
+      _src.i = var41.i;
+      var42.i = _src.x2[0];
+    }
+    /* 4: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var41.i;
+      var43.i = _src.x2[1];
+    }
+    /* 6: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var42.i);
+      _src2.i = ORC_DENORMAL (var37.i);
+      _dest1.f = _src1.f * _src2.f;
+      var44.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 8: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var42.i);
+      _src2.i = ORC_DENORMAL (var38.i);
+      _dest1.f = _src1.f * _src2.f;
+      var45.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 9: addf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var44.i);
+      _src2.i = ORC_DENORMAL (var43.i);
+      _dest1.f = _src1.f + _src2.f;
+      var46.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 10: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var45.i;
+      _dest.x2[1] = var46.i;
+      var47.i = _dest.i;
+    }
+    /* 11: convfl */
+    {
+      int tmp;
+      tmp = (int) var47.x2f[0];
+      if (tmp == 0x80000000 && !(var47.x2[0] & 0x80000000))
+        tmp = 0x7fffffff;
+      var48.x2[0] = tmp;
+    }
+    {
+      int tmp;
+      tmp = (int) var47.x2f[1];
+      if (tmp == 0x80000000 && !(var47.x2[1] & 0x80000000))
+        tmp = 0x7fffffff;
+      var48.x2[1] = tmp;
+    }
+    /* 12: convssslw */
+    var39.x2[0] = ORC_CLAMP_SW (var48.x2[0]);
+    var39.x2[1] = ORC_CLAMP_SW (var48.x2[1]);
+    /* 13: storel */
+    ptr0[i] = var39;
+  }
+
+}
+
+void
+audiopanoramam_orc_process_s16_ch2_psy_right (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, float p2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
+        109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
+            49,
+        54, 95, 99, 104, 50, 95, 112, 115, 121, 95, 114, 105, 103, 104, 116, 11,
+        4, 4, 12, 4, 4, 17, 4, 17, 4, 20, 8, 20, 4, 20, 4, 20,
+        4, 21, 1, 153, 32, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 34,
+        32, 202, 35, 33, 25, 202, 33, 33, 24, 200, 34, 35, 34, 194, 32, 33,
+        34, 21, 1, 210, 32, 32, 21, 1, 165, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_s16_ch2_psy_right);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audiopanoramam_orc_process_s16_ch2_psy_right");
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_s16_ch2_psy_right);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_parameter_float (p, 4, "p1");
+      orc_program_add_parameter_float (p, 4, "p2");
+      orc_program_add_temporary (p, 8, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+
+      orc_program_append_2 (p, "convswl", 1, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convlf", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T3, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_P2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addf", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union32 tmp;
+    tmp.f = p1;
+    ex->params[ORC_VAR_P1] = tmp.i;
+  }
+  {
+    orc_union32 tmp;
+    tmp.f = p2;
+    ex->params[ORC_VAR_P2] = tmp.i;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audiopanoramam_orc_process_s16_ch2_psy_left */
+#ifdef DISABLE_ORC
+void
+audiopanoramam_orc_process_s16_ch2_psy_left (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, float p2, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union64 var40;
+  orc_union64 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union64 var47;
+  orc_union64 var48;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 5: loadpl */
+  var37.f = p1;
+  /* 7: loadpl */
+  var38.f = p2;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var36 = ptr4[i];
+    /* 1: convswl */
+    var40.x2[0] = var36.x2[0];
+    var40.x2[1] = var36.x2[1];
+    /* 2: convlf */
+    var41.x2f[0] = var40.x2[0];
+    var41.x2f[1] = var40.x2[1];
+    /* 3: select0ql */
+    {
+      orc_union64 _src;
+      _src.i = var41.i;
+      var42.i = _src.x2[0];
+    }
+    /* 4: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var41.i;
+      var43.i = _src.x2[1];
+    }
+    /* 6: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var43.i);
+      _src2.i = ORC_DENORMAL (var37.i);
+      _dest1.f = _src1.f * _src2.f;
+      var44.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 8: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var43.i);
+      _src2.i = ORC_DENORMAL (var38.i);
+      _dest1.f = _src1.f * _src2.f;
+      var45.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 9: addf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var44.i);
+      _src2.i = ORC_DENORMAL (var42.i);
+      _dest1.f = _src1.f + _src2.f;
+      var46.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 10: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var46.i;
+      _dest.x2[1] = var45.i;
+      var47.i = _dest.i;
+    }
+    /* 11: convfl */
+    {
+      int tmp;
+      tmp = (int) var47.x2f[0];
+      if (tmp == 0x80000000 && !(var47.x2[0] & 0x80000000))
+        tmp = 0x7fffffff;
+      var48.x2[0] = tmp;
+    }
+    {
+      int tmp;
+      tmp = (int) var47.x2f[1];
+      if (tmp == 0x80000000 && !(var47.x2[1] & 0x80000000))
+        tmp = 0x7fffffff;
+      var48.x2[1] = tmp;
+    }
+    /* 12: convssslw */
+    var39.x2[0] = ORC_CLAMP_SW (var48.x2[0]);
+    var39.x2[1] = ORC_CLAMP_SW (var48.x2[1]);
+    /* 13: storel */
+    ptr0[i] = var39;
+  }
+
+}
+
+#else
+static void
+_backup_audiopanoramam_orc_process_s16_ch2_psy_left (OrcExecutor *
+    ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union64 var40;
+  orc_union64 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union64 var47;
+  orc_union64 var48;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 5: loadpl */
+  var37.i = ex->params[24];
+  /* 7: loadpl */
+  var38.i = ex->params[25];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var36 = ptr4[i];
+    /* 1: convswl */
+    var40.x2[0] = var36.x2[0];
+    var40.x2[1] = var36.x2[1];
+    /* 2: convlf */
+    var41.x2f[0] = var40.x2[0];
+    var41.x2f[1] = var40.x2[1];
+    /* 3: select0ql */
+    {
+      orc_union64 _src;
+      _src.i = var41.i;
+      var42.i = _src.x2[0];
+    }
+    /* 4: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var41.i;
+      var43.i = _src.x2[1];
+    }
+    /* 6: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var43.i);
+      _src2.i = ORC_DENORMAL (var37.i);
+      _dest1.f = _src1.f * _src2.f;
+      var44.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 8: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var43.i);
+      _src2.i = ORC_DENORMAL (var38.i);
+      _dest1.f = _src1.f * _src2.f;
+      var45.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 9: addf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var44.i);
+      _src2.i = ORC_DENORMAL (var42.i);
+      _dest1.f = _src1.f + _src2.f;
+      var46.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 10: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var46.i;
+      _dest.x2[1] = var45.i;
+      var47.i = _dest.i;
+    }
+    /* 11: convfl */
+    {
+      int tmp;
+      tmp = (int) var47.x2f[0];
+      if (tmp == 0x80000000 && !(var47.x2[0] & 0x80000000))
+        tmp = 0x7fffffff;
+      var48.x2[0] = tmp;
+    }
+    {
+      int tmp;
+      tmp = (int) var47.x2f[1];
+      if (tmp == 0x80000000 && !(var47.x2[1] & 0x80000000))
+        tmp = 0x7fffffff;
+      var48.x2[1] = tmp;
+    }
+    /* 12: convssslw */
+    var39.x2[0] = ORC_CLAMP_SW (var48.x2[0]);
+    var39.x2[1] = ORC_CLAMP_SW (var48.x2[1]);
+    /* 13: storel */
+    ptr0[i] = var39;
+  }
+
+}
+
+void
+audiopanoramam_orc_process_s16_ch2_psy_left (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, float p2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
+        109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
+            49,
+        54, 95, 99, 104, 50, 95, 112, 115, 121, 95, 108, 101, 102, 116, 11, 4,
+        4, 12, 4, 4, 17, 4, 17, 4, 20, 8, 20, 4, 20, 4, 20, 4,
+        21, 1, 153, 32, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 35, 32,
+        202, 34, 35, 24, 202, 35, 35, 25, 200, 33, 34, 33, 194, 32, 33, 35,
+        21, 1, 210, 32, 32, 21, 1, 165, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_s16_ch2_psy_left);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audiopanoramam_orc_process_s16_ch2_psy_left");
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_s16_ch2_psy_left);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_parameter_float (p, 4, "p1");
+      orc_program_add_parameter_float (p, 4, "p2");
+      orc_program_add_temporary (p, 8, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+
+      orc_program_append_2 (p, "convswl", 1, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convlf", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T4, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_P2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addf", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union32 tmp;
+    tmp.f = p1;
+    ex->params[ORC_VAR_P1] = tmp.i;
+  }
+  {
+    orc_union32 tmp;
+    tmp.f = p2;
+    ex->params[ORC_VAR_P2] = tmp.i;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audiopanoramam_orc_process_f32_ch2_psy_right */
+#ifdef DISABLE_ORC
+void
+audiopanoramam_orc_process_f32_ch2_psy_right (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, float p2, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var35;
+  orc_union64 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union64 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union64 *) s1;
+
+  /* 4: loadpl */
+  var37.f = p2;
+  /* 6: loadpl */
+  var38.f = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var35 = ptr4[i];
+    /* 1: select0ql */
+    {
+      orc_union64 _src;
+      _src.i = var35.i;
+      var40.i = _src.x2[0];
+    }
+    /* 2: loadq */
+    var36 = ptr4[i];
+    /* 3: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var36.i;
+      var41.i = _src.x2[1];
+    }
+    /* 5: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var40.i);
+      _src2.i = ORC_DENORMAL (var37.i);
+      _dest1.f = _src1.f * _src2.f;
+      var42.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 7: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var40.i);
+      _src2.i = ORC_DENORMAL (var38.i);
+      _dest1.f = _src1.f * _src2.f;
+      var43.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 8: addf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var42.i);
+      _src2.i = ORC_DENORMAL (var41.i);
+      _dest1.f = _src1.f + _src2.f;
+      var44.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 9: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var43.i;
+      _dest.x2[1] = var44.i;
+      var39.i = _dest.i;
+    }
+    /* 10: storeq */
+    ptr0[i] = var39;
+  }
+
+}
+
+#else
+static void
+_backup_audiopanoramam_orc_process_f32_ch2_psy_right (OrcExecutor *
+    ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var35;
+  orc_union64 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union64 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+
+  /* 4: loadpl */
+  var37.i = ex->params[25];
+  /* 6: loadpl */
+  var38.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var35 = ptr4[i];
+    /* 1: select0ql */
+    {
+      orc_union64 _src;
+      _src.i = var35.i;
+      var40.i = _src.x2[0];
+    }
+    /* 2: loadq */
+    var36 = ptr4[i];
+    /* 3: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var36.i;
+      var41.i = _src.x2[1];
+    }
+    /* 5: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var40.i);
+      _src2.i = ORC_DENORMAL (var37.i);
+      _dest1.f = _src1.f * _src2.f;
+      var42.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 7: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var40.i);
+      _src2.i = ORC_DENORMAL (var38.i);
+      _dest1.f = _src1.f * _src2.f;
+      var43.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 8: addf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var42.i);
+      _src2.i = ORC_DENORMAL (var41.i);
+      _dest1.f = _src1.f + _src2.f;
+      var44.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 9: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var43.i;
+      _dest.x2[1] = var44.i;
+      var39.i = _dest.i;
+    }
+    /* 10: storeq */
+    ptr0[i] = var39;
+  }
+
+}
+
+void
+audiopanoramam_orc_process_f32_ch2_psy_right (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, float p2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
+        109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
+            51,
+        50, 95, 99, 104, 50, 95, 112, 115, 121, 95, 114, 105, 103, 104, 116, 11,
+        8, 8, 12, 8, 8, 17, 4, 17, 4, 20, 4, 20, 4, 20, 4, 192,
+        32, 4, 193, 33, 4, 202, 34, 32, 25, 202, 32, 32, 24, 200, 33, 34,
+        33, 194, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_f32_ch2_psy_right);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audiopanoramam_orc_process_f32_ch2_psy_right");
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_f32_ch2_psy_right);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_parameter_float (p, 4, "p1");
+      orc_program_add_parameter_float (p, 4, "p2");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+
+      orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T2, ORC_VAR_S1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_P2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addf", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union32 tmp;
+    tmp.f = p1;
+    ex->params[ORC_VAR_P1] = tmp.i;
+  }
+  {
+    orc_union32 tmp;
+    tmp.f = p2;
+    ex->params[ORC_VAR_P2] = tmp.i;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audiopanoramam_orc_process_f32_ch2_psy_left */
+#ifdef DISABLE_ORC
+void
+audiopanoramam_orc_process_f32_ch2_psy_left (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, float p2, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var35;
+  orc_union64 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union64 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union64 *) s1;
+
+  /* 4: loadpl */
+  var37.f = p1;
+  /* 6: loadpl */
+  var38.f = p2;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var35 = ptr4[i];
+    /* 1: select0ql */
+    {
+      orc_union64 _src;
+      _src.i = var35.i;
+      var40.i = _src.x2[0];
+    }
+    /* 2: loadq */
+    var36 = ptr4[i];
+    /* 3: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var36.i;
+      var41.i = _src.x2[1];
+    }
+    /* 5: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var41.i);
+      _src2.i = ORC_DENORMAL (var37.i);
+      _dest1.f = _src1.f * _src2.f;
+      var42.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 7: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var41.i);
+      _src2.i = ORC_DENORMAL (var38.i);
+      _dest1.f = _src1.f * _src2.f;
+      var43.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 8: addf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var42.i);
+      _src2.i = ORC_DENORMAL (var40.i);
+      _dest1.f = _src1.f + _src2.f;
+      var44.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 9: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var44.i;
+      _dest.x2[1] = var43.i;
+      var39.i = _dest.i;
+    }
+    /* 10: storeq */
+    ptr0[i] = var39;
+  }
+
+}
+
+#else
+static void
+_backup_audiopanoramam_orc_process_f32_ch2_psy_left (OrcExecutor *
+    ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var35;
+  orc_union64 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union64 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+
+  /* 4: loadpl */
+  var37.i = ex->params[24];
+  /* 6: loadpl */
+  var38.i = ex->params[25];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var35 = ptr4[i];
+    /* 1: select0ql */
+    {
+      orc_union64 _src;
+      _src.i = var35.i;
+      var40.i = _src.x2[0];
+    }
+    /* 2: loadq */
+    var36 = ptr4[i];
+    /* 3: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var36.i;
+      var41.i = _src.x2[1];
+    }
+    /* 5: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var41.i);
+      _src2.i = ORC_DENORMAL (var37.i);
+      _dest1.f = _src1.f * _src2.f;
+      var42.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 7: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var41.i);
+      _src2.i = ORC_DENORMAL (var38.i);
+      _dest1.f = _src1.f * _src2.f;
+      var43.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 8: addf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var42.i);
+      _src2.i = ORC_DENORMAL (var40.i);
+      _dest1.f = _src1.f + _src2.f;
+      var44.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 9: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var44.i;
+      _dest.x2[1] = var43.i;
+      var39.i = _dest.i;
+    }
+    /* 10: storeq */
+    ptr0[i] = var39;
+  }
+
+}
+
+void
+audiopanoramam_orc_process_f32_ch2_psy_left (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, float p2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
+        109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
+            51,
+        50, 95, 99, 104, 50, 95, 112, 115, 121, 95, 108, 101, 102, 116, 11, 8,
+        8, 12, 8, 8, 17, 4, 17, 4, 20, 4, 20, 4, 20, 4, 192, 32,
+        4, 193, 34, 4, 202, 33, 34, 24, 202, 34, 34, 25, 200, 32, 33, 32,
+        194, 0, 32, 34, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_f32_ch2_psy_left);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audiopanoramam_orc_process_f32_ch2_psy_left");
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_f32_ch2_psy_left);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_parameter_float (p, 4, "p1");
+      orc_program_add_parameter_float (p, 4, "p2");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+
+      orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T3, ORC_VAR_S1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_P2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addf", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T3,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union32 tmp;
+    tmp.f = p1;
+    ex->params[ORC_VAR_P1] = tmp.i;
+  }
+  {
+    orc_union32 tmp;
+    tmp.f = p2;
+    ex->params[ORC_VAR_P2] = tmp.i;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audiopanoramam_orc_process_s16_ch1_sim_right */
+#ifdef DISABLE_ORC
+void
+audiopanoramam_orc_process_s16_ch1_sim_right (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union64 var41;
+  orc_union64 var42;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 3: loadpl */
+  var36.f = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var35 = ptr4[i];
+    /* 1: convswl */
+    var38.i = var35.i;
+    /* 2: convlf */
+    var39.f = var38.i;
+    /* 4: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var39.i);
+      _src2.i = ORC_DENORMAL (var36.i);
+      _dest1.f = _src1.f * _src2.f;
+      var40.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 5: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var40.i;
+      var41.i = _dest.i;
+    }
+    /* 6: convfl */
+    {
+      int tmp;
+      tmp = (int) var41.x2f[0];
+      if (tmp == 0x80000000 && !(var41.x2[0] & 0x80000000))
+        tmp = 0x7fffffff;
+      var42.x2[0] = tmp;
+    }
+    {
+      int tmp;
+      tmp = (int) var41.x2f[1];
+      if (tmp == 0x80000000 && !(var41.x2[1] & 0x80000000))
+        tmp = 0x7fffffff;
+      var42.x2[1] = tmp;
+    }
+    /* 7: convssslw */
+    var37.x2[0] = ORC_CLAMP_SW (var42.x2[0]);
+    var37.x2[1] = ORC_CLAMP_SW (var42.x2[1]);
+    /* 8: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_audiopanoramam_orc_process_s16_ch1_sim_right (OrcExecutor *
+    ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union64 var41;
+  orc_union64 var42;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 3: loadpl */
+  var36.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var35 = ptr4[i];
+    /* 1: convswl */
+    var38.i = var35.i;
+    /* 2: convlf */
+    var39.f = var38.i;
+    /* 4: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var39.i);
+      _src2.i = ORC_DENORMAL (var36.i);
+      _dest1.f = _src1.f * _src2.f;
+      var40.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 5: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var40.i;
+      var41.i = _dest.i;
+    }
+    /* 6: convfl */
+    {
+      int tmp;
+      tmp = (int) var41.x2f[0];
+      if (tmp == 0x80000000 && !(var41.x2[0] & 0x80000000))
+        tmp = 0x7fffffff;
+      var42.x2[0] = tmp;
+    }
+    {
+      int tmp;
+      tmp = (int) var41.x2f[1];
+      if (tmp == 0x80000000 && !(var41.x2[1] & 0x80000000))
+        tmp = 0x7fffffff;
+      var42.x2[1] = tmp;
+    }
+    /* 7: convssslw */
+    var37.x2[0] = ORC_CLAMP_SW (var42.x2[0]);
+    var37.x2[1] = ORC_CLAMP_SW (var42.x2[1]);
+    /* 8: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+audiopanoramam_orc_process_s16_ch1_sim_right (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
+        109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
+            49,
+        54, 95, 99, 104, 49, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11,
+        4, 4, 12, 2, 2, 17, 4, 20, 8, 20, 4, 20, 4, 153, 33, 4,
+        211, 33, 33, 202, 34, 33, 24, 194, 32, 33, 34, 21, 1, 210, 32, 32,
+        21, 1, 165, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_s16_ch1_sim_right);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audiopanoramam_orc_process_s16_ch1_sim_right");
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_s16_ch1_sim_right);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_parameter_float (p, 4, "p1");
+      orc_program_add_temporary (p, 8, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+
+      orc_program_append_2 (p, "convswl", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convlf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union32 tmp;
+    tmp.f = p1;
+    ex->params[ORC_VAR_P1] = tmp.i;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audiopanoramam_orc_process_s16_ch1_sim_left */
+#ifdef DISABLE_ORC
+void
+audiopanoramam_orc_process_s16_ch1_sim_left (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union64 var41;
+  orc_union64 var42;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 3: loadpl */
+  var36.f = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var35 = ptr4[i];
+    /* 1: convswl */
+    var38.i = var35.i;
+    /* 2: convlf */
+    var39.f = var38.i;
+    /* 4: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var39.i);
+      _src2.i = ORC_DENORMAL (var36.i);
+      _dest1.f = _src1.f * _src2.f;
+      var40.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 5: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var40.i;
+      _dest.x2[1] = var39.i;
+      var41.i = _dest.i;
+    }
+    /* 6: convfl */
+    {
+      int tmp;
+      tmp = (int) var41.x2f[0];
+      if (tmp == 0x80000000 && !(var41.x2[0] & 0x80000000))
+        tmp = 0x7fffffff;
+      var42.x2[0] = tmp;
+    }
+    {
+      int tmp;
+      tmp = (int) var41.x2f[1];
+      if (tmp == 0x80000000 && !(var41.x2[1] & 0x80000000))
+        tmp = 0x7fffffff;
+      var42.x2[1] = tmp;
+    }
+    /* 7: convssslw */
+    var37.x2[0] = ORC_CLAMP_SW (var42.x2[0]);
+    var37.x2[1] = ORC_CLAMP_SW (var42.x2[1]);
+    /* 8: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_audiopanoramam_orc_process_s16_ch1_sim_left (OrcExecutor *
+    ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union64 var41;
+  orc_union64 var42;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 3: loadpl */
+  var36.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var35 = ptr4[i];
+    /* 1: convswl */
+    var38.i = var35.i;
+    /* 2: convlf */
+    var39.f = var38.i;
+    /* 4: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var39.i);
+      _src2.i = ORC_DENORMAL (var36.i);
+      _dest1.f = _src1.f * _src2.f;
+      var40.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 5: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var40.i;
+      _dest.x2[1] = var39.i;
+      var41.i = _dest.i;
+    }
+    /* 6: convfl */
+    {
+      int tmp;
+      tmp = (int) var41.x2f[0];
+      if (tmp == 0x80000000 && !(var41.x2[0] & 0x80000000))
+        tmp = 0x7fffffff;
+      var42.x2[0] = tmp;
+    }
+    {
+      int tmp;
+      tmp = (int) var41.x2f[1];
+      if (tmp == 0x80000000 && !(var41.x2[1] & 0x80000000))
+        tmp = 0x7fffffff;
+      var42.x2[1] = tmp;
+    }
+    /* 7: convssslw */
+    var37.x2[0] = ORC_CLAMP_SW (var42.x2[0]);
+    var37.x2[1] = ORC_CLAMP_SW (var42.x2[1]);
+    /* 8: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+audiopanoramam_orc_process_s16_ch1_sim_left (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
+        109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
+            49,
+        54, 95, 99, 104, 49, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 4,
+        4, 12, 2, 2, 17, 4, 20, 8, 20, 4, 20, 4, 153, 34, 4, 211,
+        34, 34, 202, 33, 34, 24, 194, 32, 33, 34, 21, 1, 210, 32, 32, 21,
+        1, 165, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_s16_ch1_sim_left);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audiopanoramam_orc_process_s16_ch1_sim_left");
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_s16_ch1_sim_left);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_parameter_float (p, 4, "p1");
+      orc_program_add_temporary (p, 8, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+
+      orc_program_append_2 (p, "convswl", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convlf", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union32 tmp;
+    tmp.f = p1;
+    ex->params[ORC_VAR_P1] = tmp.i;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audiopanoramam_orc_process_s16_ch2_sim_right */
+#ifdef DISABLE_ORC
+void
+audiopanoramam_orc_process_s16_ch2_sim_right (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union64 var38;
+  orc_union64 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union64 var43;
+  orc_union64 var44;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 5: loadpl */
+  var36.f = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var35 = ptr4[i];
+    /* 1: convswl */
+    var38.x2[0] = var35.x2[0];
+    var38.x2[1] = var35.x2[1];
+    /* 2: convlf */
+    var39.x2f[0] = var38.x2[0];
+    var39.x2f[1] = var38.x2[1];
+    /* 3: select0ql */
+    {
+      orc_union64 _src;
+      _src.i = var39.i;
+      var40.i = _src.x2[0];
+    }
+    /* 4: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[1];
+    }
+    /* 6: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var41.i);
+      _src2.i = ORC_DENORMAL (var36.i);
+      _dest1.f = _src1.f * _src2.f;
+      var42.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 7: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var40.i;
+      _dest.x2[1] = var42.i;
+      var43.i = _dest.i;
+    }
+    /* 8: convfl */
+    {
+      int tmp;
+      tmp = (int) var43.x2f[0];
+      if (tmp == 0x80000000 && !(var43.x2[0] & 0x80000000))
+        tmp = 0x7fffffff;
+      var44.x2[0] = tmp;
+    }
+    {
+      int tmp;
+      tmp = (int) var43.x2f[1];
+      if (tmp == 0x80000000 && !(var43.x2[1] & 0x80000000))
+        tmp = 0x7fffffff;
+      var44.x2[1] = tmp;
+    }
+    /* 9: convssslw */
+    var37.x2[0] = ORC_CLAMP_SW (var44.x2[0]);
+    var37.x2[1] = ORC_CLAMP_SW (var44.x2[1]);
+    /* 10: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_audiopanoramam_orc_process_s16_ch2_sim_right (OrcExecutor *
+    ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union64 var38;
+  orc_union64 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union64 var43;
+  orc_union64 var44;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 5: loadpl */
+  var36.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var35 = ptr4[i];
+    /* 1: convswl */
+    var38.x2[0] = var35.x2[0];
+    var38.x2[1] = var35.x2[1];
+    /* 2: convlf */
+    var39.x2f[0] = var38.x2[0];
+    var39.x2f[1] = var38.x2[1];
+    /* 3: select0ql */
+    {
+      orc_union64 _src;
+      _src.i = var39.i;
+      var40.i = _src.x2[0];
+    }
+    /* 4: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[1];
+    }
+    /* 6: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var41.i);
+      _src2.i = ORC_DENORMAL (var36.i);
+      _dest1.f = _src1.f * _src2.f;
+      var42.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 7: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var40.i;
+      _dest.x2[1] = var42.i;
+      var43.i = _dest.i;
+    }
+    /* 8: convfl */
+    {
+      int tmp;
+      tmp = (int) var43.x2f[0];
+      if (tmp == 0x80000000 && !(var43.x2[0] & 0x80000000))
+        tmp = 0x7fffffff;
+      var44.x2[0] = tmp;
+    }
+    {
+      int tmp;
+      tmp = (int) var43.x2f[1];
+      if (tmp == 0x80000000 && !(var43.x2[1] & 0x80000000))
+        tmp = 0x7fffffff;
+      var44.x2[1] = tmp;
+    }
+    /* 9: convssslw */
+    var37.x2[0] = ORC_CLAMP_SW (var44.x2[0]);
+    var37.x2[1] = ORC_CLAMP_SW (var44.x2[1]);
+    /* 10: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+audiopanoramam_orc_process_s16_ch2_sim_right (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
+        109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
+            49,
+        54, 95, 99, 104, 50, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11,
+        4, 4, 12, 4, 4, 17, 4, 20, 8, 20, 4, 20, 4, 21, 1, 153,
+        32, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 34, 32, 202, 34, 34,
+        24, 194, 32, 33, 34, 21, 1, 210, 32, 32, 21, 1, 165, 0, 32, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_s16_ch2_sim_right);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audiopanoramam_orc_process_s16_ch2_sim_right");
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_s16_ch2_sim_right);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_parameter_float (p, 4, "p1");
+      orc_program_add_temporary (p, 8, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+
+      orc_program_append_2 (p, "convswl", 1, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convlf", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T3, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union32 tmp;
+    tmp.f = p1;
+    ex->params[ORC_VAR_P1] = tmp.i;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audiopanoramam_orc_process_s16_ch2_sim_left */
+#ifdef DISABLE_ORC
+void
+audiopanoramam_orc_process_s16_ch2_sim_left (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union64 var38;
+  orc_union64 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union64 var43;
+  orc_union64 var44;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 5: loadpl */
+  var36.f = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var35 = ptr4[i];
+    /* 1: convswl */
+    var38.x2[0] = var35.x2[0];
+    var38.x2[1] = var35.x2[1];
+    /* 2: convlf */
+    var39.x2f[0] = var38.x2[0];
+    var39.x2f[1] = var38.x2[1];
+    /* 3: select0ql */
+    {
+      orc_union64 _src;
+      _src.i = var39.i;
+      var40.i = _src.x2[0];
+    }
+    /* 4: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[1];
+    }
+    /* 6: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var40.i);
+      _src2.i = ORC_DENORMAL (var36.i);
+      _dest1.f = _src1.f * _src2.f;
+      var42.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 7: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var41.i;
+      var43.i = _dest.i;
+    }
+    /* 8: convfl */
+    {
+      int tmp;
+      tmp = (int) var43.x2f[0];
+      if (tmp == 0x80000000 && !(var43.x2[0] & 0x80000000))
+        tmp = 0x7fffffff;
+      var44.x2[0] = tmp;
+    }
+    {
+      int tmp;
+      tmp = (int) var43.x2f[1];
+      if (tmp == 0x80000000 && !(var43.x2[1] & 0x80000000))
+        tmp = 0x7fffffff;
+      var44.x2[1] = tmp;
+    }
+    /* 9: convssslw */
+    var37.x2[0] = ORC_CLAMP_SW (var44.x2[0]);
+    var37.x2[1] = ORC_CLAMP_SW (var44.x2[1]);
+    /* 10: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_audiopanoramam_orc_process_s16_ch2_sim_left (OrcExecutor *
+    ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union64 var38;
+  orc_union64 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union64 var43;
+  orc_union64 var44;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 5: loadpl */
+  var36.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var35 = ptr4[i];
+    /* 1: convswl */
+    var38.x2[0] = var35.x2[0];
+    var38.x2[1] = var35.x2[1];
+    /* 2: convlf */
+    var39.x2f[0] = var38.x2[0];
+    var39.x2f[1] = var38.x2[1];
+    /* 3: select0ql */
+    {
+      orc_union64 _src;
+      _src.i = var39.i;
+      var40.i = _src.x2[0];
+    }
+    /* 4: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[1];
+    }
+    /* 6: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var40.i);
+      _src2.i = ORC_DENORMAL (var36.i);
+      _dest1.f = _src1.f * _src2.f;
+      var42.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 7: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var41.i;
+      var43.i = _dest.i;
+    }
+    /* 8: convfl */
+    {
+      int tmp;
+      tmp = (int) var43.x2f[0];
+      if (tmp == 0x80000000 && !(var43.x2[0] & 0x80000000))
+        tmp = 0x7fffffff;
+      var44.x2[0] = tmp;
+    }
+    {
+      int tmp;
+      tmp = (int) var43.x2f[1];
+      if (tmp == 0x80000000 && !(var43.x2[1] & 0x80000000))
+        tmp = 0x7fffffff;
+      var44.x2[1] = tmp;
+    }
+    /* 9: convssslw */
+    var37.x2[0] = ORC_CLAMP_SW (var44.x2[0]);
+    var37.x2[1] = ORC_CLAMP_SW (var44.x2[1]);
+    /* 10: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+audiopanoramam_orc_process_s16_ch2_sim_left (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, float p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
+        109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
+            49,
+        54, 95, 99, 104, 50, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 4,
+        4, 12, 4, 4, 17, 4, 20, 8, 20, 4, 20, 4, 21, 1, 153, 32,
+        4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 34, 32, 202, 33, 33, 24,
+        194, 32, 33, 34, 21, 1, 210, 32, 32, 21, 1, 165, 0, 32, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_s16_ch2_sim_left);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audiopanoramam_orc_process_s16_ch2_sim_left");
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_s16_ch2_sim_left);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_parameter_float (p, 4, "p1");
+      orc_program_add_temporary (p, 8, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+
+      orc_program_append_2 (p, "convswl", 1, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convlf", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T3, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union32 tmp;
+    tmp.f = p1;
+    ex->params[ORC_VAR_P1] = tmp.i;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audiopanoramam_orc_process_f32_ch1_sim_right */
+#ifdef DISABLE_ORC
+void
+audiopanoramam_orc_process_f32_ch1_sim_right (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union64 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 3: loadpl */
+  var36.f = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var34 = ptr4[i];
+    /* 1: copyl */
+    var38.i = var34.i;
+    /* 2: loadl */
+    var35 = ptr4[i];
+    /* 4: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var35.i);
+      _src2.i = ORC_DENORMAL (var36.i);
+      _dest1.f = _src1.f * _src2.f;
+      var39.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 5: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var38.i;
+      _dest.x2[1] = var39.i;
+      var37.i = _dest.i;
+    }
+    /* 6: storeq */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_audiopanoramam_orc_process_f32_ch1_sim_right (OrcExecutor *
+    ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union64 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 3: loadpl */
+  var36.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var34 = ptr4[i];
+    /* 1: copyl */
+    var38.i = var34.i;
+    /* 2: loadl */
+    var35 = ptr4[i];
+    /* 4: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var35.i);
+      _src2.i = ORC_DENORMAL (var36.i);
+      _dest1.f = _src1.f * _src2.f;
+      var39.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 5: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var38.i;
+      _dest.x2[1] = var39.i;
+      var37.i = _dest.i;
+    }
+    /* 6: storeq */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+audiopanoramam_orc_process_f32_ch1_sim_right (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
+        109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
+            51,
+        50, 95, 99, 104, 49, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11,
+        8, 8, 12, 4, 4, 17, 4, 20, 4, 20, 4, 112, 32, 4, 202, 33,
+        4, 24, 194, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_f32_ch1_sim_right);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audiopanoramam_orc_process_f32_ch1_sim_right");
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_f32_ch1_sim_right);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_parameter_float (p, 4, "p1");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+
+      orc_program_append_2 (p, "copyl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union32 tmp;
+    tmp.f = p1;
+    ex->params[ORC_VAR_P1] = tmp.i;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audiopanoramam_orc_process_f32_ch1_sim_left */
+#ifdef DISABLE_ORC
+void
+audiopanoramam_orc_process_f32_ch1_sim_left (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union64 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 1: loadpl */
+  var35.f = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var34 = ptr4[i];
+    /* 2: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var34.i);
+      _src2.i = ORC_DENORMAL (var35.i);
+      _dest1.f = _src1.f * _src2.f;
+      var38.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 3: loadl */
+    var36 = ptr4[i];
+    /* 4: copyl */
+    var39.i = var36.i;
+    /* 5: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var38.i;
+      _dest.x2[1] = var39.i;
+      var37.i = _dest.i;
+    }
+    /* 6: storeq */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_audiopanoramam_orc_process_f32_ch1_sim_left (OrcExecutor *
+    ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union64 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 1: loadpl */
+  var35.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var34 = ptr4[i];
+    /* 2: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var34.i);
+      _src2.i = ORC_DENORMAL (var35.i);
+      _dest1.f = _src1.f * _src2.f;
+      var38.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 3: loadl */
+    var36 = ptr4[i];
+    /* 4: copyl */
+    var39.i = var36.i;
+    /* 5: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var38.i;
+      _dest.x2[1] = var39.i;
+      var37.i = _dest.i;
+    }
+    /* 6: storeq */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+audiopanoramam_orc_process_f32_ch1_sim_left (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
+        109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
+            51,
+        50, 95, 99, 104, 49, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 8,
+        8, 12, 4, 4, 17, 4, 20, 4, 20, 4, 202, 32, 4, 24, 112, 33,
+        4, 194, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_f32_ch1_sim_left);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audiopanoramam_orc_process_f32_ch1_sim_left");
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_f32_ch1_sim_left);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_parameter_float (p, 4, "p1");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "copyl", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union32 tmp;
+    tmp.f = p1;
+    ex->params[ORC_VAR_P1] = tmp.i;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audiopanoramam_orc_process_f32_ch2_sim_right */
+#ifdef DISABLE_ORC
+void
+audiopanoramam_orc_process_f32_ch2_sim_right (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var34;
+  orc_union64 var35;
+  orc_union32 var36;
+  orc_union64 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union64 *) s1;
+
+  /* 4: loadpl */
+  var36.f = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var34 = ptr4[i];
+    /* 1: select0ql */
+    {
+      orc_union64 _src;
+      _src.i = var34.i;
+      var38.i = _src.x2[0];
+    }
+    /* 2: loadq */
+    var35 = ptr4[i];
+    /* 3: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var35.i;
+      var39.i = _src.x2[1];
+    }
+    /* 5: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var39.i);
+      _src2.i = ORC_DENORMAL (var36.i);
+      _dest1.f = _src1.f * _src2.f;
+      var40.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 6: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var38.i;
+      _dest.x2[1] = var40.i;
+      var37.i = _dest.i;
+    }
+    /* 7: storeq */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_audiopanoramam_orc_process_f32_ch2_sim_right (OrcExecutor *
+    ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var34;
+  orc_union64 var35;
+  orc_union32 var36;
+  orc_union64 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+
+  /* 4: loadpl */
+  var36.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var34 = ptr4[i];
+    /* 1: select0ql */
+    {
+      orc_union64 _src;
+      _src.i = var34.i;
+      var38.i = _src.x2[0];
+    }
+    /* 2: loadq */
+    var35 = ptr4[i];
+    /* 3: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var35.i;
+      var39.i = _src.x2[1];
+    }
+    /* 5: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var39.i);
+      _src2.i = ORC_DENORMAL (var36.i);
+      _dest1.f = _src1.f * _src2.f;
+      var40.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 6: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var38.i;
+      _dest.x2[1] = var40.i;
+      var37.i = _dest.i;
+    }
+    /* 7: storeq */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+audiopanoramam_orc_process_f32_ch2_sim_right (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
+        109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
+            51,
+        50, 95, 99, 104, 50, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11,
+        8, 8, 12, 8, 8, 17, 4, 20, 4, 20, 4, 192, 32, 4, 193, 33,
+        4, 202, 33, 33, 24, 194, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_f32_ch2_sim_right);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audiopanoramam_orc_process_f32_ch2_sim_right");
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_f32_ch2_sim_right);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_parameter_float (p, 4, "p1");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+
+      orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T2, ORC_VAR_S1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union32 tmp;
+    tmp.f = p1;
+    ex->params[ORC_VAR_P1] = tmp.i;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audiopanoramam_orc_process_f32_ch2_sim_left */
+#ifdef DISABLE_ORC
+void
+audiopanoramam_orc_process_f32_ch2_sim_left (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var34;
+  orc_union64 var35;
+  orc_union32 var36;
+  orc_union64 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union64 *) s1;
+
+  /* 4: loadpl */
+  var36.f = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var34 = ptr4[i];
+    /* 1: select0ql */
+    {
+      orc_union64 _src;
+      _src.i = var34.i;
+      var38.i = _src.x2[0];
+    }
+    /* 2: loadq */
+    var35 = ptr4[i];
+    /* 3: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var35.i;
+      var39.i = _src.x2[1];
+    }
+    /* 5: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var38.i);
+      _src2.i = ORC_DENORMAL (var36.i);
+      _dest1.f = _src1.f * _src2.f;
+      var40.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 6: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var40.i;
+      _dest.x2[1] = var39.i;
+      var37.i = _dest.i;
+    }
+    /* 7: storeq */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_audiopanoramam_orc_process_f32_ch2_sim_left (OrcExecutor *
+    ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var34;
+  orc_union64 var35;
+  orc_union32 var36;
+  orc_union64 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+
+  /* 4: loadpl */
+  var36.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var34 = ptr4[i];
+    /* 1: select0ql */
+    {
+      orc_union64 _src;
+      _src.i = var34.i;
+      var38.i = _src.x2[0];
+    }
+    /* 2: loadq */
+    var35 = ptr4[i];
+    /* 3: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var35.i;
+      var39.i = _src.x2[1];
+    }
+    /* 5: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var38.i);
+      _src2.i = ORC_DENORMAL (var36.i);
+      _dest1.f = _src1.f * _src2.f;
+      var40.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 6: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var40.i;
+      _dest.x2[1] = var39.i;
+      var37.i = _dest.i;
+    }
+    /* 7: storeq */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+audiopanoramam_orc_process_f32_ch2_sim_left (gfloat * ORC_RESTRICT d1,
+    const gfloat * ORC_RESTRICT s1, float p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
+        109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
+            51,
+        50, 95, 99, 104, 50, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 8,
+        8, 12, 8, 8, 17, 4, 20, 4, 20, 4, 192, 32, 4, 193, 33, 4,
+        202, 32, 32, 24, 194, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_f32_ch2_sim_left);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audiopanoramam_orc_process_f32_ch2_sim_left");
+      orc_program_set_backup_function (p,
+          _backup_audiopanoramam_orc_process_f32_ch2_sim_left);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_parameter_float (p, 4, "p1");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+
+      orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T2, ORC_VAR_S1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union32 tmp;
+    tmp.f = p1;
+    ex->params[ORC_VAR_P1] = tmp.i;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
diff --git a/gst/audiofx/audiopanoramaorc-dist.h b/gst/audiofx/audiopanoramaorc-dist.h
new file mode 100644
index 000000000..7611fba77
--- /dev/null
+++ b/gst/audiofx/audiopanoramaorc-dist.h
@@ -0,0 +1,107 @@
+
+/* autogenerated from audiopanoramaorc.orc */
+
+#ifndef _AUDIOPANORAMAORC_H_
+#define _AUDIOPANORAMAORC_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
+
+#ifndef ORC_INTERNAL
+#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
+#define ORC_INTERNAL __attribute__((visibility("hidden")))
+#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
+#define ORC_INTERNAL __hidden
+#elif defined (__GNUC__)
+#define ORC_INTERNAL __attribute__((visibility("hidden")))
+#else
+#define ORC_INTERNAL
+#endif
+#endif
+
+void audiopanoramam_orc_process_s16_ch1_none (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, int n);
+void audiopanoramam_orc_process_f32_ch1_none (gfloat * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, int n);
+void audiopanoramam_orc_process_s16_ch2_none (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, int n);
+void audiopanoramam_orc_process_f32_ch2_none (gfloat * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, int n);
+void audiopanoramam_orc_process_s16_ch1_psy (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, float p1, float p2, int n);
+void audiopanoramam_orc_process_f32_ch1_psy (gfloat * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, float p1, float p2, int n);
+void audiopanoramam_orc_process_s16_ch2_psy_right (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, float p1, float p2, int n);
+void audiopanoramam_orc_process_s16_ch2_psy_left (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, float p1, float p2, int n);
+void audiopanoramam_orc_process_f32_ch2_psy_right (gfloat * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, float p1, float p2, int n);
+void audiopanoramam_orc_process_f32_ch2_psy_left (gfloat * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, float p1, float p2, int n);
+void audiopanoramam_orc_process_s16_ch1_sim_right (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, float p1, int n);
+void audiopanoramam_orc_process_s16_ch1_sim_left (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, float p1, int n);
+void audiopanoramam_orc_process_s16_ch2_sim_right (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, float p1, int n);
+void audiopanoramam_orc_process_s16_ch2_sim_left (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, float p1, int n);
+void audiopanoramam_orc_process_f32_ch1_sim_right (gfloat * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, float p1, int n);
+void audiopanoramam_orc_process_f32_ch1_sim_left (gfloat * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, float p1, int n);
+void audiopanoramam_orc_process_f32_ch2_sim_right (gfloat * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, float p1, int n);
+void audiopanoramam_orc_process_f32_ch2_sim_left (gfloat * ORC_RESTRICT d1, const gfloat * ORC_RESTRICT s1, float p1, int n);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/gst/audiofx/audiopanoramaorc.orc b/gst/audiofx/audiopanoramaorc.orc
new file mode 100644
index 000000000..46140111e
--- /dev/null
+++ b/gst/audiofx/audiopanoramaorc.orc
@@ -0,0 +1,258 @@
+# pass through functions
+
+.function audiopanoramam_orc_process_s16_ch1_none
+.source 2 s1 gint16
+.dest 4 d1 gint16
+
+mergewl d1 s1 s1
+
+
+.function audiopanoramam_orc_process_f32_ch1_none
+.source 4 s1 gfloat
+.dest 8 d1 gfloat
+
+mergelq d1 s1 s1
+
+
+.function audiopanoramam_orc_process_s16_ch2_none
+.source 4 s1 gint16
+.dest 4 d1 gint16
+
+x2 copyw d1 s1
+
+
+.function audiopanoramam_orc_process_f32_ch2_none
+.source 8 s1 gfloat
+.dest 8 d1 gfloat
+
+x2 copyl d1 s1
+
+
+# psychoacoustic processing function
+
+.function audiopanoramam_orc_process_s16_ch1_psy
+.source 2 s1 gint16
+.dest 4 d1 gint16
+.floatparam 4 lpan
+.floatparam 4 rpan
+.temp 8 t1
+.temp 4 left
+.temp 4 right
+
+convswl left s1
+convlf left left
+mulf right left rpan
+mulf left left lpan
+mergelq t1 left right
+x2 convfl t1 t1
+x2 convssslw d1 t1
+
+
+.function audiopanoramam_orc_process_f32_ch1_psy
+.source 4 s1 gfloat
+.dest 8 d1 gfloat
+.floatparam 4 lpan
+.floatparam 4 rpan
+.temp 4 left
+.temp 4 right
+
+mulf right s1 rpan
+mulf left s1 lpan
+mergelq d1 left right
+
+
+.function audiopanoramam_orc_process_s16_ch2_psy_right
+.source 4 s1 gint16
+.dest 4 d1 gint16
+.floatparam 4 llpan
+.floatparam 4 rlpan
+.temp 8 t1
+.temp 4 left
+.temp 4 right
+.temp 4 right1
+
+x2 convswl t1 s1
+x2 convlf t1 t1
+select0ql left t1
+select1ql right t1
+mulf right1 left rlpan
+mulf left left llpan
+addf right right1 right
+mergelq t1 left right
+x2 convfl t1 t1
+x2 convssslw d1 t1
+
+
+.function audiopanoramam_orc_process_s16_ch2_psy_left
+.source 4 s1 gint16
+.dest 4 d1 gint16
+.floatparam 4 lrpan
+.floatparam 4 rrpan
+.temp 8 t1
+.temp 4 left
+.temp 4 left1
+.temp 4 right
+
+x2 convswl t1 s1
+x2 convlf t1 t1
+select0ql left t1
+select1ql right t1
+mulf left1 right lrpan
+mulf right right rrpan
+addf left left1 left
+mergelq t1 left right
+x2 convfl t1 t1
+x2 convssslw d1 t1
+
+
+.function audiopanoramam_orc_process_f32_ch2_psy_right
+.source 8 s1 gfloat
+.dest 8 d1 gfloat
+.floatparam 4 llpan
+.floatparam 4 rlpan
+.temp 4 left
+.temp 4 right
+.temp 4 right1
+
+select0ql left s1
+select1ql right s1
+mulf right1 left rlpan
+mulf left left llpan
+addf right right1 right
+mergelq d1 left right
+
+
+.function audiopanoramam_orc_process_f32_ch2_psy_left
+.source 8 s1 gfloat
+.dest 8 d1 gfloat
+.floatparam 4 lrpan
+.floatparam 4 rrpan
+.temp 4 left
+.temp 4 left1
+.temp 4 right
+
+select0ql left s1
+select1ql right s1
+mulf left1 right lrpan
+mulf right right rrpan
+addf left left1 left
+mergelq d1 left right
+
+# simple processing functions
+
+.function audiopanoramam_orc_process_s16_ch1_sim_right
+.source 2 s1 gint16
+.dest 4 d1 gint16
+.floatparam 4 rpan
+.temp 8 t1
+.temp 4 left
+.temp 4 right
+
+convswl left s1
+convlf left left
+mulf right left rpan
+mergelq t1 left right
+x2 convfl t1 t1
+x2 convssslw d1 t1
+
+
+.function audiopanoramam_orc_process_s16_ch1_sim_left
+.source 2 s1 gint16
+.dest 4 d1 gint16
+.floatparam 4 lpan
+.temp 8 t1
+.temp 4 left
+.temp 4 right
+
+convswl right s1
+convlf right right
+mulf left right lpan
+mergelq t1 left right
+x2 convfl t1 t1
+x2 convssslw d1 t1
+
+
+.function audiopanoramam_orc_process_s16_ch2_sim_right
+.source 4 s1 gint16
+.dest 4 d1 gint16
+.floatparam 4 rpan
+.temp 8 t1
+.temp 4 left
+.temp 4 right
+
+x2 convswl t1 s1
+x2 convlf t1 t1
+select0ql left t1
+select1ql right t1
+mulf right right rpan
+mergelq t1 left right
+x2 convfl t1 t1
+x2 convssslw d1 t1
+
+
+.function audiopanoramam_orc_process_s16_ch2_sim_left
+.source 4 s1 gint16
+.dest 4 d1 gint16
+.floatparam 4 lpan
+.temp 8 t1
+.temp 4 left
+.temp 4 right
+
+x2 convswl t1 s1
+x2 convlf t1 t1
+select0ql left t1
+select1ql right t1
+mulf left left lpan
+mergelq t1 left right
+x2 convfl t1 t1
+x2 convssslw d1 t1
+
+
+.function audiopanoramam_orc_process_f32_ch1_sim_right
+.source 4 s1 gfloat
+.dest 8 d1 gfloat
+.floatparam 4 rpan
+.temp 4 left
+.temp 4 right
+
+copyl left s1
+mulf right s1 rpan
+mergelq d1 left right
+
+
+.function audiopanoramam_orc_process_f32_ch1_sim_left
+.source 4 s1 gfloat
+.dest 8 d1 gfloat
+.floatparam 4 lpan
+.temp 4 left
+.temp 4 right
+
+mulf left s1 lpan
+copyl right s1
+mergelq d1 left right
+
+
+.function audiopanoramam_orc_process_f32_ch2_sim_right
+.source 8 s1 gfloat
+.dest 8 d1 gfloat
+.floatparam 4 rpan
+.temp 4 left
+.temp 4 right
+
+select0ql left s1
+select1ql right s1
+mulf right right rpan
+mergelq d1 left right
+
+.function audiopanoramam_orc_process_f32_ch2_sim_left
+.source 8 s1 gfloat
+.dest 8 d1 gfloat
+.floatparam 4 lpan
+.temp 4 left
+.temp 4 right
+
+select0ql left s1
+select1ql right s1
+mulf left left lpan
+mergelq d1 left right
+
diff --git a/gst/audiofx/audiowsincband.c b/gst/audiofx/audiowsincband.c
index 56488fbfb..3cbad5d31 100644
--- a/gst/audiofx/audiowsincband.c
+++ b/gst/audiofx/audiowsincband.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  * 
  * 
  * this windowed sinc filter is taken from the freely downloadable DSP book,
diff --git a/gst/audiofx/audiowsincband.h b/gst/audiofx/audiowsincband.h
index 8933fe9eb..27c2bd479 100644
--- a/gst/audiofx/audiowsincband.h
+++ b/gst/audiofx/audiowsincband.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  *
  * this windowed sinc filter is taken from the freely downloadable DSP book,
diff --git a/gst/audiofx/audiowsinclimit.c b/gst/audiofx/audiowsinclimit.c
index 34a6c1671..38eb00717 100644
--- a/gst/audiofx/audiowsinclimit.c
+++ b/gst/audiofx/audiowsinclimit.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  * 
  * 
  * this windowed sinc filter is taken from the freely downloadable DSP book,
@@ -45,9 +45,9 @@
  * <refsect2>
  * <title>Example launch line</title>
  * |[
- * gst-launch-1.0 audiotestsrc freq=1500 ! audioconvert ! audiowsinclimit mode=low-pass frequency=1000 length=501 ! audioconvert ! alsasink
- * gst-launch-1.0 filesrc location="melo1.ogg" ! oggdemux ! vorbisdec ! audioconvert ! audiowsinclimit mode=high-pass frequency=15000 length=501 ! audioconvert ! alsasink
- * gst-launch-1.0 audiotestsrc wave=white-noise ! audioconvert ! audiowsinclimit mode=low-pass frequency=1000 length=10001 window=blackman ! audioconvert ! alsasink
+ * gst-launch-1.0 audiotestsrc freq=1500 ! audioconvert ! audiowsinclimit mode=low-pass cutoff=1000 length=501 ! audioconvert ! alsasink
+ * gst-launch-1.0 filesrc location="melo1.ogg" ! oggdemux ! vorbisdec ! audioconvert ! audiowsinclimit mode=high-pass cutoff=15000 length=501 ! audioconvert ! alsasink
+ * gst-launch-1.0 audiotestsrc wave=white-noise ! audioconvert ! audiowsinclimit mode=low-pass cutoff=1000 length=10001 window=blackman ! audioconvert ! alsasink
  * ]|
  * </refsect2>
  */
diff --git a/gst/audiofx/audiowsinclimit.h b/gst/audiofx/audiowsinclimit.h
index 3afdf13a3..e7fa915a0 100644
--- a/gst/audiofx/audiowsinclimit.h
+++ b/gst/audiofx/audiowsinclimit.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  * 
  * 
  * this windowed sinc filter is taken from the freely downloadable DSP book,
diff --git a/gst/audiofx/gstscaletempo.c b/gst/audiofx/gstscaletempo.c
new file mode 100644
index 000000000..87118f0c2
--- /dev/null
+++ b/gst/audiofx/gstscaletempo.c
@@ -0,0 +1,747 @@
+/*
+ * GStreamer
+ * Copyright (C) 2008 Rov Juvano <rovjuvano@users.sourceforge.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:element-scaletempo
+ *
+ * Scale tempo while maintaining pitch
+ * (WSOLA-like technique with cross correlation)
+ * Inspired by SoundTouch library by Olli Parviainen
+ *
+ * Use Sceletempo to apply playback rates without the chipmunk effect.
+ *
+ * <refsect2>
+ * <title>Example pipelines</title>
+ * <para>
+ * |[
+ * filesrc location=media.ext ! decodebin name=d \
+ *     d. ! queue ! audioconvert ! audioresample ! scaletempo ! audioconvert ! audioresample ! autoaudiosink \
+ *     d. ! queue ! videoconvert ! autovideosink
+ * ]|
+ * OR
+ * |[
+ * playbin uri=... audio_sink="scaletempo ! audioconvert ! audioresample ! autoaudiosink"
+ * ]|
+ * When an application sends a seek event with rate != 1.0, Scaletempo applies
+ * the rate change by scaling the tempo without scaling the pitch.
+ *
+ * Scaletempo works by producing audio in constant sized chunks
+ * (#GstScaletempo:stride) but consuming chunks proportional to the playback
+ * rate.
+ *
+ * Scaletempo then smooths the output by blending the end of one stride with
+ * the next (#GstScaletempo:overlap).
+ *
+ * Scaletempo smooths the overlap further by searching within the input buffer
+ * for the best overlap position.  Scaletempo uses a statistical cross
+ * correlation (roughly a dot-product).  Scaletempo consumes most of its CPU
+ * cycles here. One can use the #GstScaletempo:search propery to tune how far
+ * the algoritm looks.
+ * </para>
+ * </refsect2>
+ */
+
+/*
+ * Note: frame = audio key unit (i.e. one sample for each channel)
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/gst.h>
+#include <gst/base/gstbasetransform.h>
+#include <gst/audio/audio.h>
+#include <string.h>             /* for memset */
+
+#include "gstscaletempo.h"
+
+GST_DEBUG_CATEGORY_STATIC (gst_scaletempo_debug);
+#define GST_CAT_DEFAULT gst_scaletempo_debug
+
+/* Filter signals and args */
+enum
+{
+  LAST_SIGNAL
+};
+
+enum
+{
+  PROP_0,
+  PROP_RATE,
+  PROP_STRIDE,
+  PROP_OVERLAP,
+  PROP_SEARCH,
+};
+
+#define SUPPORTED_CAPS \
+GST_STATIC_CAPS ( \
+    GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (F32)) "; " \
+    GST_AUDIO_CAPS_MAKE (GST_AUDIO_NE (S16)) \
+)
+
+static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    SUPPORTED_CAPS);
+
+static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    SUPPORTED_CAPS);
+
+#define DEBUG_INIT(bla) GST_DEBUG_CATEGORY_INIT (gst_scaletempo_debug, "scaletempo", 0, "scaletempo element");
+
+#define gst_scaletempo_parent_class parent_class
+G_DEFINE_TYPE_WITH_CODE (GstScaletempo, gst_scaletempo,
+    GST_TYPE_BASE_TRANSFORM, DEBUG_INIT (0));
+
+static guint
+best_overlap_offset_float (GstScaletempo * st)
+{
+  gfloat *pw, *po, *ppc, *search_start;
+  gfloat best_corr = G_MININT;
+  guint best_off = 0;
+  gint i, off;
+
+  pw = st->table_window;
+  po = st->buf_overlap;
+  po += st->samples_per_frame;
+  ppc = st->buf_pre_corr;
+  for (i = st->samples_per_frame; i < st->samples_overlap; i++) {
+    *ppc++ = *pw++ * *po++;
+  }
+
+  search_start = (gfloat *) st->buf_queue + st->samples_per_frame;
+  for (off = 0; off < st->frames_search; off++) {
+    gfloat corr = 0;
+    gfloat *ps = search_start;
+    ppc = st->buf_pre_corr;
+    for (i = st->samples_per_frame; i < st->samples_overlap; i++) {
+      corr += *ppc++ * *ps++;
+    }
+    if (corr > best_corr) {
+      best_corr = corr;
+      best_off = off;
+    }
+    search_start += st->samples_per_frame;
+  }
+
+  return best_off * st->bytes_per_frame;
+}
+
+/* buffer padding for loop optimization: sizeof(gint32) * (loop_size - 1) */
+#define UNROLL_PADDING (4*3)
+static guint
+best_overlap_offset_s16 (GstScaletempo * st)
+{
+  gint32 *pw, *ppc;
+  gint16 *po, *search_start;
+  gint64 best_corr = G_MININT64;
+  guint best_off = 0;
+  guint off;
+  glong i;
+
+  pw = st->table_window;
+  po = st->buf_overlap;
+  po += st->samples_per_frame;
+  ppc = st->buf_pre_corr;
+  for (i = st->samples_per_frame; i < st->samples_overlap; i++) {
+    *ppc++ = (*pw++ * *po++) >> 15;
+  }
+
+  search_start = (gint16 *) st->buf_queue + st->samples_per_frame;
+  for (off = 0; off < st->frames_search; off++) {
+    gint64 corr = 0;
+    gint16 *ps = search_start;
+    ppc = st->buf_pre_corr;
+    ppc += st->samples_overlap - st->samples_per_frame;
+    ps += st->samples_overlap - st->samples_per_frame;
+    i = -((glong) st->samples_overlap - (glong) st->samples_per_frame);
+    do {
+      corr += ppc[i + 0] * ps[i + 0];
+      corr += ppc[i + 1] * ps[i + 1];
+      corr += ppc[i + 2] * ps[i + 2];
+      corr += ppc[i + 3] * ps[i + 3];
+      i += 4;
+    } while (i < 0);
+    if (corr > best_corr) {
+      best_corr = corr;
+      best_off = off;
+    }
+    search_start += st->samples_per_frame;
+  }
+
+  return best_off * st->bytes_per_frame;
+}
+
+static void
+output_overlap_float (GstScaletempo * st, gpointer buf_out, guint bytes_off)
+{
+  gfloat *pout = buf_out;
+  gfloat *pb = st->table_blend;
+  gfloat *po = st->buf_overlap;
+  gfloat *pin = (gfloat *) (st->buf_queue + bytes_off);
+  gint i;
+  for (i = 0; i < st->samples_overlap; i++) {
+    *pout++ = *po - *pb++ * (*po - *pin++);
+    po++;
+  }
+}
+
+static void
+output_overlap_s16 (GstScaletempo * st, gpointer buf_out, guint bytes_off)
+{
+  gint16 *pout = buf_out;
+  gint32 *pb = st->table_blend;
+  gint16 *po = st->buf_overlap;
+  gint16 *pin = (gint16 *) (st->buf_queue + bytes_off);
+  gint i;
+  for (i = 0; i < st->samples_overlap; i++) {
+    *pout++ = *po - ((*pb++ * (*po - *pin++)) >> 16);
+    po++;
+  }
+}
+
+static guint
+fill_queue (GstScaletempo * st, GstBuffer * buf_in, guint offset)
+{
+  guint bytes_in = gst_buffer_get_size (buf_in) - offset;
+  guint offset_unchanged = offset;
+  GstMapInfo map;
+
+  gst_buffer_map (buf_in, &map, GST_MAP_READ);
+  if (st->bytes_to_slide > 0) {
+    if (st->bytes_to_slide < st->bytes_queued) {
+      guint bytes_in_move = st->bytes_queued - st->bytes_to_slide;
+      memmove (st->buf_queue, st->buf_queue + st->bytes_to_slide,
+          bytes_in_move);
+      st->bytes_to_slide = 0;
+      st->bytes_queued = bytes_in_move;
+    } else {
+      guint bytes_in_skip;
+      st->bytes_to_slide -= st->bytes_queued;
+      bytes_in_skip = MIN (st->bytes_to_slide, bytes_in);
+      st->bytes_queued = 0;
+      st->bytes_to_slide -= bytes_in_skip;
+      offset += bytes_in_skip;
+      bytes_in -= bytes_in_skip;
+    }
+  }
+
+  if (bytes_in > 0) {
+    guint bytes_in_copy =
+        MIN (st->bytes_queue_max - st->bytes_queued, bytes_in);
+    memcpy (st->buf_queue + st->bytes_queued, map.data + offset, bytes_in_copy);
+    st->bytes_queued += bytes_in_copy;
+    offset += bytes_in_copy;
+  }
+  gst_buffer_unmap (buf_in, &map);
+
+  return offset - offset_unchanged;
+}
+
+static void
+reinit_buffers (GstScaletempo * st)
+{
+  gint i, j;
+  guint frames_overlap;
+  guint new_size;
+  GstClockTime latency;
+
+  guint frames_stride = st->ms_stride * st->sample_rate / 1000.0;
+  st->bytes_stride = frames_stride * st->bytes_per_frame;
+
+  /* overlap */
+  frames_overlap = frames_stride * st->percent_overlap;
+  if (frames_overlap < 1) {     /* if no overlap */
+    st->bytes_overlap = 0;
+    st->bytes_standing = st->bytes_stride;
+    st->samples_standing = st->bytes_standing / st->bytes_per_sample;
+    st->output_overlap = NULL;
+  } else {
+    guint prev_overlap = st->bytes_overlap;
+    st->bytes_overlap = frames_overlap * st->bytes_per_frame;
+    st->samples_overlap = frames_overlap * st->samples_per_frame;
+    st->bytes_standing = st->bytes_stride - st->bytes_overlap;
+    st->samples_standing = st->bytes_standing / st->bytes_per_sample;
+    st->buf_overlap = g_realloc (st->buf_overlap, st->bytes_overlap);
+    st->table_blend = g_realloc (st->table_blend, st->samples_overlap * 4);     /* sizeof (gint32|gfloat) */
+    if (st->bytes_overlap > prev_overlap) {
+      memset ((guint8 *) st->buf_overlap + prev_overlap, 0,
+          st->bytes_overlap - prev_overlap);
+    }
+    if (st->use_int) {
+      gint32 *pb = st->table_blend;
+      gint64 blend = 0;
+      for (i = 0; i < frames_overlap; i++) {
+        gint32 v = blend / frames_overlap;
+        for (j = 0; j < st->samples_per_frame; j++) {
+          *pb++ = v;
+        }
+        blend += 65535;         /* 2^16 */
+      }
+      st->output_overlap = output_overlap_s16;
+    } else {
+      gfloat *pb = st->table_blend;
+      gfloat t = (gfloat) frames_overlap;
+      for (i = 0; i < frames_overlap; i++) {
+        gfloat v = i / t;
+        for (j = 0; j < st->samples_per_frame; j++) {
+          *pb++ = v;
+        }
+      }
+      st->output_overlap = output_overlap_float;
+    }
+  }
+
+  /* best overlap */
+  st->frames_search =
+      (frames_overlap <= 1) ? 0 : st->ms_search * st->sample_rate / 1000.0;
+  if (st->frames_search < 1) {  /* if no search */
+    st->best_overlap_offset = NULL;
+  } else {
+    guint bytes_pre_corr = (st->samples_overlap - st->samples_per_frame) * 4;   /* sizeof (gint32|gfloat) */
+    st->buf_pre_corr =
+        g_realloc (st->buf_pre_corr, bytes_pre_corr + UNROLL_PADDING);
+    st->table_window = g_realloc (st->table_window, bytes_pre_corr);
+    if (st->use_int) {
+      gint64 t = frames_overlap;
+      gint32 n = 8589934588LL / (t * t);        /* 4 * (2^31 - 1) / t^2 */
+      gint32 *pw;
+
+      memset ((guint8 *) st->buf_pre_corr + bytes_pre_corr, 0, UNROLL_PADDING);
+      pw = st->table_window;
+      for (i = 1; i < frames_overlap; i++) {
+        gint32 v = (i * (t - i) * n) >> 15;
+        for (j = 0; j < st->samples_per_frame; j++) {
+          *pw++ = v;
+        }
+      }
+      st->best_overlap_offset = best_overlap_offset_s16;
+    } else {
+      gfloat *pw = st->table_window;
+      for (i = 1; i < frames_overlap; i++) {
+        gfloat v = i * (frames_overlap - i);
+        for (j = 0; j < st->samples_per_frame; j++) {
+          *pw++ = v;
+        }
+      }
+      st->best_overlap_offset = best_overlap_offset_float;
+    }
+  }
+
+  new_size =
+      (st->frames_search + frames_stride +
+      frames_overlap) * st->bytes_per_frame;
+  if (st->bytes_queued > new_size) {
+    if (st->bytes_to_slide > st->bytes_queued) {
+      st->bytes_to_slide -= st->bytes_queued;
+      st->bytes_queued = 0;
+    } else {
+      guint new_queued = MIN (st->bytes_queued - st->bytes_to_slide, new_size);
+      memmove (st->buf_queue,
+          st->buf_queue + st->bytes_queued - new_queued, new_queued);
+      st->bytes_to_slide = 0;
+      st->bytes_queued = new_queued;
+    }
+  }
+
+  st->bytes_queue_max = new_size;
+  st->buf_queue = g_realloc (st->buf_queue, st->bytes_queue_max);
+
+  latency =
+      gst_util_uint64_scale (st->bytes_queue_max, GST_SECOND,
+      st->bytes_per_frame * st->sample_rate);
+  if (st->latency != latency) {
+    st->latency = latency;
+    gst_element_post_message (GST_ELEMENT (st),
+        gst_message_new_latency (GST_OBJECT (st)));
+  }
+
+  st->bytes_stride_scaled = st->bytes_stride * st->scale;
+  st->frames_stride_scaled = st->bytes_stride_scaled / st->bytes_per_frame;
+
+  GST_DEBUG
+      ("%.3f scale, %.3f stride_in, %i stride_out, %i standing, %i overlap, %i search, %i queue, %s mode",
+      st->scale, st->frames_stride_scaled,
+      (gint) (st->bytes_stride / st->bytes_per_frame),
+      (gint) (st->bytes_standing / st->bytes_per_frame),
+      (gint) (st->bytes_overlap / st->bytes_per_frame), st->frames_search,
+      (gint) (st->bytes_queue_max / st->bytes_per_frame),
+      (st->use_int ? "s16" : "float"));
+
+  st->reinit_buffers = FALSE;
+}
+
+
+/* GstBaseTransform vmethod implementations */
+static GstFlowReturn
+gst_scaletempo_transform (GstBaseTransform * trans,
+    GstBuffer * inbuf, GstBuffer * outbuf)
+{
+  GstScaletempo *st = GST_SCALETEMPO (trans);
+  gint8 *pout;
+  guint offset_in, bytes_out;
+  GstMapInfo omap;
+  GstClockTime timestamp;
+
+  gst_buffer_map (outbuf, &omap, GST_MAP_WRITE);
+  pout = (gint8 *) omap.data;
+  offset_in = fill_queue (st, inbuf, 0);
+  bytes_out = 0;
+  while (st->bytes_queued >= st->bytes_queue_max) {
+    guint bytes_off = 0;
+    gdouble frames_to_slide;
+    guint frames_to_stride_whole;
+
+    /* output stride */
+    if (st->output_overlap) {
+      if (st->best_overlap_offset) {
+        bytes_off = st->best_overlap_offset (st);
+      }
+      st->output_overlap (st, pout, bytes_off);
+    }
+    memcpy (pout + st->bytes_overlap,
+        st->buf_queue + bytes_off + st->bytes_overlap, st->bytes_standing);
+    pout += st->bytes_stride;
+    bytes_out += st->bytes_stride;
+
+    /* input stride */
+    memcpy (st->buf_overlap,
+        st->buf_queue + bytes_off + st->bytes_stride, st->bytes_overlap);
+    frames_to_slide = st->frames_stride_scaled + st->frames_stride_error;
+    frames_to_stride_whole = (gint) frames_to_slide;
+    st->bytes_to_slide = frames_to_stride_whole * st->bytes_per_frame;
+    st->frames_stride_error = frames_to_slide - frames_to_stride_whole;
+
+    offset_in += fill_queue (st, inbuf, offset_in);
+  }
+
+  gst_buffer_unmap (outbuf, &omap);
+
+  timestamp = GST_BUFFER_TIMESTAMP (inbuf) - st->segment_start;
+  if (timestamp < st->latency)
+    timestamp = 0;
+  else
+    timestamp -= st->latency;
+  GST_BUFFER_TIMESTAMP (outbuf) = timestamp / st->scale + st->segment_start;
+  GST_BUFFER_DURATION (outbuf) =
+      gst_util_uint64_scale (bytes_out, GST_SECOND,
+      st->bytes_per_frame * st->sample_rate);
+  gst_buffer_set_size (outbuf, bytes_out);
+
+  return GST_FLOW_OK;
+}
+
+static gboolean
+gst_scaletempo_transform_size (GstBaseTransform * trans,
+    GstPadDirection direction,
+    GstCaps * caps, gsize size, GstCaps * othercaps, gsize * othersize)
+{
+  if (direction == GST_PAD_SINK) {
+    GstScaletempo *scaletempo = GST_SCALETEMPO (trans);
+    gint bytes_to_out;
+
+    if (scaletempo->reinit_buffers)
+      reinit_buffers (scaletempo);
+
+    bytes_to_out = size + scaletempo->bytes_queued - scaletempo->bytes_to_slide;
+    if (bytes_to_out < (gint) scaletempo->bytes_queue_max) {
+      *othersize = 0;
+    } else {
+      /* while (total_buffered - stride_length * n >= queue_max) n++ */
+      *othersize = scaletempo->bytes_stride * ((guint) (
+              (bytes_to_out - scaletempo->bytes_queue_max +
+                  /* rounding protection */ scaletempo->bytes_per_frame)
+              / scaletempo->bytes_stride_scaled) + 1);
+    }
+
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static gboolean
+gst_scaletempo_sink_event (GstBaseTransform * trans, GstEvent * event)
+{
+  if (GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT) {
+    GstScaletempo *scaletempo = GST_SCALETEMPO (trans);
+    GstSegment segment;
+
+    gst_event_copy_segment (event, &segment);
+
+    if (scaletempo->scale != segment.rate) {
+      if (ABS (segment.rate - 1.0) < 1e-10) {
+        scaletempo->scale = 1.0;
+        gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (scaletempo),
+            TRUE);
+      } else {
+        gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (scaletempo),
+            FALSE);
+        scaletempo->scale = segment.rate;
+        scaletempo->bytes_stride_scaled =
+            scaletempo->bytes_stride * scaletempo->scale;
+        scaletempo->frames_stride_scaled =
+            scaletempo->bytes_stride_scaled / scaletempo->bytes_per_frame;
+        GST_DEBUG ("%.3f scale, %.3f stride_in, %i stride_out",
+            scaletempo->scale, scaletempo->frames_stride_scaled,
+            (gint) (scaletempo->bytes_stride / scaletempo->bytes_per_frame));
+
+        scaletempo->bytes_to_slide = 0;
+      }
+    }
+
+    if (scaletempo->scale != 1.0) {
+      scaletempo->segment_start = segment.start;
+      segment.applied_rate = scaletempo->scale;
+      segment.rate = 1.0;
+      gst_event_unref (event);
+
+      if (segment.stop != -1) {
+        segment.stop = (segment.stop - segment.start) / segment.applied_rate +
+            segment.start;
+      }
+
+      event = gst_event_new_segment (&segment);
+      gst_pad_push_event (GST_BASE_TRANSFORM_SRC_PAD (trans), event);
+      return TRUE;
+    }
+  }
+  return GST_BASE_TRANSFORM_CLASS (parent_class)->sink_event (trans, event);
+}
+
+static gboolean
+gst_scaletempo_set_caps (GstBaseTransform * trans,
+    GstCaps * incaps, GstCaps * outcaps)
+{
+  GstScaletempo *scaletempo = GST_SCALETEMPO (trans);
+
+  gint width, bps, nch, rate;
+  gboolean use_int;
+  GstAudioInfo info;
+
+  if (!gst_audio_info_from_caps (&info, incaps))
+    return FALSE;
+
+  nch = GST_AUDIO_INFO_CHANNELS (&info);
+  rate = GST_AUDIO_INFO_RATE (&info);
+  width = GST_AUDIO_INFO_WIDTH (&info);
+  use_int = GST_AUDIO_INFO_IS_INTEGER (&info);
+
+  bps = width / 8;
+
+  GST_DEBUG ("caps: %" GST_PTR_FORMAT ", %d bps", incaps, bps);
+
+  if (rate != scaletempo->sample_rate
+      || nch != scaletempo->samples_per_frame
+      || bps != scaletempo->bytes_per_sample
+      || use_int != scaletempo->use_int) {
+    scaletempo->sample_rate = rate;
+    scaletempo->samples_per_frame = nch;
+    scaletempo->bytes_per_sample = bps;
+    scaletempo->bytes_per_frame = nch * bps;
+    scaletempo->use_int = use_int;
+    scaletempo->reinit_buffers = TRUE;
+  }
+
+  return TRUE;
+}
+
+static gboolean
+gst_scaletempo_query (GstBaseTransform * trans, GstPadDirection direction,
+    GstQuery * query)
+{
+  GstScaletempo *scaletempo = GST_SCALETEMPO (trans);
+
+  if (direction == GST_PAD_SRC) {
+    switch (GST_QUERY_TYPE (query)) {
+      case GST_QUERY_LATENCY:{
+        GstPad *peer;
+        gboolean res;
+
+        if ((peer = gst_pad_get_peer (GST_BASE_TRANSFORM_SINK_PAD (trans)))) {
+          if ((res = gst_pad_query (peer, query))) {
+            GstClockTime min, max;
+            gboolean live;
+
+            gst_query_parse_latency (query, &live, &min, &max);
+
+            GST_DEBUG_OBJECT (scaletempo, "Peer latency: min %"
+                GST_TIME_FORMAT " max %" GST_TIME_FORMAT,
+                GST_TIME_ARGS (min), GST_TIME_ARGS (max));
+
+            /* add our own latency */
+            GST_DEBUG_OBJECT (scaletempo, "Our latency: %" GST_TIME_FORMAT,
+                GST_TIME_ARGS (scaletempo->latency));
+            min += scaletempo->latency;
+            if (max != GST_CLOCK_TIME_NONE)
+              max += scaletempo->latency;
+
+            GST_DEBUG_OBJECT (scaletempo, "Calculated total latency : min %"
+                GST_TIME_FORMAT " max %" GST_TIME_FORMAT,
+                GST_TIME_ARGS (min), GST_TIME_ARGS (max));
+            gst_query_set_latency (query, live, min, max);
+          }
+          gst_object_unref (peer);
+        }
+
+        return TRUE;
+        break;
+      }
+      default:{
+        return GST_BASE_TRANSFORM_CLASS (parent_class)->query (trans, direction,
+            query);
+        break;
+      }
+    }
+  } else {
+    return GST_BASE_TRANSFORM_CLASS (parent_class)->query (trans, direction,
+        query);
+  }
+}
+
+/* GObject vmethod implementations */
+static void
+gst_scaletempo_get_property (GObject * object,
+    guint prop_id, GValue * value, GParamSpec * pspec)
+{
+  GstScaletempo *scaletempo = GST_SCALETEMPO (object);
+
+  switch (prop_id) {
+    case PROP_RATE:
+      g_value_set_double (value, scaletempo->scale);
+      break;
+    case PROP_STRIDE:
+      g_value_set_uint (value, scaletempo->ms_stride);
+      break;
+    case PROP_OVERLAP:
+      g_value_set_double (value, scaletempo->percent_overlap);
+      break;
+    case PROP_SEARCH:
+      g_value_set_uint (value, scaletempo->ms_search);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_scaletempo_set_property (GObject * object,
+    guint prop_id, const GValue * value, GParamSpec * pspec)
+{
+  GstScaletempo *scaletempo = GST_SCALETEMPO (object);
+
+  switch (prop_id) {
+    case PROP_STRIDE:{
+      guint new_value = g_value_get_uint (value);
+      if (scaletempo->ms_stride != new_value) {
+        scaletempo->ms_stride = new_value;
+        scaletempo->reinit_buffers = TRUE;
+      }
+      break;
+    }
+    case PROP_OVERLAP:{
+      gdouble new_value = g_value_get_double (value);
+      if (scaletempo->percent_overlap != new_value) {
+        scaletempo->percent_overlap = new_value;
+        scaletempo->reinit_buffers = TRUE;
+      }
+      break;
+    }
+    case PROP_SEARCH:{
+      guint new_value = g_value_get_uint (value);
+      if (scaletempo->ms_search != new_value) {
+        scaletempo->ms_search = new_value;
+        scaletempo->reinit_buffers = TRUE;
+      }
+      break;
+    }
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_scaletempo_class_init (GstScaletempoClass * klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
+  GstBaseTransformClass *basetransform_class = GST_BASE_TRANSFORM_CLASS (klass);
+
+  gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_scaletempo_get_property);
+  gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_scaletempo_set_property);
+
+  g_object_class_install_property (gobject_class, PROP_RATE,
+      g_param_spec_double ("rate", "Playback Rate", "Current playback rate",
+          G_MININT, G_MAXINT, 1.0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_STRIDE,
+      g_param_spec_uint ("stride", "Stride Length",
+          "Length in milliseconds to output each stride", 1, 5000, 30,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_OVERLAP,
+      g_param_spec_double ("overlap", "Overlap Length",
+          "Percentage of stride to overlap", 0, 1, .2,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_SEARCH,
+      g_param_spec_uint ("search", "Search Length",
+          "Length in milliseconds to search for best overlap position", 0, 500,
+          14, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&sink_template));
+  gst_element_class_set_static_metadata (gstelement_class, "Scaletempo",
+      "Filter/Effect/Rate",
+      "Sync audio tempo with playback rate",
+      "Rov Juvano <rovjuvano@users.sourceforge.net>");
+
+  basetransform_class->sink_event =
+      GST_DEBUG_FUNCPTR (gst_scaletempo_sink_event);
+  basetransform_class->set_caps = GST_DEBUG_FUNCPTR (gst_scaletempo_set_caps);
+  basetransform_class->transform_size =
+      GST_DEBUG_FUNCPTR (gst_scaletempo_transform_size);
+  basetransform_class->transform = GST_DEBUG_FUNCPTR (gst_scaletempo_transform);
+  basetransform_class->query = GST_DEBUG_FUNCPTR (gst_scaletempo_query);
+}
+
+static void
+gst_scaletempo_init (GstScaletempo * scaletempo)
+{
+  /* defaults */
+  scaletempo->ms_stride = 30;
+  scaletempo->percent_overlap = .2;
+  scaletempo->ms_search = 14;
+
+  /* uninitialized */
+  scaletempo->scale = 0;
+  scaletempo->sample_rate = 0;
+  scaletempo->frames_stride_error = 0;
+  scaletempo->bytes_stride = 0;
+  scaletempo->bytes_queued = 0;
+  scaletempo->bytes_to_slide = 0;
+  scaletempo->segment_start = 0;
+}
diff --git a/gst/audiofx/gstscaletempo.h b/gst/audiofx/gstscaletempo.h
new file mode 100644
index 000000000..9be151091
--- /dev/null
+++ b/gst/audiofx/gstscaletempo.h
@@ -0,0 +1,98 @@
+/*
+ * GStreamer
+ * Copyright (C) 2008 Rov Juvano <rovjuvano@users.sourceforge.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_SCALETEMPO_H__
+#define __GST_SCALETEMPO_H__
+
+#include <gst/gst.h>
+#include <gst/base/gstbasetransform.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_SCALETEMPO            (gst_scaletempo_get_type())
+#define GST_SCALETEMPO(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_SCALETEMPO, GstScaletempo))
+#define GST_SCALETEMPO_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),  GST_TYPE_SCALETEMPO, GstScaletempoClass))
+#define GST_IS_SCALETEMPO(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_SCALETEMPO))
+#define GST_IS_SCALETEMPO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),  GST_TYPE_SCALETEMPO))
+
+typedef struct _GstScaletempo GstScaletempo;
+typedef struct _GstScaletempoClass GstScaletempoClass;
+typedef struct _GstScaletempoPrivate GstScaletempoPrivate;
+
+struct _GstScaletempo
+{
+  GstBaseTransform element;
+
+  gdouble scale;
+
+  /* parameters */
+  guint ms_stride;
+  gdouble percent_overlap;
+  guint ms_search;
+
+  /* caps */
+  gboolean use_int;
+  guint samples_per_frame;      /* AKA number of channels */
+  guint bytes_per_sample;
+  guint bytes_per_frame;
+  guint sample_rate;
+
+  /* stride */
+  gdouble frames_stride_scaled;
+  gdouble frames_stride_error;
+  guint bytes_stride;
+  gdouble bytes_stride_scaled;
+  guint bytes_queue_max;
+  guint bytes_queued;
+  guint bytes_to_slide;
+  gint8 *buf_queue;
+
+  /* overlap */
+  guint samples_overlap;
+  guint samples_standing;
+  guint bytes_overlap;
+  guint bytes_standing;
+  gpointer buf_overlap;
+  gpointer table_blend;
+  void (*output_overlap) (GstScaletempo * scaletempo, gpointer out_buf, guint bytes_off);
+
+  /* best overlap */
+  guint frames_search;
+  gpointer buf_pre_corr;
+  gpointer table_window;
+  guint (*best_overlap_offset) (GstScaletempo * scaletempo);
+
+  /* gstreamer */
+  gint64 segment_start;
+  GstClockTime latency;
+
+  /* threads */
+  gboolean reinit_buffers;
+};
+
+struct _GstScaletempoClass
+{
+  GstBaseTransformClass parent_class;
+};
+
+GType gst_scaletempo_get_type (void);
+
+G_END_DECLS
+#endif /* __GST_SCALETEMPO_H__ */
diff --git a/gst/audiofx/math_compat.h b/gst/audiofx/math_compat.h
index 87296981e..da2370c14 100644
--- a/gst/audiofx/math_compat.h
+++ b/gst/audiofx/math_compat.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __MATH_COMPAT_H__
diff --git a/gst/audioparsers/Makefile.am b/gst/audioparsers/Makefile.am
index 3533314fc..1263c937f 100644
--- a/gst/audioparsers/Makefile.am
+++ b/gst/audioparsers/Makefile.am
@@ -3,7 +3,7 @@ plugin_LTLIBRARIES = libgstaudioparsers.la
 libgstaudioparsers_la_SOURCES = \
 	gstaacparse.c gstamrparse.c gstac3parse.c \
 	gstdcaparse.c gstflacparse.c gstmpegaudioparse.c \
-	gstwavpackparse.c plugin.c
+	gstsbcparse.c gstwavpackparse.c plugin.c
 
 libgstaudioparsers_la_CFLAGS = \
 	$(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
@@ -15,4 +15,5 @@ libgstaudioparsers_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstaudioparsers_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = gstaacparse.h gstamrparse.h gstac3parse.h \
-	gstdcaparse.h gstflacparse.h gstmpegaudioparse.h gstwavpackparse.h
+	gstdcaparse.h gstflacparse.h gstmpegaudioparse.h gstsbcparse.h \
+	gstwavpackparse.h
diff --git a/gst/audioparsers/Makefile.in b/gst/audioparsers/Makefile.in
index 6f3c49838..607f980a3 100644
--- a/gst/audioparsers/Makefile.in
+++ b/gst/audioparsers/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/audioparsers
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -137,16 +163,30 @@ am_libgstaudioparsers_la_OBJECTS =  \
 	libgstaudioparsers_la-gstdcaparse.lo \
 	libgstaudioparsers_la-gstflacparse.lo \
 	libgstaudioparsers_la-gstmpegaudioparse.lo \
+	libgstaudioparsers_la-gstsbcparse.lo \
 	libgstaudioparsers_la-gstwavpackparse.lo \
 	libgstaudioparsers_la-plugin.lo
 libgstaudioparsers_la_OBJECTS = $(am_libgstaudioparsers_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstaudioparsers_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) \
 	$(libgstaudioparsers_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -159,20 +199,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstaudioparsers_la_SOURCES)
 DIST_SOURCES = $(libgstaudioparsers_la_SOURCES)
 am__can_run_installinfo = \
@@ -181,6 +217,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -349,6 +402,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -513,7 +567,7 @@ plugin_LTLIBRARIES = libgstaudioparsers.la
 libgstaudioparsers_la_SOURCES = \
 	gstaacparse.c gstamrparse.c gstac3parse.c \
 	gstdcaparse.c gstflacparse.c gstmpegaudioparse.c \
-	gstwavpackparse.c plugin.c
+	gstsbcparse.c gstwavpackparse.c plugin.c
 
 libgstaudioparsers_la_CFLAGS = \
 	$(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
@@ -526,7 +580,8 @@ libgstaudioparsers_la_LIBADD = \
 libgstaudioparsers_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstaudioparsers_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstaacparse.h gstamrparse.h gstac3parse.h \
-	gstdcaparse.h gstflacparse.h gstmpegaudioparse.h gstwavpackparse.h
+	gstdcaparse.h gstflacparse.h gstmpegaudioparse.h gstsbcparse.h \
+	gstwavpackparse.h
 
 all: all-am
 
@@ -562,6 +617,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -588,12 +644,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstaudioparsers.la: $(libgstaudioparsers_la_OBJECTS) $(libgstaudioparsers_la_DEPENDENCIES) $(EXTRA_libgstaudioparsers_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstaudioparsers_la_LINK) -rpath $(plugindir) $(libgstaudioparsers_la_OBJECTS) $(libgstaudioparsers_la_LIBADD) $(LIBS)
 
@@ -609,6 +668,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioparsers_la-gstdcaparse.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioparsers_la-gstflacparse.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioparsers_la-gstmpegaudioparse.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioparsers_la-gstsbcparse.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioparsers_la-gstwavpackparse.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioparsers_la-plugin.Plo@am__quote@
 
@@ -675,6 +735,13 @@ libgstaudioparsers_la-gstmpegaudioparse.lo: gstmpegaudioparse.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstmpegaudioparse.lo `test -f 'gstmpegaudioparse.c' || echo '$(srcdir)/'`gstmpegaudioparse.c
 
+libgstaudioparsers_la-gstsbcparse.lo: gstsbcparse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -MT libgstaudioparsers_la-gstsbcparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstsbcparse.Tpo -c -o libgstaudioparsers_la-gstsbcparse.lo `test -f 'gstsbcparse.c' || echo '$(srcdir)/'`gstsbcparse.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioparsers_la-gstsbcparse.Tpo $(DEPDIR)/libgstaudioparsers_la-gstsbcparse.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsbcparse.c' object='libgstaudioparsers_la-gstsbcparse.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 $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstsbcparse.lo `test -f 'gstsbcparse.c' || echo '$(srcdir)/'`gstsbcparse.c
+
 libgstaudioparsers_la-gstwavpackparse.lo: gstwavpackparse.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -MT libgstaudioparsers_la-gstwavpackparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstwavpackparse.Tpo -c -o libgstaudioparsers_la-gstwavpackparse.lo `test -f 'gstwavpackparse.c' || echo '$(srcdir)/'`gstwavpackparse.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioparsers_la-gstwavpackparse.Tpo $(DEPDIR)/libgstaudioparsers_la-gstwavpackparse.Plo
@@ -695,26 +762,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -726,15 +782,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -743,6 +795,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -887,19 +954,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/gst/audioparsers/gstaacparse.c b/gst/audioparsers/gstaacparse.c
index 1a7a59388..8f63b116e 100644
--- a/gst/audioparsers/gstaacparse.c
+++ b/gst/audioparsers/gstaacparse.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/audioparsers/gstaacparse.h b/gst/audioparsers/gstaacparse.h
index 11f75e683..8eca9aa41 100644
--- a/gst/audioparsers/gstaacparse.h
+++ b/gst/audioparsers/gstaacparse.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AAC_PARSE_H__
diff --git a/gst/audioparsers/gstac3parse.c b/gst/audioparsers/gstac3parse.c
index c0c7b5cdc..23b017f69 100644
--- a/gst/audioparsers/gstac3parse.c
+++ b/gst/audioparsers/gstac3parse.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-ac3parse
@@ -35,7 +35,7 @@
  */
 
 /* TODO:
- *  - add support for audio/x-private1-ac3 as well
+ *  - audio/ac3 to audio/x-private1-ac3 is not implemented (done in the muxer)
  *  - should accept framed and unframed input (needs decodebin fixes first)
  */
 
@@ -153,7 +153,8 @@ static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
 static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("audio/x-ac3; " "audio/x-eac3; " "audio/ac3"));
+    GST_STATIC_CAPS ("audio/x-ac3; " "audio/x-eac3; " "audio/ac3; "
+        "audio/x-private1-ac3"));
 
 static void gst_ac3_parse_finalize (GObject * object);
 
@@ -165,6 +166,8 @@ static gboolean gst_ac3_parse_src_event (GstBaseParse * parse,
     GstEvent * event);
 static GstCaps *gst_ac3_parse_get_sink_caps (GstBaseParse * parse,
     GstCaps * filter);
+static gboolean gst_ac3_parse_set_sink_caps (GstBaseParse * parse,
+    GstCaps * caps);
 
 #define gst_ac3_parse_parent_class parent_class
 G_DEFINE_TYPE (GstAc3Parse, gst_ac3_parse, GST_TYPE_BASE_PARSE);
@@ -195,6 +198,7 @@ gst_ac3_parse_class_init (GstAc3ParseClass * klass)
   parse_class->handle_frame = GST_DEBUG_FUNCPTR (gst_ac3_parse_handle_frame);
   parse_class->src_event = GST_DEBUG_FUNCPTR (gst_ac3_parse_src_event);
   parse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_ac3_parse_get_sink_caps);
+  parse_class->set_sink_caps = GST_DEBUG_FUNCPTR (gst_ac3_parse_set_sink_caps);
 }
 
 static void
@@ -212,6 +216,8 @@ gst_ac3_parse_init (GstAc3Parse * ac3parse)
 {
   gst_base_parse_set_min_frame_size (GST_BASE_PARSE (ac3parse), 6);
   gst_ac3_parse_reset (ac3parse);
+  ac3parse->baseparse_chainfunc =
+      GST_BASE_PARSE_SINK_PAD (GST_BASE_PARSE (ac3parse))->chainfunc;
 }
 
 static void
@@ -660,6 +666,50 @@ cleanup:
   return res;
 }
 
+
+/*
+ * MPEG-PS private1 streams add a 2 bytes "Audio Substream Headers" for each
+ * buffer (not each frame) with the offset of the next frame's start.
+ *
+ * Buffer 1:
+ * -------------------------------------------
+ * |firstAccUnit|AC3SyncWord|xxxxxxxxxxxxxxxxx
+ * -------------------------------------------
+ * Buffer 2:
+ * -------------------------------------------
+ * |firstAccUnit|xxxxxx|AC3SyncWord|xxxxxxxxxx
+ * -------------------------------------------
+ *
+ * These 2 bytes can be dropped safely as they do not include any timing
+ * information, only the offset to the start of the next frame.
+ *
+ * From http://stnsoft.com/DVD/ass-hdr.html:
+ * "FirstAccUnit offset to frame which corresponds to PTS value offset 0 is the
+ * last byte of FirstAccUnit, ie add the offset of byte 2 to get the AU's offset
+ * The value 0000 indicates there is no first access unit"
+ * */
+
+static GstFlowReturn
+gst_ac3_parse_chain_priv (GstPad * pad, GstObject * parent, GstBuffer * buffer)
+{
+  GstAc3Parse *ac3parse = GST_AC3_PARSE (parent);
+  GstFlowReturn ret;
+  GstBuffer *newbuf;
+  gsize size;
+
+  size = gst_buffer_get_size (buffer);
+  if (size >= 2) {
+    newbuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 2, size - 2);
+    gst_buffer_unref (buffer);
+    ret = ac3parse->baseparse_chainfunc (pad, parent, newbuf);
+  } else {
+    gst_buffer_unref (buffer);
+    ret = GST_FLOW_OK;
+  }
+
+  return ret;
+}
+
 static gboolean
 gst_ac3_parse_src_event (GstBaseParse * parse, GstEvent * event)
 {
@@ -737,3 +787,18 @@ gst_ac3_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter)
 
   return res;
 }
+
+static gboolean
+gst_ac3_parse_set_sink_caps (GstBaseParse * parse, GstCaps * caps)
+{
+  GstStructure *s;
+  GstAc3Parse *ac3parse = GST_AC3_PARSE (parse);
+
+  s = gst_caps_get_structure (caps, 0);
+  if (gst_structure_has_name (s, "audio/x-private1-ac3")) {
+    gst_pad_set_chain_function (parse->sinkpad, gst_ac3_parse_chain_priv);
+  } else {
+    gst_pad_set_chain_function (parse->sinkpad, ac3parse->baseparse_chainfunc);
+  }
+  return TRUE;
+}
diff --git a/gst/audioparsers/gstac3parse.h b/gst/audioparsers/gstac3parse.h
index 545419f14..0800dca3c 100644
--- a/gst/audioparsers/gstac3parse.h
+++ b/gst/audioparsers/gstac3parse.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AC3_PARSE_H__
@@ -57,11 +57,12 @@ struct _GstAc3Parse {
   GstBaseParse baseparse;
 
   /*< private >*/
-  gint          sample_rate;
-  gint          channels;
-  gint          blocks;
-  gboolean      eac;
-  volatile gint align;
+  gint                  sample_rate;
+  gint                  channels;
+  gint                  blocks;
+  gboolean              eac;
+  volatile gint         align;
+  GstPadChainFunction   baseparse_chainfunc;
 };
 
 /**
diff --git a/gst/audioparsers/gstamrparse.c b/gst/audioparsers/gstamrparse.c
index 7d4ff8524..1a321528d 100644
--- a/gst/audioparsers/gstamrparse.c
+++ b/gst/audioparsers/gstamrparse.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/audioparsers/gstamrparse.h b/gst/audioparsers/gstamrparse.h
index 86a26e026..7898b7158 100644
--- a/gst/audioparsers/gstamrparse.h
+++ b/gst/audioparsers/gstamrparse.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AMR_PARSE_H__
diff --git a/gst/audioparsers/gstdcaparse.c b/gst/audioparsers/gstdcaparse.c
index 3c1f61eb5..6df74ea62 100644
--- a/gst/audioparsers/gstdcaparse.c
+++ b/gst/audioparsers/gstdcaparse.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -68,7 +68,7 @@ static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
 static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("audio/x-dts"));
+    GST_STATIC_CAPS ("audio/x-dts; " "audio/x-private1-dts"));
 
 static void gst_dca_parse_finalize (GObject * object);
 
@@ -78,6 +78,8 @@ static GstFlowReturn gst_dca_parse_handle_frame (GstBaseParse * parse,
     GstBaseParseFrame * frame, gint * skipsize);
 static GstCaps *gst_dca_parse_get_sink_caps (GstBaseParse * parse,
     GstCaps * filter);
+static gboolean gst_dca_parse_set_sink_caps (GstBaseParse * parse,
+    GstCaps * caps);
 
 #define gst_dca_parse_parent_class parent_class
 G_DEFINE_TYPE (GstDcaParse, gst_dca_parse, GST_TYPE_BASE_PARSE);
@@ -98,6 +100,7 @@ gst_dca_parse_class_init (GstDcaParseClass * klass)
   parse_class->stop = GST_DEBUG_FUNCPTR (gst_dca_parse_stop);
   parse_class->handle_frame = GST_DEBUG_FUNCPTR (gst_dca_parse_handle_frame);
   parse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_dca_parse_get_sink_caps);
+  parse_class->set_sink_caps = GST_DEBUG_FUNCPTR (gst_dca_parse_set_sink_caps);
 
   gst_element_class_add_pad_template (element_class,
       gst_static_pad_template_get (&sink_template));
@@ -127,6 +130,8 @@ gst_dca_parse_init (GstDcaParse * dcaparse)
   gst_base_parse_set_min_frame_size (GST_BASE_PARSE (dcaparse),
       DCA_MIN_FRAMESIZE);
   gst_dca_parse_reset (dcaparse);
+  dcaparse->baseparse_chainfunc =
+      GST_BASE_PARSE_SINK_PAD (GST_BASE_PARSE (dcaparse))->chainfunc;
 }
 
 static void
@@ -440,6 +445,35 @@ cleanup:
   return ret;
 }
 
+/*
+ * MPEG-PS private1 streams add a 2 bytes "Audio Substream Headers" for each
+ * buffer (not each frame) with the offset of the next frame's start.
+ * These 2 bytes can be dropped safely as they do not include any timing
+ * information, only the offset to the start of the next frame.
+ * See gstac3parse.c for a more detailed description.
+ * */
+
+static GstFlowReturn
+gst_dca_parse_chain_priv (GstPad * pad, GstObject * parent, GstBuffer * buffer)
+{
+  GstDcaParse *dcaparse = GST_DCA_PARSE (parent);
+  GstFlowReturn ret;
+  GstBuffer *newbuf;
+  gsize size;
+
+  size = gst_buffer_get_size (buffer);
+  if (size >= 2) {
+    newbuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 2, size - 2);
+    gst_buffer_unref (buffer);
+    ret = dcaparse->baseparse_chainfunc (pad, parent, newbuf);
+  } else {
+    gst_buffer_unref (buffer);
+    ret = GST_FLOW_OK;
+  }
+
+  return ret;
+}
+
 static GstCaps *
 gst_dca_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter)
 {
@@ -485,3 +519,18 @@ gst_dca_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter)
 
   return res;
 }
+
+static gboolean
+gst_dca_parse_set_sink_caps (GstBaseParse * parse, GstCaps * caps)
+{
+  GstStructure *s;
+  GstDcaParse *dcaparse = GST_DCA_PARSE (parse);
+
+  s = gst_caps_get_structure (caps, 0);
+  if (gst_structure_has_name (s, "audio/x-private1-dts")) {
+    gst_pad_set_chain_function (parse->sinkpad, gst_dca_parse_chain_priv);
+  } else {
+    gst_pad_set_chain_function (parse->sinkpad, dcaparse->baseparse_chainfunc);
+  }
+  return TRUE;
+}
diff --git a/gst/audioparsers/gstdcaparse.h b/gst/audioparsers/gstdcaparse.h
index b3e066bd0..b1ac76dfa 100644
--- a/gst/audioparsers/gstdcaparse.h
+++ b/gst/audioparsers/gstdcaparse.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_DCA_PARSE_H__
@@ -51,14 +51,16 @@ struct _GstDcaParse {
   GstBaseParse baseparse;
 
   /*< private >*/
-  gint         rate;
-  gint         channels;
-  gint         depth;
-  gint         endianness;
-  gint         block_size;
-  gint         frame_size;
+  gint                  rate;
+  gint                  channels;
+  gint                  depth;
+  gint                  endianness;
+  gint                  block_size;
+  gint                  frame_size;
 
-  guint32      last_sync;
+  guint32               last_sync;
+
+  GstPadChainFunction   baseparse_chainfunc;
 };
 
 /**
diff --git a/gst/audioparsers/gstflacparse.c b/gst/audioparsers/gstflacparse.c
index 043c9a7b2..ddc686e39 100644
--- a/gst/audioparsers/gstflacparse.c
+++ b/gst/audioparsers/gstflacparse.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -204,6 +204,8 @@ static GstFlowReturn gst_flac_parse_pre_push_frame (GstBaseParse * parse,
 static gboolean gst_flac_parse_convert (GstBaseParse * parse,
     GstFormat src_format, gint64 src_value, GstFormat dest_format,
     gint64 * dest_value);
+static gboolean gst_flac_parse_src_event (GstBaseParse * parse,
+    GstEvent * event);
 static GstCaps *gst_flac_parse_get_sink_caps (GstBaseParse * parse,
     GstCaps * filter);
 
@@ -237,6 +239,7 @@ gst_flac_parse_class_init (GstFlacParseClass * klass)
   baseparse_class->pre_push_frame =
       GST_DEBUG_FUNCPTR (gst_flac_parse_pre_push_frame);
   baseparse_class->convert = GST_DEBUG_FUNCPTR (gst_flac_parse_convert);
+  baseparse_class->src_event = GST_DEBUG_FUNCPTR (gst_flac_parse_src_event);
   baseparse_class->get_sink_caps =
       GST_DEBUG_FUNCPTR (gst_flac_parse_get_sink_caps);
 
@@ -753,7 +756,7 @@ gst_flac_parse_handle_frame (GstBaseParse * parse,
   GstMapInfo map;
   gboolean result = TRUE;
   GstFlowReturn ret = GST_FLOW_OK;
-  guint framesize;
+  guint framesize = 0;
 
   gst_buffer_map (buffer, &map, GST_MAP_READ);
 
@@ -1694,7 +1697,6 @@ gst_flac_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
   if (flacparse->toc) {
     gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (flacparse),
         gst_event_new_toc (flacparse->toc, FALSE));
-    flacparse->toc = NULL;
   }
 
   frame->flags |= GST_BASE_PARSE_FRAME_FLAG_CLIP;
@@ -1734,6 +1736,61 @@ gst_flac_parse_convert (GstBaseParse * parse,
       src_value, dest_format, dest_value);
 }
 
+static gboolean
+gst_flac_parse_src_event (GstBaseParse * parse, GstEvent * event)
+{
+  GstFlacParse *flacparse = GST_FLAC_PARSE (parse);
+  gboolean res = FALSE;
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_TOC_SELECT:
+    {
+      GstTocEntry *entry = NULL;
+      GstEvent *seek_event;
+      GstToc *toc = NULL;
+      gint64 start_pos;
+      gchar *uid = NULL;
+
+      /* FIXME: some locking would be good */
+      if (flacparse->toc)
+        toc = gst_toc_ref (flacparse->toc);
+
+      if (toc != NULL) {
+        gst_event_parse_toc_select (event, &uid);
+        if (uid != NULL) {
+          entry = gst_toc_find_entry (toc, uid);
+          if (entry != NULL) {
+            gst_toc_entry_get_start_stop_times (entry, &start_pos, NULL);
+
+            /* FIXME: use segment rate here instead? */
+            seek_event = gst_event_new_seek (1.0,
+                GST_FORMAT_TIME,
+                GST_SEEK_FLAG_FLUSH,
+                GST_SEEK_TYPE_SET, start_pos, GST_SEEK_TYPE_NONE, -1);
+
+            res =
+                GST_BASE_PARSE_CLASS (parent_class)->src_event (parse,
+                seek_event);
+
+            g_free (uid);
+          } else {
+            GST_WARNING_OBJECT (parse, "no TOC entry with given UID: %s", uid);
+          }
+        }
+        gst_toc_unref (toc);
+      } else {
+        GST_DEBUG_OBJECT (flacparse, "no TOC to select");
+      }
+      gst_event_unref (event);
+      break;
+    }
+    default:
+      res = GST_BASE_PARSE_CLASS (parent_class)->src_event (parse, event);
+      break;
+  }
+  return res;
+}
+
 static GstCaps *
 gst_flac_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter)
 {
diff --git a/gst/audioparsers/gstflacparse.h b/gst/audioparsers/gstflacparse.h
index bba021279..5113abc3c 100644
--- a/gst/audioparsers/gstflacparse.h
+++ b/gst/audioparsers/gstflacparse.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_FLAC_PARSE_H__
diff --git a/gst/audioparsers/gstmpegaudioparse.c b/gst/audioparsers/gstmpegaudioparse.c
index b14d2e6a3..aaa934943 100644
--- a/gst/audioparsers/gstmpegaudioparse.c
+++ b/gst/audioparsers/gstmpegaudioparse.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-mpegaudioparse
diff --git a/gst/audioparsers/gstmpegaudioparse.h b/gst/audioparsers/gstmpegaudioparse.h
index 6b4267355..5e576beae 100644
--- a/gst/audioparsers/gstmpegaudioparse.h
+++ b/gst/audioparsers/gstmpegaudioparse.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_MPEG_AUDIO_PARSE_H__
diff --git a/gst/audioparsers/gstsbcparse.c b/gst/audioparsers/gstsbcparse.c
new file mode 100644
index 000000000..5df456ae6
--- /dev/null
+++ b/gst/audioparsers/gstsbcparse.c
@@ -0,0 +1,487 @@
+/* GStreamer SBC audio parser
+ * Copyright (C) 2012 Collabora Ltd. <tim.muller@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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+/**
+ * SECTION:element-sbcparse
+ * @see_also: sbcdec, sbcenc
+ *
+ * The sbcparse element will parse a bluetooth SBC audio stream into
+ * frames and timestamp them properly.
+ *
+ * Since: 1.2.0
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gstsbcparse.h"
+
+#include <string.h>
+#include <gst/tag/tag.h>
+#include <gst/audio/audio.h>
+
+#include <gst/base/gstbitreader.h>
+#include <gst/base/gstbytereader.h>
+
+#define SBC_SYNCBYTE 0x9C
+
+GST_DEBUG_CATEGORY_STATIC (sbcparse_debug);
+#define GST_CAT_DEFAULT sbcparse_debug
+
+static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-sbc, parsed = (boolean) true, "
+        "channels = (int) [ 1, 2 ], "
+        "rate = (int) { 16000, 32000, 44100, 48000 }")
+    );
+
+static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-sbc")
+    );
+
+static gboolean gst_sbc_parse_start (GstBaseParse * parse);
+static gboolean gst_sbc_parse_stop (GstBaseParse * parse);
+static GstFlowReturn gst_sbc_parse_handle_frame (GstBaseParse * parse,
+    GstBaseParseFrame * frame, gint * skipsize);
+static GstCaps *gst_sbc_parse_get_sink_caps (GstBaseParse * parse,
+    GstCaps * filter);
+
+static guint8 gst_sbc_calculate_crc8 (const guint8 * data, gint bits_crc);
+static gsize gst_sbc_calc_framelen (guint subbands, GstSbcChannelMode ch_mode,
+    guint blocks, guint bitpool);
+static gsize gst_sbc_parse_header (const guint8 * data, guint * rate,
+    guint * n_blocks, GstSbcChannelMode * ch_mode,
+    GstSbcAllocationMethod * alloc_method, guint * n_subbands, guint * bitpool);
+
+#define parent_class gst_sbc_parse_parent_class
+G_DEFINE_TYPE (GstSbcParse, gst_sbc_parse, GST_TYPE_BASE_PARSE);
+
+static void
+gst_sbc_parse_class_init (GstSbcParseClass * klass)
+{
+  GstBaseParseClass *baseparse_class = GST_BASE_PARSE_CLASS (klass);
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+  GST_DEBUG_CATEGORY_INIT (sbcparse_debug, "sbcparse", 0, "SBC audio parser");
+
+  baseparse_class->start = GST_DEBUG_FUNCPTR (gst_sbc_parse_start);
+  baseparse_class->stop = GST_DEBUG_FUNCPTR (gst_sbc_parse_stop);
+
+  baseparse_class->handle_frame =
+      GST_DEBUG_FUNCPTR (gst_sbc_parse_handle_frame);
+  baseparse_class->get_sink_caps =
+      GST_DEBUG_FUNCPTR (gst_sbc_parse_get_sink_caps);
+
+  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_set_static_metadata (element_class, "SBC audio parser",
+      "Codec/Parser/Audio", "Parses an SBC bluetooth audio stream",
+      "Tim-Philipp Müller <tim.muller@collabora.co.uk>");
+}
+
+static void
+gst_sbc_parse_reset (GstSbcParse * sbcparse)
+{
+  sbcparse->alloc_method = GST_SBC_ALLOCATION_METHOD_INVALID;
+  sbcparse->ch_mode = GST_SBC_CHANNEL_MODE_INVALID;
+  sbcparse->rate = -1;
+  sbcparse->n_blocks = -1;
+  sbcparse->n_subbands = -1;
+  sbcparse->bitpool = -1;
+}
+
+static void
+gst_sbc_parse_init (GstSbcParse * sbcparse)
+{
+  gst_sbc_parse_reset (sbcparse);
+}
+
+static gboolean
+gst_sbc_parse_start (GstBaseParse * parse)
+{
+  gst_base_parse_set_min_frame_size (parse,
+      gst_sbc_calc_framelen (4, GST_SBC_CHANNEL_MODE_MONO, 4, 2));
+
+  gst_base_parse_set_has_timing_info (parse, FALSE);
+
+  gst_base_parse_set_syncable (parse, TRUE);
+
+  return TRUE;
+}
+
+static gboolean
+gst_sbc_parse_stop (GstBaseParse * parse)
+{
+  gst_sbc_parse_reset (GST_SBC_PARSE (parse));
+  return TRUE;
+}
+
+static const gchar *
+gst_sbc_channel_mode_get_name (GstSbcChannelMode ch_mode)
+{
+  switch (ch_mode) {
+    case GST_SBC_CHANNEL_MODE_MONO:
+      return "mono";
+    case GST_SBC_CHANNEL_MODE_DUAL:
+      return "dual";
+    case GST_SBC_CHANNEL_MODE_STEREO:
+      return "stereo";
+    case GST_SBC_CHANNEL_MODE_JOINT_STEREO:
+      return "joint";
+    default:
+      break;
+  }
+  return "invalid";
+}
+
+static const gchar *
+gst_sbc_allocation_method_get_name (GstSbcAllocationMethod alloc_method)
+{
+  switch (alloc_method) {
+    case GST_SBC_ALLOCATION_METHOD_SNR:
+      return "snr";
+    case GST_SBC_ALLOCATION_METHOD_LOUDNESS:
+      return "loudness";
+    default:
+      break;
+  }
+  return "invalid";
+}
+
+static GstFlowReturn
+gst_sbc_parse_handle_frame (GstBaseParse * parse, GstBaseParseFrame * frame,
+    gint * skipsize)
+{
+  GstSbcParse *sbcparse = GST_SBC_PARSE (parse);
+  GstSbcAllocationMethod alloc_method = GST_SBC_ALLOCATION_METHOD_INVALID;
+  GstSbcChannelMode ch_mode = GST_SBC_CHANNEL_MODE_INVALID;
+  GstMapInfo map;
+  guint rate = 0, n_blocks = 0, n_subbands = 0, bitpool = 0;
+  gsize frame_len, next_len;
+  gint i, max_frames;
+
+  gst_buffer_map (frame->buffer, &map, GST_MAP_READ);
+
+  g_assert (map.size >= 6);
+
+  frame_len = gst_sbc_parse_header (map.data, &rate, &n_blocks, &ch_mode,
+      &alloc_method, &n_subbands, &bitpool);
+
+  GST_LOG_OBJECT (parse, "frame_len: %u", (guint) frame_len);
+
+  if (frame_len == 0)
+    goto resync;
+
+  if (sbcparse->alloc_method != alloc_method
+      || sbcparse->ch_mode != ch_mode
+      || sbcparse->rate != rate
+      || sbcparse->n_blocks != n_blocks
+      || sbcparse->n_subbands != n_subbands || sbcparse->bitpool != bitpool) {
+    guint avg_bitrate;
+    GstCaps *caps;
+
+    /* FIXME: do all of these need to be in the caps? */
+    caps = gst_caps_new_simple ("audio/x-sbc", "rate", G_TYPE_INT, rate,
+        "channels", G_TYPE_INT, (ch_mode == GST_SBC_CHANNEL_MODE_MONO) ? 1 : 2,
+        "channel-mode", G_TYPE_STRING, gst_sbc_channel_mode_get_name (ch_mode),
+        "blocks", G_TYPE_INT, n_blocks, "subbands", G_TYPE_INT, n_subbands,
+        "allocation-method", G_TYPE_STRING,
+        gst_sbc_allocation_method_get_name (alloc_method),
+        "bitpool", G_TYPE_INT, bitpool, "parsed", G_TYPE_BOOLEAN, TRUE, NULL);
+
+    GST_INFO_OBJECT (sbcparse, "caps changed to %" GST_PTR_FORMAT, caps);
+
+    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (sbcparse),
+        gst_event_new_caps (caps));
+
+    avg_bitrate = (8 * frame_len * rate) / (n_subbands * n_blocks);
+    gst_base_parse_set_average_bitrate (parse, avg_bitrate);
+
+    gst_base_parse_set_frame_rate (parse, rate, n_subbands * n_blocks, 0, 0);
+
+    sbcparse->alloc_method = alloc_method;
+    sbcparse->ch_mode = ch_mode;
+    sbcparse->rate = rate;
+    sbcparse->n_blocks = n_blocks;
+    sbcparse->n_subbands = n_subbands;
+    sbcparse->bitpool = bitpool;
+
+    gst_caps_unref (caps);
+  }
+
+  if (frame_len > map.size)
+    goto need_more_data;
+
+  GST_BUFFER_OFFSET (frame->buffer) = GST_BUFFER_OFFSET_NONE;
+  GST_BUFFER_OFFSET_END (frame->buffer) = GST_BUFFER_OFFSET_NONE;
+
+  /* completely arbitrary limit, we only process data we already have,
+   * so we aren't introducing latency here */
+  max_frames = MIN (map.size / frame_len, n_blocks * n_subbands * 5);
+  GST_LOG_OBJECT (sbcparse, "parsing up to %d frames", max_frames);
+
+  for (i = 1; i < max_frames; ++i) {
+    next_len = gst_sbc_parse_header (map.data + (i * frame_len), &rate,
+        &n_blocks, &ch_mode, &alloc_method, &n_subbands, &bitpool);
+
+    if (next_len != frame_len || sbcparse->alloc_method != alloc_method ||
+        sbcparse->ch_mode != ch_mode || sbcparse->rate != rate ||
+        sbcparse->n_blocks != n_blocks || sbcparse->n_subbands != n_subbands ||
+        sbcparse->bitpool != bitpool) {
+      break;
+    }
+  }
+  GST_LOG_OBJECT (sbcparse, "packing %d SBC frames into next output buffer", i);
+
+  /* Note: local n_subbands and n_blocks variables might be tainted if we
+   * bailed out of the loop above because of a header configuration mismatch */
+  gst_base_parse_set_frame_rate (parse, rate,
+      sbcparse->n_subbands * sbcparse->n_blocks * i, 0, 0);
+
+  gst_buffer_unmap (frame->buffer, &map);
+  return gst_base_parse_finish_frame (parse, frame, i * frame_len);
+
+resync:
+  {
+    const guint8 *possible_sync;
+
+    GST_DEBUG_OBJECT (parse, "no sync, resyncing");
+
+    possible_sync = memchr (map.data, SBC_SYNCBYTE, map.size);
+
+    if (possible_sync != NULL)
+      *skipsize = (gint) (possible_sync - map.data);
+    else
+      *skipsize = map.size;
+
+    gst_buffer_unmap (frame->buffer, &map);
+
+    /* we could optimise things here by looping over the data and checking
+     * whether the sync is good or not instead of handing control back to
+     * the base class just to be called again */
+    return GST_FLOW_OK;
+  }
+need_more_data:
+  {
+    GST_LOG_OBJECT (parse,
+        "need %" G_GSIZE_FORMAT " bytes, but only have %" G_GSIZE_FORMAT,
+        frame_len, map.size);
+    gst_base_parse_set_min_frame_size (parse, frame_len);
+    gst_buffer_unmap (frame->buffer, &map);
+    return GST_FLOW_OK;
+  }
+}
+
+static GstCaps *
+gst_sbc_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter)
+{
+  GstCaps *peercaps, *templ;
+  GstCaps *res;
+
+  templ = gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse));
+  peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), filter);
+
+  if (peercaps) {
+    guint i, n;
+
+    /* Remove the parsed field */
+    peercaps = gst_caps_make_writable (peercaps);
+    n = gst_caps_get_size (peercaps);
+    for (i = 0; i < n; i++) {
+      GstStructure *s = gst_caps_get_structure (peercaps, i);
+
+      gst_structure_remove_field (s, "parsed");
+    }
+
+    res = gst_caps_intersect_full (peercaps, templ, GST_CAPS_INTERSECT_FIRST);
+    gst_caps_unref (peercaps);
+    res = gst_caps_make_writable (res);
+
+    /* Append the template caps because we still want to accept
+     * caps without any fields in the case upstream does not
+     * know anything.
+     */
+    gst_caps_append (res, templ);
+  } else {
+    res = templ;
+  }
+
+  if (filter) {
+    GstCaps *intersection;
+
+    intersection =
+        gst_caps_intersect_full (filter, res, GST_CAPS_INTERSECT_FIRST);
+    gst_caps_unref (res);
+    res = intersection;
+  }
+
+  return res;
+}
+
+static const guint8 crc_table[256] = {
+  0x00, 0x1D, 0x3A, 0x27, 0x74, 0x69, 0x4E, 0x53,
+  0xE8, 0xF5, 0xD2, 0xCF, 0x9C, 0x81, 0xA6, 0xBB,
+  0xCD, 0xD0, 0xF7, 0xEA, 0xB9, 0xA4, 0x83, 0x9E,
+  0x25, 0x38, 0x1F, 0x02, 0x51, 0x4C, 0x6B, 0x76,
+  0x87, 0x9A, 0xBD, 0xA0, 0xF3, 0xEE, 0xC9, 0xD4,
+  0x6F, 0x72, 0x55, 0x48, 0x1B, 0x06, 0x21, 0x3C,
+  0x4A, 0x57, 0x70, 0x6D, 0x3E, 0x23, 0x04, 0x19,
+  0xA2, 0xBF, 0x98, 0x85, 0xD6, 0xCB, 0xEC, 0xF1,
+  0x13, 0x0E, 0x29, 0x34, 0x67, 0x7A, 0x5D, 0x40,
+  0xFB, 0xE6, 0xC1, 0xDC, 0x8F, 0x92, 0xB5, 0xA8,
+  0xDE, 0xC3, 0xE4, 0xF9, 0xAA, 0xB7, 0x90, 0x8D,
+  0x36, 0x2B, 0x0C, 0x11, 0x42, 0x5F, 0x78, 0x65,
+  0x94, 0x89, 0xAE, 0xB3, 0xE0, 0xFD, 0xDA, 0xC7,
+  0x7C, 0x61, 0x46, 0x5B, 0x08, 0x15, 0x32, 0x2F,
+  0x59, 0x44, 0x63, 0x7E, 0x2D, 0x30, 0x17, 0x0A,
+  0xB1, 0xAC, 0x8B, 0x96, 0xC5, 0xD8, 0xFF, 0xE2,
+  0x26, 0x3B, 0x1C, 0x01, 0x52, 0x4F, 0x68, 0x75,
+  0xCE, 0xD3, 0xF4, 0xE9, 0xBA, 0xA7, 0x80, 0x9D,
+  0xEB, 0xF6, 0xD1, 0xCC, 0x9F, 0x82, 0xA5, 0xB8,
+  0x03, 0x1E, 0x39, 0x24, 0x77, 0x6A, 0x4D, 0x50,
+  0xA1, 0xBC, 0x9B, 0x86, 0xD5, 0xC8, 0xEF, 0xF2,
+  0x49, 0x54, 0x73, 0x6E, 0x3D, 0x20, 0x07, 0x1A,
+  0x6C, 0x71, 0x56, 0x4B, 0x18, 0x05, 0x22, 0x3F,
+  0x84, 0x99, 0xBE, 0xA3, 0xF0, 0xED, 0xCA, 0xD7,
+  0x35, 0x28, 0x0F, 0x12, 0x41, 0x5C, 0x7B, 0x66,
+  0xDD, 0xC0, 0xE7, 0xFA, 0xA9, 0xB4, 0x93, 0x8E,
+  0xF8, 0xE5, 0xC2, 0xDF, 0x8C, 0x91, 0xB6, 0xAB,
+  0x10, 0x0D, 0x2A, 0x37, 0x64, 0x79, 0x5E, 0x43,
+  0xB2, 0xAF, 0x88, 0x95, 0xC6, 0xDB, 0xFC, 0xE1,
+  0x5A, 0x47, 0x60, 0x7D, 0x2E, 0x33, 0x14, 0x09,
+  0x7F, 0x62, 0x45, 0x58, 0x0B, 0x16, 0x31, 0x2C,
+  0x97, 0x8A, 0xAD, 0xB0, 0xE3, 0xFE, 0xD9, 0xC4
+};
+
+static guint8
+gst_sbc_calculate_crc8 (const guint8 * data, gint crc_bits)
+{
+  guint8 crc = 0x0f;
+  guint8 octet;
+
+  while (crc_bits >= 8) {
+    crc = crc_table[crc ^ *data];
+    crc_bits -= 8;
+    ++data;
+  }
+
+  octet = *data;
+  while (crc_bits > 0) {
+    gchar bit = ((octet ^ crc) & 0x80) >> 7;
+
+    crc = ((crc & 0x7f) << 1) ^ (bit ? 0x1d : 0);
+
+    octet = octet << 1;
+    --crc_bits;
+  }
+
+  return crc;
+}
+
+static gsize
+gst_sbc_calc_framelen (guint subbands, GstSbcChannelMode ch_mode,
+    guint blocks, guint bitpool)
+{
+  switch (ch_mode) {
+    case GST_SBC_CHANNEL_MODE_MONO:
+      return 4 + (subbands * 1) / 2 + (blocks * 1 * bitpool) / 8;
+    case GST_SBC_CHANNEL_MODE_DUAL:
+      return 4 + (subbands * 2) / 2 + (blocks * 2 * bitpool) / 8;
+    case GST_SBC_CHANNEL_MODE_STEREO:
+      return 4 + (subbands * 2) / 2 + (blocks * bitpool) / 8;
+    case GST_SBC_CHANNEL_MODE_JOINT_STEREO:
+      return 4 + (subbands * 2) / 2 + (subbands + blocks * bitpool) / 8;
+    default:
+      break;
+  }
+
+  g_return_val_if_reached (0);
+}
+
+static gsize
+gst_sbc_parse_header (const guint8 * data, guint * rate, guint * n_blocks,
+    GstSbcChannelMode * ch_mode, GstSbcAllocationMethod * alloc_method,
+    guint * n_subbands, guint * bitpool)
+{
+  static const guint16 sbc_rates[4] = { 16000, 32000, 44100, 48000 };
+  static const guint8 sbc_blocks[4] = { 4, 8, 12, 16 };
+  guint8 crc_data[2 + 1 + 8], crc_bits, i;
+
+  GST_MEMDUMP ("header", data, 8);
+
+  if (data[0] != SBC_SYNCBYTE)
+    return 0;
+
+  *rate = sbc_rates[(data[1] >> 6) & 0x03];
+  *n_blocks = sbc_blocks[(data[1] >> 4) & 0x03];
+  *ch_mode = (GstSbcChannelMode) ((data[1] >> 2) & 0x03);
+  *alloc_method = (data[1] >> 1) & 0x01;
+  *n_subbands = (data[1] & 0x01) ? 8 : 4;
+  *bitpool = data[2];
+
+  GST_TRACE ("rate=%u, n_blocks=%u, ch_mode=%u, alloc_method=%u, "
+      "n_subbands=%u, bitpool=%u", *rate, *n_blocks, *ch_mode, *alloc_method,
+      *n_subbands, *bitpool);
+
+  if (*bitpool < 2)
+    return 0;
+
+  /* check CRC */
+  crc_data[0] = data[1];
+  crc_data[1] = data[2];
+  crc_bits = 16;
+
+  /* joint flags and RFA */
+  if (*ch_mode == GST_SBC_CHANNEL_MODE_JOINT_STEREO)
+    crc_bits += *n_subbands;
+
+  /* scale factors */
+  if (*ch_mode == GST_SBC_CHANNEL_MODE_MONO)
+    crc_bits += *n_subbands * 1 * 4;
+  else
+    crc_bits += *n_subbands * 2 * 4;
+
+  for (i = 16; i < crc_bits; i += 8) {
+    crc_data[i / 8] = data[1 + (i / 8) + 1];
+  }
+
+  if (i > crc_bits) {
+    crc_data[(i / 8) - 1] &= 0xF0;
+  }
+
+  GST_MEMDUMP ("crc bytes", crc_data, GST_ROUND_UP_8 (crc_bits) / 8);
+  if (gst_sbc_calculate_crc8 (crc_data, crc_bits) != data[3]) {
+    GST_LOG ("header CRC check failed, bits=%u, got 0x%02x, expected 0x%02x",
+        crc_bits, gst_sbc_calculate_crc8 (crc_data, crc_bits), data[3]);
+    return 0;
+  }
+
+  return gst_sbc_calc_framelen (*n_subbands, *ch_mode, *n_blocks, *bitpool);
+}
diff --git a/gst/audioparsers/gstsbcparse.h b/gst/audioparsers/gstsbcparse.h
new file mode 100644
index 000000000..2115270e9
--- /dev/null
+++ b/gst/audioparsers/gstsbcparse.h
@@ -0,0 +1,74 @@
+/* GStreamer SBC audio parser
+ * Copyright (C) 2012 Collabora Ltd. <tim.muller@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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_SBC_PARSE_H_INCLUDED__
+#define __GST_SBC_PARSE_H_INCLUDED__
+
+
+#include <gst/gst.h>
+#include <gst/base/gstbaseparse.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_SBC_PARSE            (gst_sbc_parse_get_type())
+#define GST_SBC_PARSE(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SBC_PARSE,GstSbcParse))
+#define GST_SBC_PARSE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SBC_PARSE,GstSbcParseClass))
+#define GST_SBC_PARSE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_SBC_PARSE,GstSbcParseClass))
+#define GST_IS_SBC_PARSE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SBC_PARSE))
+#define GST_IS_SBC_PARSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SBC_PARSE))
+#define GST_SBC_PARSE_CAST(obj)       ((GstSbcParse *)(obj))
+
+typedef enum {
+  GST_SBC_CHANNEL_MODE_INVALID = -1,
+  GST_SBC_CHANNEL_MODE_MONO = 0,
+  GST_SBC_CHANNEL_MODE_DUAL = 1,
+  GST_SBC_CHANNEL_MODE_STEREO = 2,
+  GST_SBC_CHANNEL_MODE_JOINT_STEREO = 3
+} GstSbcChannelMode;
+
+typedef enum {
+  GST_SBC_ALLOCATION_METHOD_INVALID = -1,
+  GST_SBC_ALLOCATION_METHOD_SNR = 0,
+  GST_SBC_ALLOCATION_METHOD_LOUDNESS = 1
+} GstSbcAllocationMethod;
+
+typedef struct _GstSbcParse GstSbcParse;
+typedef struct _GstSbcParseClass GstSbcParseClass;
+
+struct _GstSbcParse {
+  GstBaseParse baseparse;
+
+  /* current output format */
+  GstSbcAllocationMethod  alloc_method;
+  GstSbcChannelMode       ch_mode;
+  gint                    rate;
+  gint                    n_blocks;
+  gint                    n_subbands;
+  gint                    bitpool;
+};
+
+struct _GstSbcParseClass {
+  GstBaseParseClass baseparse_class;
+};
+
+GType gst_sbc_parse_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GST_SBC_PARSE_H_INCLUDED__ */
diff --git a/gst/audioparsers/gstwavpackparse.c b/gst/audioparsers/gstwavpackparse.c
index a05707cee..8f124dd24 100644
--- a/gst/audioparsers/gstwavpackparse.c
+++ b/gst/audioparsers/gstwavpackparse.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-wavpackparse
diff --git a/gst/audioparsers/gstwavpackparse.h b/gst/audioparsers/gstwavpackparse.h
index 72ad340a1..1070f5915 100644
--- a/gst/audioparsers/gstwavpackparse.h
+++ b/gst/audioparsers/gstwavpackparse.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_WAVPACK_PARSE_H__
diff --git a/gst/audioparsers/plugin.c b/gst/audioparsers/plugin.c
index 75f497831..8cbfe605d 100644
--- a/gst/audioparsers/plugin.c
+++ b/gst/audioparsers/plugin.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -27,6 +27,7 @@
 #include "gstdcaparse.h"
 #include "gstflacparse.h"
 #include "gstmpegaudioparse.h"
+#include "gstsbcparse.h"
 #include "gstwavpackparse.h"
 
 static gboolean
@@ -46,6 +47,8 @@ plugin_init (GstPlugin * plugin)
       GST_RANK_PRIMARY + 1, GST_TYPE_FLAC_PARSE);
   ret &= gst_element_register (plugin, "mpegaudioparse",
       GST_RANK_PRIMARY + 2, GST_TYPE_MPEG_AUDIO_PARSE);
+  ret &= gst_element_register (plugin, "sbcparse",
+      GST_RANK_PRIMARY + 1, GST_TYPE_SBC_PARSE);
   ret &= gst_element_register (plugin, "wavpackparse",
       GST_RANK_PRIMARY + 1, GST_TYPE_WAVPACK_PARSE);
 
diff --git a/gst/auparse/Makefile.in b/gst/auparse/Makefile.in
index d2e92a05f..71d24d912 100644
--- a/gst/auparse/Makefile.in
+++ b/gst/auparse/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/auparse
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -135,10 +161,23 @@ libgstauparse_la_OBJECTS = $(am_libgstauparse_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstauparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstauparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstauparse_la_CFLAGS) $(CFLAGS) \
 	$(libgstauparse_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstauparse_la_SOURCES)
 DIST_SOURCES = $(libgstauparse_la_SOURCES)
 am__can_run_installinfo = \
@@ -173,6 +208,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -341,6 +393,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -542,6 +595,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -568,12 +622,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstauparse.la: $(libgstauparse_la_OBJECTS) $(libgstauparse_la_DEPENDENCIES) $(EXTRA_libgstauparse_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstauparse_la_LINK) -rpath $(plugindir) $(libgstauparse_la_OBJECTS) $(libgstauparse_la_LIBADD) $(LIBS)
 
@@ -619,26 +676,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -650,15 +696,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -667,6 +709,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -811,19 +868,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/auparse/gstauparse.c b/gst/auparse/gstauparse.c
index dd6c3b2bd..c4319cbc9 100644
--- a/gst/auparse/gstauparse.c
+++ b/gst/auparse/gstauparse.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/auparse/gstauparse.h b/gst/auparse/gstauparse.h
index 5744d2687..6d8f35a82 100644
--- a/gst/auparse/gstauparse.h
+++ b/gst/auparse/gstauparse.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/autodetect/Makefile.in b/gst/autodetect/Makefile.in
index 7a48e4852..237af1c57 100644
--- a/gst/autodetect/Makefile.in
+++ b/gst/autodetect/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/autodetect
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -139,10 +165,23 @@ libgstautodetect_la_OBJECTS = $(am_libgstautodetect_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstautodetect_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstautodetect_la_CFLAGS) $(CFLAGS) \
 	$(libgstautodetect_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -155,20 +194,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstautodetect_la_SOURCES)
 DIST_SOURCES = $(libgstautodetect_la_SOURCES)
 am__can_run_installinfo = \
@@ -177,6 +212,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -345,6 +397,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -558,6 +611,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -584,12 +638,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstautodetect.la: $(libgstautodetect_la_OBJECTS) $(libgstautodetect_la_DEPENDENCIES) $(EXTRA_libgstautodetect_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstautodetect_la_LINK) -rpath $(plugindir) $(libgstautodetect_la_OBJECTS) $(libgstautodetect_la_LIBADD) $(LIBS)
 
@@ -667,26 +724,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -698,15 +744,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -715,6 +757,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -859,19 +916,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/autodetect/gstautoaudiosink.c b/gst/autodetect/gstautoaudiosink.c
index e3fd7c70c..340e9a238 100644
--- a/gst/autodetect/gstautoaudiosink.c
+++ b/gst/autodetect/gstautoaudiosink.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -204,18 +204,6 @@ gst_auto_audio_sink_factory_filter (GstPluginFeature * feature, gpointer data)
   return TRUE;
 }
 
-static gint
-gst_auto_audio_sink_compare_ranks (GstPluginFeature * f1, GstPluginFeature * f2)
-{
-  gint diff;
-
-  diff = gst_plugin_feature_get_rank (f2) - gst_plugin_feature_get_rank (f1);
-  if (diff != 0)
-    return diff;
-  return strcmp (gst_plugin_feature_get_name (f2),
-      gst_plugin_feature_get_name (f1));
-}
-
 static GstElement *
 gst_auto_audio_sink_create_element_with_pretty_name (GstAutoAudioSink * sink,
     GstElementFactory * factory)
@@ -251,7 +239,8 @@ gst_auto_audio_sink_find_best (GstAutoAudioSink * sink)
 
   list = gst_registry_feature_filter (gst_registry_get (),
       (GstPluginFeatureFilter) gst_auto_audio_sink_factory_filter, FALSE, sink);
-  list = g_list_sort (list, (GCompareFunc) gst_auto_audio_sink_compare_ranks);
+  list =
+      g_list_sort (list, (GCompareFunc) gst_plugin_feature_rank_compare_func);
 
   /* We don't treat sound server sinks special. Our policy is that sound
    * server sinks that have a rank must not auto-spawn a daemon under any
diff --git a/gst/autodetect/gstautoaudiosink.h b/gst/autodetect/gstautoaudiosink.h
index 40fae5c60..3435a9b31 100644
--- a/gst/autodetect/gstautoaudiosink.h
+++ b/gst/autodetect/gstautoaudiosink.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUTO_AUDIO_SINK_H__
diff --git a/gst/autodetect/gstautoaudiosrc.c b/gst/autodetect/gstautoaudiosrc.c
index f251bc8e1..f20cf57e9 100644
--- a/gst/autodetect/gstautoaudiosrc.c
+++ b/gst/autodetect/gstautoaudiosrc.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -198,18 +198,6 @@ gst_auto_audio_src_factory_filter (GstPluginFeature * feature, gpointer data)
   return TRUE;
 }
 
-static gint
-gst_auto_audio_src_compare_ranks (GstPluginFeature * f1, GstPluginFeature * f2)
-{
-  gint diff;
-
-  diff = gst_plugin_feature_get_rank (f2) - gst_plugin_feature_get_rank (f1);
-  if (diff != 0)
-    return diff;
-  return strcmp (gst_plugin_feature_get_name (f2),
-      gst_plugin_feature_get_name (f1));
-}
-
 static GstElement *
 gst_auto_audio_src_create_element_with_pretty_name (GstAutoAudioSrc * src,
     GstElementFactory * factory)
@@ -245,7 +233,8 @@ gst_auto_audio_src_find_best (GstAutoAudioSrc * src)
 
   list = gst_registry_feature_filter (gst_registry_get (),
       (GstPluginFeatureFilter) gst_auto_audio_src_factory_filter, FALSE, src);
-  list = g_list_sort (list, (GCompareFunc) gst_auto_audio_src_compare_ranks);
+  list =
+      g_list_sort (list, (GCompareFunc) gst_plugin_feature_rank_compare_func);
 
   /* We don't treat sound server sources special. Our policy is that sound
    * server sources that have a rank must not auto-spawn a daemon under any
diff --git a/gst/autodetect/gstautoaudiosrc.h b/gst/autodetect/gstautoaudiosrc.h
index 86696276e..99b9aa5be 100644
--- a/gst/autodetect/gstautoaudiosrc.h
+++ b/gst/autodetect/gstautoaudiosrc.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUTO_AUDIO_SRC_H__
diff --git a/gst/autodetect/gstautodetect.c b/gst/autodetect/gstautodetect.c
index 48f03cb43..96a8cd739 100644
--- a/gst/autodetect/gstautodetect.c
+++ b/gst/autodetect/gstautodetect.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/autodetect/gstautodetect.h b/gst/autodetect/gstautodetect.h
index d4952d7d6..5e6875c69 100644
--- a/gst/autodetect/gstautodetect.h
+++ b/gst/autodetect/gstautodetect.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUTO_DETECT_H__
diff --git a/gst/autodetect/gstautovideosink.c b/gst/autodetect/gstautovideosink.c
index 4aa7161f2..f598986fb 100644
--- a/gst/autodetect/gstautovideosink.c
+++ b/gst/autodetect/gstautovideosink.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -203,18 +203,6 @@ gst_auto_video_sink_factory_filter (GstPluginFeature * feature, gpointer data)
   return TRUE;
 }
 
-static gint
-gst_auto_video_sink_compare_ranks (GstPluginFeature * f1, GstPluginFeature * f2)
-{
-  gint diff;
-
-  diff = gst_plugin_feature_get_rank (f2) - gst_plugin_feature_get_rank (f1);
-  if (diff != 0)
-    return diff;
-  return strcmp (gst_plugin_feature_get_name (f2),
-      gst_plugin_feature_get_name (f1));
-}
-
 static GstElement *
 gst_auto_video_sink_create_element_with_pretty_name (GstAutoVideoSink * sink,
     GstElementFactory * factory)
@@ -250,7 +238,8 @@ gst_auto_video_sink_find_best (GstAutoVideoSink * sink)
 
   list = gst_registry_feature_filter (gst_registry_get (),
       (GstPluginFeatureFilter) gst_auto_video_sink_factory_filter, FALSE, sink);
-  list = g_list_sort (list, (GCompareFunc) gst_auto_video_sink_compare_ranks);
+  list =
+      g_list_sort (list, (GCompareFunc) gst_plugin_feature_rank_compare_func);
 
   GST_LOG_OBJECT (sink, "Trying to find usable video devices ...");
 
diff --git a/gst/autodetect/gstautovideosink.h b/gst/autodetect/gstautovideosink.h
index 1ec4a26bf..1ed0bd3b2 100644
--- a/gst/autodetect/gstautovideosink.h
+++ b/gst/autodetect/gstautovideosink.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUTO_VIDEO_SINK_H__
diff --git a/gst/autodetect/gstautovideosrc.c b/gst/autodetect/gstautovideosrc.c
index 0184c673c..6c0ba09c4 100644
--- a/gst/autodetect/gstautovideosrc.c
+++ b/gst/autodetect/gstautovideosrc.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -197,18 +197,6 @@ gst_auto_video_src_factory_filter (GstPluginFeature * feature, gpointer data)
   return TRUE;
 }
 
-static gint
-gst_auto_video_src_compare_ranks (GstPluginFeature * f1, GstPluginFeature * f2)
-{
-  gint diff;
-
-  diff = gst_plugin_feature_get_rank (f2) - gst_plugin_feature_get_rank (f1);
-  if (diff != 0)
-    return diff;
-  return strcmp (gst_plugin_feature_get_name (f2),
-      gst_plugin_feature_get_name (f1));
-}
-
 static GstElement *
 gst_auto_video_src_create_element_with_pretty_name (GstAutoVideoSrc * src,
     GstElementFactory * factory)
@@ -244,7 +232,8 @@ gst_auto_video_src_find_best (GstAutoVideoSrc * src)
 
   list = gst_registry_feature_filter (gst_registry_get (),
       (GstPluginFeatureFilter) gst_auto_video_src_factory_filter, FALSE, src);
-  list = g_list_sort (list, (GCompareFunc) gst_auto_video_src_compare_ranks);
+  list =
+      g_list_sort (list, (GCompareFunc) gst_plugin_feature_rank_compare_func);
 
   GST_LOG_OBJECT (src, "Trying to find usable video devices ...");
 
diff --git a/gst/autodetect/gstautovideosrc.h b/gst/autodetect/gstautovideosrc.h
index d72bcd209..ec5d4fc8a 100644
--- a/gst/autodetect/gstautovideosrc.h
+++ b/gst/autodetect/gstautovideosrc.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUTO_VIDEO_SRC_H__
diff --git a/gst/avi/Makefile.in b/gst/avi/Makefile.in
index 76091e159..19c539a8f 100644
--- a/gst/avi/Makefile.in
+++ b/gst/avi/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/avi
-DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 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-gcc-inline-assembly.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 \
@@ -137,10 +163,23 @@ libgstavi_la_OBJECTS = $(am_libgstavi_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstavi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstavi_la_CFLAGS) $(CFLAGS) \
 	$(libgstavi_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -153,20 +192,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstavi_la_SOURCES)
 DIST_SOURCES = $(libgstavi_la_SOURCES)
 am__can_run_installinfo = \
@@ -175,6 +210,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -343,6 +395,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -563,6 +616,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -589,12 +643,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstavi.la: $(libgstavi_la_OBJECTS) $(libgstavi_la_DEPENDENCIES) $(EXTRA_libgstavi_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstavi_la_LINK) -rpath $(plugindir) $(libgstavi_la_OBJECTS) $(libgstavi_la_LIBADD) $(LIBS)
 
@@ -664,26 +721,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -695,15 +741,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -712,6 +754,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -856,19 +913,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/avi/avi-ids.h b/gst/avi/avi-ids.h
index 695a4f839..9c0980334 100644
--- a/gst/avi/avi-ids.h
+++ b/gst/avi/avi-ids.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AVI_H__
diff --git a/gst/avi/gstavi.c b/gst/avi/gstavi.c
index a0482a835..e2569b067 100644
--- a/gst/avi/gstavi.c
+++ b/gst/avi/gstavi.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c
index f310b9d4c..e9f7ad1c9 100644
--- a/gst/avi/gstavidemux.c
+++ b/gst/avi/gstavidemux.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /* Element-Checklist-Version: 5 */
 
@@ -57,7 +57,7 @@
 
 #define DIV_ROUND_UP(s,v) (((s) + ((v)-1)) / (v))
 
-#define GST_AVI_KEYFRAME 1
+#define GST_AVI_KEYFRAME (1 << 0)
 #define ENTRY_IS_KEYFRAME(e) ((e)->flags == GST_AVI_KEYFRAME)
 #define ENTRY_SET_KEYFRAME(e) ((e)->flags = GST_AVI_KEYFRAME)
 #define ENTRY_UNSET_KEYFRAME(e) ((e)->flags = 0)
@@ -456,14 +456,14 @@ gst_avi_demux_handle_src_query (GstPad * pad, GstObject * parent,
       if (stream->strh->type == GST_RIFF_FCC_auds) {
         if (stream->is_vbr) {
           /* VBR */
-          pos = gst_util_uint64_scale ((gint64) stream->current_entry *
-              stream->strh->scale, GST_SECOND, (guint64) stream->strh->rate);
+          pos = avi_stream_convert_frames_to_time_unchecked (stream,
+              stream->current_total);
           GST_DEBUG_OBJECT (avi, "VBR convert frame %u, time %"
               GST_TIME_FORMAT, stream->current_entry, GST_TIME_ARGS (pos));
         } else if (stream->strf.auds->av_bps != 0) {
           /* CBR */
-          pos = gst_util_uint64_scale (stream->current_total, GST_SECOND,
-              (guint64) stream->strf.auds->av_bps);
+          pos = avi_stream_convert_bytes_to_time_unchecked (stream,
+              stream->current_total);
           GST_DEBUG_OBJECT (avi,
               "CBR convert bytes %u, time %" GST_TIME_FORMAT,
               stream->current_total, GST_TIME_ARGS (pos));
@@ -510,7 +510,8 @@ gst_avi_demux_handle_src_query (GstPad * pad, GstObject * parent,
 
       /* only act on audio or video streams */
       if (stream->strh->type != GST_RIFF_FCC_auds &&
-          stream->strh->type != GST_RIFF_FCC_vids) {
+          stream->strh->type != GST_RIFF_FCC_vids &&
+          stream->strh->type != GST_RIFF_FCC_iavs) {
         res = FALSE;
         break;
       }
@@ -1370,9 +1371,13 @@ gst_avi_demux_get_buffer_info (GstAviDemux * avi, GstAviStream * stream,
       if (timestamp)
         *timestamp =
             avi_stream_convert_frames_to_time_unchecked (stream, entry->total);
-      if (ts_end)
+      if (ts_end) {
+        gint size = 1;
+        if (G_LIKELY (entry_n + 1 < stream->idx_n))
+          size = stream->index[entry_n + 1].total - entry->total;
         *ts_end = avi_stream_convert_frames_to_time_unchecked (stream,
-            entry->total + 1);
+            entry->total + size);
+      }
     } else {
       if (timestamp)
         *timestamp =
@@ -2355,7 +2360,7 @@ gst_avi_demux_parse_stream (GstAviDemux * avi, GstBuffer * buf)
 
   gst_pad_set_active (pad, TRUE);
   stream_id =
-      gst_pad_create_stream_id_printf (pad, GST_ELEMENT_CAST (avi), "%u",
+      gst_pad_create_stream_id_printf (pad, GST_ELEMENT_CAST (avi), "%03u",
       avi->num_streams);
   gst_pad_push_event (pad, gst_event_new_stream_start (stream_id));
   g_free (stream_id);
@@ -2587,7 +2592,9 @@ gst_avi_demux_stream_for_id (GstAviDemux * avi, guint32 id)
   /* get the stream for this entry */
   stream_nr = CHUNKID_TO_STREAMNR (id);
   if (G_UNLIKELY (stream_nr >= avi->num_streams)) {
-    GST_WARNING_OBJECT (avi, "invalid stream nr %d", stream_nr);
+    GST_WARNING_OBJECT (avi,
+        "invalid stream nr %d (0x%08x, %" GST_FOURCC_FORMAT ")", stream_nr, id,
+        GST_FOURCC_ARGS (id));
     return NULL;
   }
   stream = &avi->stream[stream_nr];
@@ -4538,6 +4545,10 @@ gst_avi_demux_invert (GstAviStream * stream, GstBuffer * buf)
     return buf;                 /* Ignore non DIB buffers */
   }
 
+  /* raw rgb data is stored topdown, but instead of inverting the buffer, */
+  /* some tools just negate the height field in the header (e.g. ffmpeg) */
+  if (((gint32) stream->strf.vids->height) < 0)
+    return buf;
 
   h = stream->strf.vids->height;
   w = stream->strf.vids->width;
@@ -5102,7 +5113,18 @@ gst_avi_demux_stream_data (GstAviDemux * avi)
 
         /* increment our positions */
         stream->current_entry++;
-        stream->current_total += size;
+        /* as in pull mode, 'total' is either bytes (CBR) or frames (VBR) */
+        if (stream->strh->type == GST_RIFF_FCC_auds && stream->is_vbr) {
+          gint blockalign = stream->strf.auds->blockalign;
+          if (blockalign > 0)
+            stream->current_total += DIV_ROUND_UP (size, blockalign);
+          else
+            stream->current_total++;
+        } else {
+          stream->current_total += size;
+        }
+        GST_LOG_OBJECT (avi, "current entry %u, total %u",
+            stream->current_entry, stream->current_total);
 
         /* update current position in the segment */
         avi->segment.position = next_ts;
diff --git a/gst/avi/gstavidemux.h b/gst/avi/gstavidemux.h
index 33868461d..9d8b2a1fb 100644
--- a/gst/avi/gstavidemux.h
+++ b/gst/avi/gstavidemux.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AVI_DEMUX_H__
diff --git a/gst/avi/gstavimux.c b/gst/avi/gstavimux.c
index 273955598..96aa7a941 100644
--- a/gst/avi/gstavimux.c
+++ b/gst/avi/gstavimux.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* based on:
@@ -93,7 +93,7 @@ static GstStaticPadTemplate video_sink_factory =
     GST_PAD_SINK,
     GST_PAD_REQUEST,
     GST_STATIC_CAPS ("video/x-raw, "
-        "format = (string) { YUY2, I420 }, "
+        "format = (string) { YUY2, I420, BGR, BGRx, BGRA, GRAY8 }, "
         "width = (int) [ 16, 4096 ], "
         "height = (int) [ 16, 4096 ], "
         "framerate = (fraction) [ 0, MAX ]; "
@@ -395,6 +395,7 @@ gst_avi_mux_vidsink_set_caps (GstPad * pad, GstCaps * vscaps)
   gint width, height;
   gint par_n, par_d;
   gboolean codec_data_in_headers = TRUE;
+  gboolean valid_caps = TRUE;
 
   avimux = GST_AVI_MUX (gst_pad_get_parent (pad));
 
@@ -476,7 +477,21 @@ gst_avi_mux_vidsink_set_caps (GstPad * pad, GstCaps * vscaps)
         avipad->vids.compression = GST_MAKE_FOURCC ('I', '4', '2', '0');
         avipad->vids.bit_cnt = 12;
         break;
+      case GST_VIDEO_FORMAT_GRAY8:
+        avipad->vids.compression = GST_MAKE_FOURCC ('Y', '8', '0', '0');
+        avipad->vids.bit_cnt = 8;
+        break;
+      case GST_VIDEO_FORMAT_BGR:
+        avipad->vids.compression = GST_MAKE_FOURCC (0x00, 0x00, 0x00, 0x00);
+        avipad->vids.bit_cnt = 24;
+        break;
+      case GST_VIDEO_FORMAT_BGRx:
+      case GST_VIDEO_FORMAT_BGRA:
+        avipad->vids.compression = GST_MAKE_FOURCC (0x00, 0x00, 0x00, 0x00);
+        avipad->vids.bit_cnt = 32;
+        break;
       default:
+        valid_caps = FALSE;
         break;
     }
   } else {
@@ -502,6 +517,8 @@ gst_avi_mux_vidsink_set_caps (GstPad * pad, GstCaps * vscaps)
         case 5:
           avipad->vids.compression = GST_MAKE_FOURCC ('D', 'X', '5', '0');
           break;
+        default:
+          valid_caps = FALSE;
       }
     } else if (gst_structure_has_name (structure, "video/x-msmpeg")) {
       gint msmpegversion;
@@ -567,6 +584,7 @@ gst_avi_mux_vidsink_set_caps (GstPad * pad, GstCaps * vscaps)
           case 3:
             avipad->vids.compression = GST_MAKE_FOURCC ('W', 'M', 'V', '3');
           default:
+            valid_caps = FALSE;
             break;
         }
       }
@@ -574,9 +592,11 @@ gst_avi_mux_vidsink_set_caps (GstPad * pad, GstCaps * vscaps)
       avipad->vids.compression = GST_MAKE_FOURCC ('M', 'J', '2', 'C');
     } else if (!strcmp (mimetype, "video/x-vp8")) {
       avipad->vids.compression = GST_MAKE_FOURCC ('V', 'P', '8', '0');
+    } else {
+      valid_caps = FALSE;
     }
 
-    if (!avipad->vids.compression)
+    if (!valid_caps)
       goto refuse_caps;
   }
 
@@ -1906,6 +1926,68 @@ gst_avi_mux_send_pad_data (GstAviMux * avimux, gulong num_bytes)
   return gst_pad_push (avimux->srcpad, buffer);
 }
 
+#define gst_avi_mux_is_uncompressed(fourcc)		\
+  (fourcc == GST_RIFF_DIB ||				\
+   fourcc == GST_RIFF_rgb ||				\
+   fourcc == GST_RIFF_RGB || fourcc == GST_RIFF_RAW)
+
+/*
+ * Helper for gst_avi_demux_invert()
+ */
+static inline void
+swap_line (guint8 * d1, guint8 * d2, guint8 * tmp, gint bytes)
+{
+  memcpy (tmp, d1, bytes);
+  memcpy (d1, d2, bytes);
+  memcpy (d2, tmp, bytes);
+}
+
+/*
+ * Invert DIB buffers... Takes existing buffer and
+ * returns either the buffer or a new one (with old
+ * one dereferenced).
+ * FFMPEG does this by simply negating the height in the header. Should we?
+ * FIXME: can't we preallocate tmp? and remember stride, bpp?
+ *        this could be done in do_one_buffer() I suppose
+ */
+static GstBuffer *
+gst_avi_mux_invert (GstAviPad * avipad, GstBuffer * buf)
+{
+  gint y, w, h;
+  gint bpp, stride;
+  guint8 *tmp = NULL;
+  GstMapInfo map;
+
+  GstAviVideoPad *vidpad = (GstAviVideoPad *) avipad;
+
+  h = vidpad->vids.height;
+  w = vidpad->vids.width;
+  bpp = vidpad->vids.bit_cnt ? vidpad->vids.bit_cnt : 8;
+  stride = GST_ROUND_UP_4 (w * (bpp / 8));
+
+  buf = gst_buffer_make_writable (buf);
+
+  gst_buffer_map (buf, &map, GST_MAP_READWRITE);
+  if (map.size < (stride * h)) {
+    GST_WARNING ("Buffer is smaller than reported Width x Height x Depth");
+    gst_buffer_unmap (buf, &map);
+    return buf;
+  }
+
+  tmp = g_malloc (stride);
+
+  for (y = 0; y < h / 2; y++) {
+    swap_line (map.data + stride * y, map.data + stride * (h - 1 - y), tmp,
+        stride);
+  }
+
+  g_free (tmp);
+
+  gst_buffer_unmap (buf, &map);
+
+  return buf;
+}
+
 /* do buffer */
 static GstFlowReturn
 gst_avi_mux_do_buffer (GstAviMux * avimux, GstAviPad * avipad)
@@ -1928,6 +2010,7 @@ gst_avi_mux_do_buffer (GstAviMux * avimux, GstAviPad * avipad)
     GstAviVideoPad *vidpad = (GstAviVideoPad *) avipad;
 
     if (vidpad->prepend_buffer) {
+      /* Keep a reference to data until we copy the timestamps, then release it */
       GstBuffer *newdata =
           gst_buffer_append (vidpad->prepend_buffer, gst_buffer_ref (data));
       gst_buffer_copy_into (newdata, data, GST_BUFFER_COPY_TIMESTAMPS, 0, -1);
@@ -1936,11 +2019,16 @@ gst_avi_mux_do_buffer (GstAviMux * avimux, GstAviPad * avipad)
       data = newdata;
       vidpad->prepend_buffer = NULL;
     }
+
+    /* DIB buffers are stored topdown (I don't know why) */
+    if (gst_avi_mux_is_uncompressed (avipad->hdr.fcc_handler)) {
+      data = gst_avi_mux_invert (avipad, data);
+    }
   }
 
   if (avimux->restart) {
     if ((res = gst_avi_mux_restart_file (avimux)) != GST_FLOW_OK)
-      return res;
+      goto done;
   }
 
   datasize = gst_buffer_get_size (data);
@@ -1950,10 +2038,10 @@ gst_avi_mux_do_buffer (GstAviMux * avimux, GstAviPad * avipad)
       datasize > GST_AVI_MAX_SIZE) {
     if (avimux->enable_large_avi) {
       if ((res = gst_avi_mux_bigfile (avimux, FALSE)) != GST_FLOW_OK)
-        return res;
+        goto done;
     } else {
       if ((res = gst_avi_mux_restart_file (avimux)) != GST_FLOW_OK)
-        return res;
+        goto done;
     }
   }
 
@@ -1970,8 +2058,10 @@ gst_avi_mux_do_buffer (GstAviMux * avimux, GstAviPad * avipad)
     avimux->data_size += total_size;
   }
 
-  if (G_UNLIKELY (avipad->hook))
+  if (G_UNLIKELY (avipad->hook)) {
+    gst_buffer_ref (data);
     avipad->hook (avimux, avipad, data);
+  }
 
   /* the suggested buffer size is the max frame size */
   if (avipad->hdr.bufsize < datasize)
@@ -2003,19 +2093,23 @@ gst_avi_mux_do_buffer (GstAviMux * avimux, GstAviPad * avipad)
   GST_LOG_OBJECT (avimux, "pushing buffers: head, data");
 
   if ((res = gst_pad_push (avimux->srcpad, header)) != GST_FLOW_OK)
-    return res;
+    goto done;
+
+  gst_buffer_ref (data);
   if ((res = gst_pad_push (avimux->srcpad, data)) != GST_FLOW_OK)
-    return res;
+    goto done;
 
   if (pad_bytes) {
     if ((res = gst_avi_mux_send_pad_data (avimux, pad_bytes)) != GST_FLOW_OK)
-      return res;
+      goto done;
   }
 
   /* if any push above fails, we're in trouble with file consistency anyway */
   avimux->total_data += total_size;
   avimux->idx_offset += total_size;
 
+done:
+  gst_buffer_unref (data);
   return res;
 }
 
@@ -2037,9 +2131,6 @@ gst_avi_mux_do_one_buffer (GstAviMux * avimux)
     if (!avipad->collect)
       continue;
 
-    if (!avipad->hdr.fcc_handler)
-      goto not_negotiated;
-
     buffer = gst_collect_pads_peek (avimux->collect, avipad->collect);
     if (!buffer)
       continue;
@@ -2082,13 +2173,6 @@ gst_avi_mux_do_one_buffer (GstAviMux * avimux)
     return GST_FLOW_EOS;
   }
 
-  /* ERRORS */
-not_negotiated:
-  {
-    GST_ELEMENT_ERROR (avimux, CORE, NEGOTIATION, (NULL),
-        ("pad %s not negotiated", GST_PAD_NAME (avipad->collect->pad)));
-    return GST_FLOW_NOT_NEGOTIATED;
-  }
 }
 
 static GstFlowReturn
diff --git a/gst/avi/gstavimux.h b/gst/avi/gstavimux.h
index f1ce70635..6a4135fda 100644
--- a/gst/avi/gstavimux.h
+++ b/gst/avi/gstavimux.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/avi/gstavisubtitle.c b/gst/avi/gstavisubtitle.c
index 0cd2f35f5..7b2fa2dd2 100644
--- a/gst/avi/gstavisubtitle.c
+++ b/gst/avi/gstavisubtitle.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/cutter/Makefile.in b/gst/cutter/Makefile.in
index a785db28e..3173ee127 100644
--- a/gst/cutter/Makefile.in
+++ b/gst/cutter/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/cutter
-DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 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-gcc-inline-assembly.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 \
@@ -135,10 +161,23 @@ libgstcutter_la_OBJECTS = $(am_libgstcutter_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstcutter_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstcutter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstcutter_la_CFLAGS) $(CFLAGS) \
 	$(libgstcutter_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstcutter_la_SOURCES)
 DIST_SOURCES = $(libgstcutter_la_SOURCES)
 am__can_run_installinfo = \
@@ -173,6 +208,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -341,6 +393,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -543,6 +596,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -569,12 +623,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstcutter.la: $(libgstcutter_la_OBJECTS) $(libgstcutter_la_DEPENDENCIES) $(EXTRA_libgstcutter_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstcutter_la_LINK) -rpath $(plugindir) $(libgstcutter_la_OBJECTS) $(libgstcutter_la_LIBADD) $(LIBS)
 
@@ -620,26 +677,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -651,15 +697,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -668,6 +710,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -812,19 +869,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/cutter/gstcutter.c b/gst/cutter/gstcutter.c
index 5c3001f45..2c373664c 100644
--- a/gst/cutter/gstcutter.c
+++ b/gst/cutter/gstcutter.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-cutter
diff --git a/gst/cutter/gstcutter.h b/gst/cutter/gstcutter.h
index 47c1750db..3875f8f12 100644
--- a/gst/cutter/gstcutter.h
+++ b/gst/cutter/gstcutter.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/debugutils/Makefile.in b/gst/debugutils/Makefile.in
index 2be84487a..047503202 100644
--- a/gst/debugutils/Makefile.in
+++ b/gst/debugutils/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/debugutils
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -140,6 +166,7 @@ libgstdebug_la_OBJECTS = $(am_libgstdebug_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstdebug_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstdebug_la_CFLAGS) $(CFLAGS) \
@@ -155,6 +182,18 @@ libgstnavigationtest_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstnavigationtest_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstnavigationtest_la_CFLAGS) \
 	$(CFLAGS) $(libgstnavigationtest_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -167,20 +206,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstdebug_la_SOURCES) $(libgstnavigationtest_la_SOURCES)
 DIST_SOURCES = $(libgstdebug_la_SOURCES) \
 	$(libgstnavigationtest_la_SOURCES)
@@ -190,6 +225,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -358,6 +410,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -592,6 +645,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -618,14 +672,18 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstdebug.la: $(libgstdebug_la_OBJECTS) $(libgstdebug_la_DEPENDENCIES) $(EXTRA_libgstdebug_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstdebug_la_LINK) -rpath $(plugindir) $(libgstdebug_la_OBJECTS) $(libgstdebug_la_LIBADD) $(LIBS)
+
 libgstnavigationtest.la: $(libgstnavigationtest_la_OBJECTS) $(libgstnavigationtest_la_DEPENDENCIES) $(EXTRA_libgstnavigationtest_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstnavigationtest_la_LINK) -rpath $(plugindir) $(libgstnavigationtest_la_OBJECTS) $(libgstnavigationtest_la_LIBADD) $(LIBS)
 
@@ -759,26 +817,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -790,15 +837,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -807,6 +850,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -951,19 +1009,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/debugutils/breakmydata.c b/gst/debugutils/breakmydata.c
index 412a36295..c7306b10d 100644
--- a/gst/debugutils/breakmydata.c
+++ b/gst/debugutils/breakmydata.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-breakmydata
diff --git a/gst/debugutils/cpureport.c b/gst/debugutils/cpureport.c
index b4d6c043a..85cc29478 100644
--- a/gst/debugutils/cpureport.c
+++ b/gst/debugutils/cpureport.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/debugutils/cpureport.h b/gst/debugutils/cpureport.h
index d1a0966b6..35055598d 100644
--- a/gst/debugutils/cpureport.h
+++ b/gst/debugutils/cpureport.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_CPU_REPORT_H__
diff --git a/gst/debugutils/gstcapsdebug.h b/gst/debugutils/gstcapsdebug.h
index 1f3c070e6..9d0930dcc 100644
--- a/gst/debugutils/gstcapsdebug.h
+++ b/gst/debugutils/gstcapsdebug.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _GST_CAPS_DEBUG_H_
diff --git a/gst/debugutils/gstdebug.c b/gst/debugutils/gstdebug.c
index cf78ea390..a56aa9fa0 100644
--- a/gst/debugutils/gstdebug.c
+++ b/gst/debugutils/gstdebug.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/debugutils/gstnavigationtest.c b/gst/debugutils/gstnavigationtest.c
index a8f46ecf8..de98900be 100644
--- a/gst/debugutils/gstnavigationtest.c
+++ b/gst/debugutils/gstnavigationtest.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/debugutils/gstnavigationtest.h b/gst/debugutils/gstnavigationtest.h
index deff63840..f1cf458bb 100644
--- a/gst/debugutils/gstnavigationtest.h
+++ b/gst/debugutils/gstnavigationtest.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/debugutils/gstnavseek.c b/gst/debugutils/gstnavseek.c
index 6b036badb..02b4c0c09 100644
--- a/gst/debugutils/gstnavseek.c
+++ b/gst/debugutils/gstnavseek.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/gst/debugutils/gstnavseek.h b/gst/debugutils/gstnavseek.h
index af7e9d21f..1b9c92444 100644
--- a/gst/debugutils/gstnavseek.h
+++ b/gst/debugutils/gstnavseek.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/debugutils/gstpushfilesrc.c b/gst/debugutils/gstpushfilesrc.c
index 4a5a4c6dd..435d18515 100644
--- a/gst/debugutils/gstpushfilesrc.c
+++ b/gst/debugutils/gstpushfilesrc.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/debugutils/gstpushfilesrc.h b/gst/debugutils/gstpushfilesrc.h
index d9333444b..6013cc878 100644
--- a/gst/debugutils/gstpushfilesrc.h
+++ b/gst/debugutils/gstpushfilesrc.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_PUSH_FILE_SRC_H__
diff --git a/gst/debugutils/gsttaginject.c b/gst/debugutils/gsttaginject.c
index 33de83fc2..b9b27273d 100644
--- a/gst/debugutils/gsttaginject.c
+++ b/gst/debugutils/gsttaginject.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-taginject
diff --git a/gst/debugutils/gsttaginject.h b/gst/debugutils/gsttaginject.h
index 8e8de1eec..a5459275f 100644
--- a/gst/debugutils/gsttaginject.h
+++ b/gst/debugutils/gsttaginject.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/debugutils/progressreport.c b/gst/debugutils/progressreport.c
index 18e14373e..859e4b950 100644
--- a/gst/debugutils/progressreport.c
+++ b/gst/debugutils/progressreport.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/debugutils/progressreport.h b/gst/debugutils/progressreport.h
index 0d501499b..c46ac099d 100644
--- a/gst/debugutils/progressreport.h
+++ b/gst/debugutils/progressreport.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_PROGRESS_REPORT_H__
diff --git a/gst/debugutils/rndbuffersize.c b/gst/debugutils/rndbuffersize.c
index 68a270510..6259579f0 100644
--- a/gst/debugutils/rndbuffersize.c
+++ b/gst/debugutils/rndbuffersize.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-rndbuffersize
diff --git a/gst/debugutils/testplugin.c b/gst/debugutils/testplugin.c
index c20198237..7d104cd40 100644
--- a/gst/debugutils/testplugin.c
+++ b/gst/debugutils/testplugin.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/debugutils/tests.c b/gst/debugutils/tests.c
index 4d2a4693e..d318664a9 100644
--- a/gst/debugutils/tests.c
+++ b/gst/debugutils/tests.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/debugutils/tests.h b/gst/debugutils/tests.h
index 9926af62b..c8fa088cb 100644
--- a/gst/debugutils/tests.h
+++ b/gst/debugutils/tests.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
diff --git a/gst/deinterlace/Makefile.in b/gst/deinterlace/Makefile.in
index e4e67274f..0213c6d5e 100644
--- a/gst/deinterlace/Makefile.in
+++ b/gst/deinterlace/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -39,23 +38,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -75,8 +102,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak
+DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS)
 subdir = gst/deinterlace
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -84,7 +111,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-gcc-inline-assembly.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 \
@@ -170,10 +196,23 @@ libgstdeinterlace_la_OBJECTS = $(am_libgstdeinterlace_la_OBJECTS) \
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstdeinterlace_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) \
 	$(libgstdeinterlace_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -186,20 +225,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstdeinterlace_la_SOURCES) \
 	$(nodist_libgstdeinterlace_la_SOURCES)
 DIST_SOURCES = $(libgstdeinterlace_la_SOURCES)
@@ -209,6 +244,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -377,6 +429,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -634,6 +687,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -660,12 +714,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstdeinterlace.la: $(libgstdeinterlace_la_OBJECTS) $(libgstdeinterlace_la_DEPENDENCIES) $(EXTRA_libgstdeinterlace_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstdeinterlace_la_LINK) -rpath $(plugindir) $(libgstdeinterlace_la_OBJECTS) $(libgstdeinterlace_la_LIBADD) $(LIBS)
 
@@ -807,26 +864,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -838,15 +884,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -855,6 +897,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -1005,19 +1062,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-local clean-pluginLTLIBRARIES 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-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-pluginLTLIBRARIES 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 \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-local clean-pluginLTLIBRARIES \
+	cscopelist-am ctags ctags-am 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-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-pluginLTLIBRARIES \
+	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 tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
 
diff --git a/gst/deinterlace/gstdeinterlace.c b/gst/deinterlace/gstdeinterlace.c
index 22afe42ae..32109900d 100644
--- a/gst/deinterlace/gstdeinterlace.c
+++ b/gst/deinterlace/gstdeinterlace.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -2359,7 +2359,11 @@ gst_deinterlace_do_bufferpool (GstDeinterlace * self, GstCaps * outcaps)
     gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max);
   else {
     pool = NULL;
-    size = GST_VIDEO_INFO_SIZE (&self->vinfo), min = max = 0;
+    size = GST_VIDEO_INFO_SIZE (&self->vinfo);
+    min =
+        MAX ((gst_deinterlace_method_get_fields_required (self->method) +
+            1) / 2 + 1, 4);
+    max = 0;
   }
 
   if (pool == NULL) {
@@ -2372,6 +2376,7 @@ gst_deinterlace_do_bufferpool (GstDeinterlace * self, GstCaps * outcaps)
   config = gst_buffer_pool_get_config (pool);
   gst_buffer_pool_config_set_params (config, outcaps, size, min, max);
   gst_buffer_pool_config_set_allocator (config, allocator, &params);
+  gst_buffer_pool_config_add_option (config, GST_BUFFER_POOL_OPTION_VIDEO_META);
   gst_buffer_pool_set_config (pool, config);
 
   /* now store */
@@ -2457,8 +2462,7 @@ gst_deinterlace_setcaps (GstDeinterlace * self, GstPad * pad, GstCaps * caps)
         "progressive", NULL);
   }
 
-  if (!gst_pad_set_caps (self->srcpad, srccaps))
-    goto caps_not_accepted;
+  gst_pad_set_caps (self->srcpad, srccaps);
 
   if (fps_n != 0) {
     self->field_duration = gst_util_uint64_scale (GST_SECOND, fps_d, fps_n);
@@ -2484,12 +2488,6 @@ invalid_caps:
     GST_ERROR_OBJECT (pad, "Invalid caps: %" GST_PTR_FORMAT, caps);
     return FALSE;
   }
-caps_not_accepted:
-  {
-    GST_ERROR_OBJECT (pad, "Caps not accepted: %" GST_PTR_FORMAT, srccaps);
-    gst_caps_unref (srccaps);
-    return FALSE;
-  }
 no_bufferpool:
   {
     GST_ERROR_OBJECT (pad, "could not negotiate bufferpool");
@@ -2595,6 +2593,41 @@ gst_deinterlace_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
   return res;
 }
 
+static gboolean
+gst_deinterlace_propose_allocation (GstDeinterlace * self, GstQuery * query)
+{
+  GstBufferPool *pool;
+  GstCaps *caps;
+  GstVideoInfo info;
+  guint size;
+  GstStructure *config;
+
+  gst_query_parse_allocation (query, &caps, NULL);
+
+  if (caps == NULL)
+    return FALSE;
+
+  if (!gst_video_info_from_caps (&info, caps))
+    return FALSE;
+
+  size = GST_VIDEO_INFO_SIZE (&info);
+
+  pool = gst_video_buffer_pool_new ();
+
+  gst_query_add_allocation_pool (query, pool, size, 0, 0);
+
+  config = gst_buffer_pool_get_config (pool);
+  gst_buffer_pool_config_set_params (config, caps, size,
+      (gst_deinterlace_method_get_fields_required (self->method) + 1) / 2 + 1,
+      0);
+  gst_buffer_pool_set_config (pool, config);
+
+  gst_object_unref (pool);
+  gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, NULL);
+
+  return TRUE;
+}
+
 static gboolean
 gst_deinterlace_sink_query (GstPad * pad, GstObject * parent, GstQuery * query)
 {
@@ -2619,7 +2652,7 @@ gst_deinterlace_sink_query (GstPad * pad, GstObject * parent, GstQuery * query)
       if (self->passthrough)
         res = gst_pad_peer_query (self->srcpad, query);
       else
-        res = gst_pad_query_default (pad, parent, query);
+        res = gst_deinterlace_propose_allocation (self, query);
       break;
     default:
       res = gst_pad_query_default (pad, parent, query);
diff --git a/gst/deinterlace/gstdeinterlace.h b/gst/deinterlace/gstdeinterlace.h
index 3b8a33672..5ca8960d1 100644
--- a/gst/deinterlace/gstdeinterlace.h
+++ b/gst/deinterlace/gstdeinterlace.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_DEINTERLACE_H__
@@ -25,7 +25,7 @@
 #include <gst/gst.h>
 #include <gst/video/video.h>
 #include <gst/video/gstvideopool.h>
-#include <gst/video/gstvideofilter.h>
+#include <gst/video/gstvideometa.h>
 
 #include "gstdeinterlacemethod.h"
 
diff --git a/gst/deinterlace/gstdeinterlacemethod.c b/gst/deinterlace/gstdeinterlacemethod.c
index e78aebcfd..69a42464b 100644
--- a/gst/deinterlace/gstdeinterlacemethod.c
+++ b/gst/deinterlace/gstdeinterlacemethod.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -106,7 +106,6 @@ static void
 gst_deinterlace_method_setup_impl (GstDeinterlaceMethod * self,
     GstVideoInfo * vinfo)
 {
-  gint i;
   GstDeinterlaceMethodClass *klass = GST_DEINTERLACE_METHOD_GET_CLASS (self);
 
   self->vinfo = vinfo;
@@ -116,14 +115,6 @@ gst_deinterlace_method_setup_impl (GstDeinterlaceMethod * self,
   if (GST_VIDEO_INFO_FORMAT (self->vinfo) == GST_VIDEO_FORMAT_UNKNOWN)
     return;
 
-  for (i = 0; i < 4; i++) {
-    self->width[i] = GST_VIDEO_INFO_COMP_WIDTH (vinfo, i);
-    self->height[i] = GST_VIDEO_INFO_COMP_HEIGHT (vinfo, i);
-    self->offset[i] = GST_VIDEO_INFO_COMP_OFFSET (vinfo, i);
-    self->row_stride[i] = GST_VIDEO_INFO_COMP_STRIDE (vinfo, i);
-    self->pixel_stride[i] = GST_VIDEO_INFO_COMP_PSTRIDE (vinfo, i);
-  }
-
   switch (GST_VIDEO_INFO_FORMAT (self->vinfo)) {
     case GST_VIDEO_FORMAT_YUY2:
       self->deinterlace_frame = klass->deinterlace_frame_yuy2;
@@ -300,16 +291,17 @@ gst_deinterlace_simple_method_supported (GstDeinterlaceMethodClass * mklass,
 static void
     gst_deinterlace_simple_method_interpolate_scanline_packed
     (GstDeinterlaceSimpleMethod * self, guint8 * out,
-    const GstDeinterlaceScanlineData * scanlines)
+    const GstDeinterlaceScanlineData * scanlines, guint stride)
 {
-  memcpy (out, scanlines->m1, self->parent.row_stride[0]);
+  memcpy (out, scanlines->m1, stride);
 }
 
 static void
 gst_deinterlace_simple_method_copy_scanline_packed (GstDeinterlaceSimpleMethod *
-    self, guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    self, guint8 * out, const GstDeinterlaceScanlineData * scanlines,
+    guint stride)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[0]);
+  memcpy (out, scanlines->m0, stride);
 }
 
 static void
@@ -320,43 +312,43 @@ gst_deinterlace_simple_method_deinterlace_frame_packed (GstDeinterlaceMethod *
   GstDeinterlaceSimpleMethod *self = GST_DEINTERLACE_SIMPLE_METHOD (method);
   GstDeinterlaceMethodClass *dm_class = GST_DEINTERLACE_METHOD_GET_CLASS (self);
   GstDeinterlaceScanlineData scanlines;
-  guint8 *dest;
-  const guint8 *field0, *field1, *field2, *fieldp;
-  guint cur_field_flags = history[cur_field_idx].flags;
+  guint cur_field_flags;
   gint i;
-  gint frame_height = GST_VIDEO_INFO_HEIGHT (self->parent.vinfo);
-  gint stride = self->parent.row_stride[0];
+  gint frame_height, frame_width;
+  GstVideoFrame *framep, *frame0, *frame1, *frame2;
 
   g_assert (self->interpolate_scanline_packed != NULL);
   g_assert (self->copy_scanline_packed != NULL);
 
-  if (cur_field_idx > 0) {
-    fieldp = GST_VIDEO_FRAME_COMP_DATA (history[cur_field_idx - 1].frame, 0);
-  } else {
-    fieldp = NULL;
-  }
+  frame_height = GST_VIDEO_FRAME_HEIGHT (outframe);
+  frame_width = GST_VIDEO_FRAME_PLANE_STRIDE (outframe, 0);
 
-  dest = GST_VIDEO_FRAME_COMP_DATA (outframe, 0);
+  frame0 = history[cur_field_idx].frame;
+  frame_width = MIN (frame_width, GST_VIDEO_FRAME_PLANE_STRIDE (frame0, 0));
+  cur_field_flags = history[cur_field_idx].flags;
 
-  field0 = GST_VIDEO_FRAME_COMP_DATA (history[cur_field_idx].frame, 0);
+  framep = (cur_field_idx > 0 ? history[cur_field_idx - 1].frame : NULL);
+  if (framep)
+    frame_width = MIN (frame_width, GST_VIDEO_FRAME_PLANE_STRIDE (framep, 0));
 
   g_assert (dm_class->fields_required <= 4);
 
-  if (cur_field_idx + 1 < history_count) {
-    field1 = GST_VIDEO_FRAME_COMP_DATA (history[cur_field_idx + 1].frame, 0);
-  } else {
-    field1 = NULL;
-  }
+  frame1 =
+      (cur_field_idx + 1 <
+      history_count ? history[cur_field_idx + 1].frame : NULL);
+  if (frame1)
+    frame_width = MIN (frame_width, GST_VIDEO_FRAME_PLANE_STRIDE (frame1, 0));
 
-  if (cur_field_idx + 2 < history_count) {
-    field2 = GST_VIDEO_FRAME_COMP_DATA (history[cur_field_idx + 2].frame, 0);
-  } else {
-    field2 = NULL;
-  }
+  frame2 =
+      (cur_field_idx + 2 <
+      history_count ? history[cur_field_idx + 2].frame : NULL);
+  if (frame2)
+    frame_width = MIN (frame_width, GST_VIDEO_FRAME_PLANE_STRIDE (frame2, 0));
 
 #define CLAMP_LOW(i) (((i)<0) ? (i+2) : (i))
 #define CLAMP_HI(i) (((i)>=(frame_height)) ? (i-2) : (i))
-#define LINE(x,i) ((x) + CLAMP_HI(CLAMP_LOW(i)) * (stride))
+#define LINE(x,i) (((guint8*)GST_VIDEO_FRAME_PLANE_DATA((x),0)) + CLAMP_HI(CLAMP_LOW(i)) * \
+    GST_VIDEO_FRAME_PLANE_STRIDE((x),0))
 #define LINE2(x,i) ((x) ? LINE(x,i) : NULL)
 
   for (i = 0; i < frame_height; i++) {
@@ -365,142 +357,159 @@ gst_deinterlace_simple_method_deinterlace_frame_packed (GstDeinterlaceMethod *
 
     if (!((i & 1) ^ scanlines.bottom_field)) {
       /* copying */
-      scanlines.tp = LINE2 (fieldp, i - 1);
-      scanlines.bp = LINE2 (fieldp, i + 1);
+      scanlines.tp = LINE2 (framep, i - 1);
+      scanlines.bp = LINE2 (framep, i + 1);
 
-      scanlines.tt0 = LINE2 (field0, (i - 2 >= 0) ? i - 2 : i);
-      scanlines.m0 = LINE2 (field0, i);
-      scanlines.bb0 = LINE2 (field0, (i + 2 < frame_height ? i + 2 : i));
+      scanlines.tt0 = LINE2 (frame0, (i - 2 >= 0) ? i - 2 : i);
+      scanlines.m0 = LINE2 (frame0, i);
+      scanlines.bb0 = LINE2 (frame0, (i + 2 < frame_height ? i + 2 : i));
 
-      scanlines.t1 = LINE2 (field1, i - 1);
-      scanlines.b1 = LINE2 (field1, i + 1);
+      scanlines.t1 = LINE2 (frame1, i - 1);
+      scanlines.b1 = LINE2 (frame1, i + 1);
 
-      scanlines.tt2 = LINE2 (field2, (i - 2 >= 0) ? i - 2 : i);
-      scanlines.m2 = LINE2 (field2, i);
-      scanlines.bb2 = LINE2 (field2, (i + 2 < frame_height ? i + 2 : i));
+      scanlines.tt2 = LINE2 (frame2, (i - 2 >= 0) ? i - 2 : i);
+      scanlines.m2 = LINE2 (frame2, i);
+      scanlines.bb2 = LINE2 (frame2, (i + 2 < frame_height ? i + 2 : i));
 
-      self->copy_scanline_packed (self, LINE (dest, i), &scanlines);
+      self->copy_scanline_packed (self, LINE (outframe, i), &scanlines,
+          frame_width);
     } else {
       /* interpolating */
-      scanlines.ttp = LINE2 (fieldp, (i - 2 >= 0) ? i - 2 : i);
-      scanlines.mp = LINE2 (fieldp, i);
-      scanlines.bbp = LINE2 (fieldp, (i + 2 < frame_height ? i + 2 : i));
+      scanlines.ttp = LINE2 (framep, (i - 2 >= 0) ? i - 2 : i);
+      scanlines.mp = LINE2 (framep, i);
+      scanlines.bbp = LINE2 (framep, (i + 2 < frame_height ? i + 2 : i));
 
-      scanlines.t0 = LINE2 (field0, i - 1);
-      scanlines.b0 = LINE2 (field0, i + 1);
+      scanlines.t0 = LINE2 (frame0, i - 1);
+      scanlines.b0 = LINE2 (frame0, i + 1);
 
-      scanlines.tt1 = LINE2 (field1, (i - 2 >= 0) ? i - 2 : i);
-      scanlines.m1 = LINE2 (field1, i);
-      scanlines.bb1 = LINE2 (field1, (i + 2 < frame_height ? i + 2 : i));
+      scanlines.tt1 = LINE2 (frame1, (i - 2 >= 0) ? i - 2 : i);
+      scanlines.m1 = LINE2 (frame1, i);
+      scanlines.bb1 = LINE2 (frame1, (i + 2 < frame_height ? i + 2 : i));
 
-      scanlines.t2 = LINE2 (field2, i - 1);
-      scanlines.b2 = LINE2 (field2, i + 1);
+      scanlines.t2 = LINE2 (frame2, i - 1);
+      scanlines.b2 = LINE2 (frame2, i + 1);
 
-      self->interpolate_scanline_packed (self, LINE (dest, i), &scanlines);
+      self->interpolate_scanline_packed (self, LINE (outframe, i), &scanlines,
+          frame_width);
     }
+#undef LINE
+#undef LINE2
   }
 }
 
 static void
     gst_deinterlace_simple_method_interpolate_scanline_planar_y
     (GstDeinterlaceSimpleMethod * self, guint8 * out,
-    const GstDeinterlaceScanlineData * scanlines)
+    const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->m1, self->parent.row_stride[0]);
+  memcpy (out, scanlines->m1, size);
 }
 
 static void
 gst_deinterlace_simple_method_copy_scanline_planar_y (GstDeinterlaceSimpleMethod
-    * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint
+    size)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[0]);
+  memcpy (out, scanlines->m0, size);
 }
 
 static void
     gst_deinterlace_simple_method_interpolate_scanline_planar_u
     (GstDeinterlaceSimpleMethod * self, guint8 * out,
-    const GstDeinterlaceScanlineData * scanlines)
+    const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->m1, self->parent.row_stride[1]);
+  memcpy (out, scanlines->m1, size);
 }
 
 static void
 gst_deinterlace_simple_method_copy_scanline_planar_u (GstDeinterlaceSimpleMethod
-    * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint
+    size)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[1]);
+  memcpy (out, scanlines->m0, size);
 }
 
 static void
     gst_deinterlace_simple_method_interpolate_scanline_planar_v
     (GstDeinterlaceSimpleMethod * self, guint8 * out,
-    const GstDeinterlaceScanlineData * scanlines)
+    const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->m1, self->parent.row_stride[2]);
+  memcpy (out, scanlines->m1, size);
 }
 
 static void
 gst_deinterlace_simple_method_copy_scanline_planar_v (GstDeinterlaceSimpleMethod
-    * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint
+    size)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[2]);
+  memcpy (out, scanlines->m0, size);
 }
 
 static void
     gst_deinterlace_simple_method_deinterlace_frame_planar_plane
-    (GstDeinterlaceSimpleMethod * self, guint8 * dest, const guint8 * field0,
-    const guint8 * field1, const guint8 * field2, const guint8 * fieldp,
-    guint cur_field_flags,
-    gint plane, GstDeinterlaceSimpleMethodFunction copy_scanline,
+    (GstDeinterlaceSimpleMethod * self, GstVideoFrame * dest,
+    const GstVideoFrame * frame0, const GstVideoFrame * frame1,
+    const GstVideoFrame * frame2, const GstVideoFrame * framep,
+    guint cur_field_flags, gint plane,
+    GstDeinterlaceSimpleMethodFunction copy_scanline,
     GstDeinterlaceSimpleMethodFunction interpolate_scanline)
 {
   GstDeinterlaceScanlineData scanlines;
   gint i;
-  gint frame_height = self->parent.height[plane];
-  gint stride = self->parent.row_stride[plane];
+  gint frame_height, frame_width;
+
+  frame_height = GST_VIDEO_FRAME_COMP_HEIGHT (dest, plane);
+  frame_width = GST_VIDEO_FRAME_COMP_WIDTH (dest, plane) *
+      GST_VIDEO_FRAME_COMP_PSTRIDE (dest, plane);
 
   g_assert (interpolate_scanline != NULL);
   g_assert (copy_scanline != NULL);
 
+#define LINE(x,i) (((guint8*)GST_VIDEO_FRAME_PLANE_DATA((x),plane)) + CLAMP_HI(CLAMP_LOW(i)) * \
+    GST_VIDEO_FRAME_PLANE_STRIDE((x),plane))
+#define LINE2(x,i) ((x) ? LINE(x,i) : NULL)
+
   for (i = 0; i < frame_height; i++) {
     memset (&scanlines, 0, sizeof (scanlines));
     scanlines.bottom_field = (cur_field_flags == PICTURE_INTERLACED_BOTTOM);
 
     if (!((i & 1) ^ scanlines.bottom_field)) {
       /* copying */
-      scanlines.tp = LINE2 (fieldp, i - 1);
-      scanlines.bp = LINE2 (fieldp, i + 1);
+      scanlines.tp = LINE2 (framep, i - 1);
+      scanlines.bp = LINE2 (framep, i + 1);
 
-      scanlines.tt0 = LINE2 (field0, (i - 2 >= 0) ? i - 2 : i);
-      scanlines.m0 = LINE2 (field0, i);
-      scanlines.bb0 = LINE2 (field0, (i + 2 < frame_height ? i + 2 : i));
+      scanlines.tt0 = LINE2 (frame0, (i - 2 >= 0) ? i - 2 : i);
+      scanlines.m0 = LINE2 (frame0, i);
+      scanlines.bb0 = LINE2 (frame0, (i + 2 < frame_height ? i + 2 : i));
 
-      scanlines.t1 = LINE2 (field1, i - 1);
-      scanlines.b1 = LINE2 (field1, i + 1);
+      scanlines.t1 = LINE2 (frame1, i - 1);
+      scanlines.b1 = LINE2 (frame1, i + 1);
 
-      scanlines.tt2 = LINE2 (field2, (i - 2 >= 0) ? i - 2 : i);
-      scanlines.m2 = LINE2 (field2, i);
-      scanlines.bb2 = LINE2 (field2, (i + 2 < frame_height ? i + 2 : i));
+      scanlines.tt2 = LINE2 (frame2, (i - 2 >= 0) ? i - 2 : i);
+      scanlines.m2 = LINE2 (frame2, i);
+      scanlines.bb2 = LINE2 (frame2, (i + 2 < frame_height ? i + 2 : i));
 
-      copy_scanline (self, LINE (dest, i), &scanlines);
+      copy_scanline (self, LINE (dest, i), &scanlines, frame_width);
     } else {
       /* interpolating */
-      scanlines.ttp = LINE2 (fieldp, (i - 2 >= 0) ? i - 2 : i);
-      scanlines.mp = LINE2 (fieldp, i);
-      scanlines.bbp = LINE2 (fieldp, (i + 2 < frame_height ? i + 2 : i));
+      scanlines.ttp = LINE2 (framep, (i - 2 >= 0) ? i - 2 : i);
+      scanlines.mp = LINE2 (framep, i);
+      scanlines.bbp = LINE2 (framep, (i + 2 < frame_height ? i + 2 : i));
 
-      scanlines.t0 = LINE2 (field0, i - 1);
-      scanlines.b0 = LINE2 (field0, i + 1);
+      scanlines.t0 = LINE2 (frame0, i - 1);
+      scanlines.b0 = LINE2 (frame0, i + 1);
 
-      scanlines.tt1 = LINE2 (field1, (i - 2 >= 0) ? i - 2 : i);
-      scanlines.m1 = LINE2 (field1, i);
-      scanlines.bb1 = LINE2 (field1, (i + 2 < frame_height ? i + 2 : i));
+      scanlines.tt1 = LINE2 (frame1, (i - 2 >= 0) ? i - 2 : i);
+      scanlines.m1 = LINE2 (frame1, i);
+      scanlines.bb1 = LINE2 (frame1, (i + 2 < frame_height ? i + 2 : i));
 
-      scanlines.t2 = LINE2 (field2, i - 1);
-      scanlines.b2 = LINE2 (field2, i + 1);
+      scanlines.t2 = LINE2 (frame2, i - 1);
+      scanlines.b2 = LINE2 (frame2, i + 1);
 
-      interpolate_scanline (self, LINE (dest, i), &scanlines);
+      interpolate_scanline (self, LINE (dest, i), &scanlines, frame_width);
     }
+#undef LINE
+#undef LINE2
   }
 }
 
@@ -511,8 +520,7 @@ gst_deinterlace_simple_method_deinterlace_frame_planar (GstDeinterlaceMethod *
 {
   GstDeinterlaceSimpleMethod *self = GST_DEINTERLACE_SIMPLE_METHOD (method);
   GstDeinterlaceMethodClass *dm_class = GST_DEINTERLACE_METHOD_GET_CLASS (self);
-  guint8 *out;
-  const guint8 *field0, *field1, *field2, *fieldp;
+  const GstVideoFrame *frame0, *frame1, *frame2, *framep;
   guint cur_field_flags = history[cur_field_idx].flags;
   gint i;
   GstDeinterlaceSimpleMethodFunction copy_scanline;
@@ -529,30 +537,22 @@ gst_deinterlace_simple_method_deinterlace_frame_planar (GstDeinterlaceMethod *
     copy_scanline = self->copy_scanline_planar[i];
     interpolate_scanline = self->interpolate_scanline_planar[i];
 
-    out = GST_VIDEO_FRAME_PLANE_DATA (outframe, i);
+    framep = (cur_field_idx > 0 ? history[cur_field_idx - 1].frame : NULL);
 
-    fieldp = NULL;
-    if (cur_field_idx > 0) {
-      fieldp = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx - 1].frame, i);
-    }
-
-    field0 = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx].frame, i);
+    frame0 = history[cur_field_idx].frame;
 
     g_assert (dm_class->fields_required <= 4);
 
-    field1 = NULL;
-    if (cur_field_idx + 1 < history_count) {
-      field1 = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx + 1].frame, i);
-    }
-
-    field2 = NULL;
-    if (cur_field_idx + 2 < history_count) {
-      field2 = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx + 2].frame, i);
-    }
+    frame1 =
+        (cur_field_idx + 1 <
+        history_count ? history[cur_field_idx + 1].frame : NULL);
+    frame2 =
+        (cur_field_idx + 2 <
+        history_count ? history[cur_field_idx + 2].frame : NULL);
 
-    gst_deinterlace_simple_method_deinterlace_frame_planar_plane (self, out,
-        field0, field1, field2, fieldp, cur_field_flags, i, copy_scanline,
-        interpolate_scanline);
+    gst_deinterlace_simple_method_deinterlace_frame_planar_plane (self,
+        outframe, frame0, frame1, frame2, framep, cur_field_flags, i,
+        copy_scanline, interpolate_scanline);
   }
 }
 
@@ -563,8 +563,7 @@ gst_deinterlace_simple_method_deinterlace_frame_nv12 (GstDeinterlaceMethod *
 {
   GstDeinterlaceSimpleMethod *self = GST_DEINTERLACE_SIMPLE_METHOD (method);
   GstDeinterlaceMethodClass *dm_class = GST_DEINTERLACE_METHOD_GET_CLASS (self);
-  guint8 *out;
-  const guint8 *field0, *field1, *field2, *fieldp;
+  const GstVideoFrame *frame0, *frame1, *frame2, *framep;
   guint cur_field_flags = history[cur_field_idx].flags;
   gint i;
 
@@ -572,29 +571,21 @@ gst_deinterlace_simple_method_deinterlace_frame_nv12 (GstDeinterlaceMethod *
   g_assert (self->copy_scanline_packed != NULL);
 
   for (i = 0; i < 2; i++) {
-    out = GST_VIDEO_FRAME_PLANE_DATA (outframe, i);
+    framep = (cur_field_idx > 0 ? history[cur_field_idx - 1].frame : NULL);
 
-    fieldp = NULL;
-    if (cur_field_idx > 0) {
-      fieldp = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx - 1].frame, i);
-    }
-
-    field0 = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx].frame, i);
+    frame0 = history[cur_field_idx].frame;
 
     g_assert (dm_class->fields_required <= 4);
 
-    field1 = NULL;
-    if (cur_field_idx + 1 < history_count) {
-      field1 = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx + 1].frame, i);
-    }
-
-    field2 = NULL;
-    if (cur_field_idx + 2 < history_count) {
-      field2 = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx + 2].frame, i);
-    }
+    frame1 =
+        (cur_field_idx + 1 <
+        history_count ? history[cur_field_idx + 1].frame : NULL);
+    frame2 =
+        (cur_field_idx + 2 <
+        history_count ? history[cur_field_idx + 2].frame : NULL);
 
-    gst_deinterlace_simple_method_deinterlace_frame_planar_plane (self, out,
-        field0, field1, field2, fieldp, cur_field_flags, i,
+    gst_deinterlace_simple_method_deinterlace_frame_planar_plane (self,
+        outframe, frame0, frame1, frame2, framep, cur_field_flags, i,
         self->copy_scanline_packed, self->interpolate_scanline_packed);
   }
 }
diff --git a/gst/deinterlace/gstdeinterlacemethod.h b/gst/deinterlace/gstdeinterlacemethod.h
index 16d54ba4b..ee646328e 100644
--- a/gst/deinterlace/gstdeinterlacemethod.h
+++ b/gst/deinterlace/gstdeinterlacemethod.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_DEINTERLACE_METHOD_H__
@@ -68,12 +68,6 @@ struct _GstDeinterlaceMethod {
   GstObject parent;
 
   GstVideoInfo *vinfo;
-  // FIXME - the stuff below can use vinfo and macros
-  gint width[4];
-  gint height[4];
-  gint offset[4];
-  gint row_stride[4];
-  gint pixel_stride[4];
 
   GstDeinterlaceMethodDeinterlaceFunction deinterlace_frame;
 };
@@ -166,7 +160,7 @@ struct _GstDeinterlaceScanlineData {
  * All other values are NULL.
  */
 
-typedef void (*GstDeinterlaceSimpleMethodFunction) (GstDeinterlaceSimpleMethod *self, guint8 *out, const GstDeinterlaceScanlineData *scanlines);
+typedef void (*GstDeinterlaceSimpleMethodFunction) (GstDeinterlaceSimpleMethod *self, guint8 *out, const GstDeinterlaceScanlineData *scanlines, guint size);
 
 struct _GstDeinterlaceSimpleMethod {
   GstDeinterlaceMethod parent;
diff --git a/gst/deinterlace/tvtime-dist.c b/gst/deinterlace/tvtime-dist.c
index 8f2b75f3a..aa4d66e4d 100644
--- a/gst/deinterlace/tvtime-dist.c
+++ b/gst/deinterlace/tvtime-dist.c
@@ -173,7 +173,11 @@ deinterlace_line_vfir (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
   orc_int8 var37;
   orc_int8 var38;
   orc_int8 var39;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
   orc_union16 var40;
+#endif
   orc_int8 var41;
   orc_union16 var42;
   orc_union16 var43;
@@ -261,7 +265,11 @@ _backup_deinterlace_line_vfir (OrcExecutor * ORC_RESTRICT ex)
   orc_int8 var37;
   orc_int8 var38;
   orc_int8 var39;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
   orc_union16 var40;
+#endif
   orc_int8 var41;
   orc_union16 var42;
   orc_union16 var43;
@@ -347,6 +355,20 @@ deinterlace_line_vfir (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 21, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 95, 108,
+        105, 110, 101, 95, 118, 102, 105, 114, 11, 1, 1, 12, 1, 1, 12, 1,
+        1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 14, 4, 2, 0, 0, 0,
+        14, 4, 1, 0, 0, 0, 14, 4, 4, 0, 0, 0, 14, 4, 3, 0,
+        0, 0, 20, 2, 20, 2, 20, 2, 150, 32, 4, 150, 33, 8, 70, 32,
+        32, 33, 150, 33, 5, 150, 34, 7, 70, 33, 33, 34, 93, 33, 33, 16,
+        150, 34, 6, 93, 34, 34, 17, 98, 33, 33, 32, 70, 33, 33, 34, 70,
+        33, 33, 18, 94, 33, 33, 19, 160, 0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_deinterlace_line_vfir);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "deinterlace_line_vfir");
       orc_program_set_backup_function (p, _backup_deinterlace_line_vfir);
@@ -392,6 +414,7 @@ deinterlace_line_vfir (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
           ORC_VAR_D1);
       orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T2,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -494,6 +517,15 @@ deinterlace_line_linear (guint8 * ORC_RESTRICT d1,
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 95, 108,
+        105, 110, 101, 95, 108, 105, 110, 101, 97, 114, 11, 1, 1, 12, 1, 1,
+        12, 1, 1, 39, 0, 4, 5, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_deinterlace_line_linear);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "deinterlace_line_linear");
       orc_program_set_backup_function (p, _backup_deinterlace_line_linear);
@@ -503,6 +535,7 @@ deinterlace_line_linear (guint8 * ORC_RESTRICT d1,
 
       orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -540,7 +573,11 @@ deinterlace_line_linear_blend (guint8 * ORC_RESTRICT d1,
   orc_int8 var35;
   orc_int8 var36;
   orc_int8 var37;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
   orc_union16 var38;
+#endif
   orc_int8 var39;
   orc_union16 var40;
   orc_union16 var41;
@@ -603,7 +640,11 @@ _backup_deinterlace_line_linear_blend (OrcExecutor * ORC_RESTRICT ex)
   orc_int8 var35;
   orc_int8 var36;
   orc_int8 var37;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
   orc_union16 var38;
+#endif
   orc_int8 var39;
   orc_union16 var40;
   orc_union16 var41;
@@ -668,6 +709,20 @@ deinterlace_line_linear_blend (guint8 * ORC_RESTRICT d1,
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 29, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 95, 108,
+        105, 110, 101, 95, 108, 105, 110, 101, 97, 114, 95, 98, 108, 101, 110,
+            100,
+        11, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 14, 4, 2, 0,
+        0, 0, 20, 2, 20, 2, 20, 2, 150, 32, 4, 150, 33, 5, 150, 34,
+        6, 70, 32, 32, 33, 70, 34, 34, 34, 70, 32, 32, 34, 70, 32, 32,
+        16, 94, 32, 32, 16, 160, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_deinterlace_line_linear_blend);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "deinterlace_line_linear_blend");
       orc_program_set_backup_function (p,
@@ -699,6 +754,7 @@ deinterlace_line_linear_blend (guint8 * ORC_RESTRICT d1,
           ORC_VAR_D1);
       orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -736,8 +792,16 @@ deinterlace_line_greedy (orc_uint8 * ORC_RESTRICT d1,
   const orc_int8 *ORC_RESTRICT ptr5;
   const orc_int8 *ORC_RESTRICT ptr6;
   const orc_int8 *ORC_RESTRICT ptr7;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var44;
+#else
   orc_int8 var44;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var45;
+#else
   orc_int8 var45;
+#endif
   orc_int8 var46;
   orc_int8 var47;
   orc_int8 var48;
@@ -843,8 +907,16 @@ _backup_deinterlace_line_greedy (OrcExecutor * ORC_RESTRICT ex)
   const orc_int8 *ORC_RESTRICT ptr5;
   const orc_int8 *ORC_RESTRICT ptr6;
   const orc_int8 *ORC_RESTRICT ptr7;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var44;
+#else
   orc_int8 var44;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var45;
+#else
   orc_int8 var45;
+#endif
   orc_int8 var46;
   orc_int8 var47;
   orc_int8 var48;
@@ -955,6 +1027,23 @@ deinterlace_line_greedy (orc_uint8 * ORC_RESTRICT d1,
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 95, 108,
+        105, 110, 101, 95, 103, 114, 101, 101, 100, 121, 11, 1, 1, 12, 1, 1,
+        12, 1, 1, 12, 1, 1, 12, 1, 1, 14, 4, 128, 0, 0, 0, 16,
+        1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20,
+        1, 20, 1, 20, 1, 20, 1, 20, 1, 43, 32, 4, 43, 33, 7, 43,
+        34, 6, 43, 35, 5, 39, 36, 35, 34, 53, 39, 32, 36, 55, 40, 32,
+        36, 65, 37, 39, 40, 53, 39, 33, 36, 55, 40, 33, 36, 65, 38, 39,
+        40, 68, 37, 37, 16, 68, 38, 38, 16, 41, 40, 37, 38, 36, 39, 33,
+        40, 37, 40, 40, 32, 59, 41, 39, 40, 53, 43, 35, 34, 55, 42, 35,
+        34, 35, 43, 43, 24, 67, 42, 42, 24, 55, 41, 41, 43, 53, 0, 41,
+        42, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_deinterlace_line_greedy);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "deinterlace_line_greedy");
       orc_program_set_backup_function (p, _backup_deinterlace_line_greedy);
@@ -1024,6 +1113,7 @@ deinterlace_line_greedy (orc_uint8 * ORC_RESTRICT d1,
           ORC_VAR_T12, ORC_VAR_D1);
       orc_program_append_2 (p, "maxub", 0, ORC_VAR_D1, ORC_VAR_T10, ORC_VAR_T11,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
diff --git a/gst/deinterlace/tvtime/greedy.c b/gst/deinterlace/tvtime/greedy.c
index 57751326d..804ce8b4f 100644
--- a/gst/deinterlace/tvtime/greedy.c
+++ b/gst/deinterlace/tvtime/greedy.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
@@ -70,71 +70,67 @@ typedef GstDeinterlaceSimpleMethodClass GstDeinterlaceMethodGreedyLClass;
 
 static inline void
 deinterlace_greedy_interpolate_scanline_orc (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   guint max_comb = GST_DEINTERLACE_METHOD_GREEDY_L (self)->max_comb;
 
   if (scanlines->m1 == NULL || scanlines->mp == NULL) {
-    deinterlace_line_linear (out, scanlines->t0, scanlines->b0,
-        self->parent.row_stride[0]);
+    deinterlace_line_linear (out, scanlines->t0, scanlines->b0, size);
   } else {
     deinterlace_line_greedy (out, scanlines->m1, scanlines->t0, scanlines->b0,
-        scanlines->mp ? scanlines->mp : scanlines->m1,
-        max_comb, self->parent.row_stride[0]);
+        scanlines->mp ? scanlines->mp : scanlines->m1, max_comb, size);
   }
 }
 
 static inline void
 deinterlace_greedy_interpolate_scanline_orc_planar_u (GstDeinterlaceSimpleMethod
-    * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint
+    size)
 {
   guint max_comb = GST_DEINTERLACE_METHOD_GREEDY_L (self)->max_comb;
 
   if (scanlines->m1 == NULL || scanlines->mp == NULL) {
-    deinterlace_line_linear (out, scanlines->t0, scanlines->b0,
-        self->parent.row_stride[1]);
+    deinterlace_line_linear (out, scanlines->t0, scanlines->b0, size);
   } else {
     deinterlace_line_greedy (out, scanlines->m1, scanlines->t0, scanlines->b0,
-        scanlines->mp ? scanlines->mp : scanlines->m1,
-        max_comb, self->parent.row_stride[1]);
+        scanlines->mp ? scanlines->mp : scanlines->m1, max_comb, size);
   }
 }
 
 static inline void
 deinterlace_greedy_interpolate_scanline_orc_planar_v (GstDeinterlaceSimpleMethod
-    * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint
+    size)
 {
   guint max_comb = GST_DEINTERLACE_METHOD_GREEDY_L (self)->max_comb;
 
   if (scanlines->m1 == NULL || scanlines->mp == NULL) {
-    deinterlace_line_linear (out, scanlines->t0, scanlines->b0,
-        self->parent.row_stride[2]);
+    deinterlace_line_linear (out, scanlines->t0, scanlines->b0, size);
   } else {
     deinterlace_line_greedy (out, scanlines->m1, scanlines->t0, scanlines->b0,
-        scanlines->mp ? scanlines->mp : scanlines->m1,
-        max_comb, self->parent.row_stride[2]);
+        scanlines->mp ? scanlines->mp : scanlines->m1, max_comb, size);
   }
 }
 
 static void
 deinterlace_greedy_copy_scanline (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[0]);
+  memcpy (out, scanlines->m0, size);
 }
 
 static void
 deinterlace_greedy_copy_scanline_planar_u (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[1]);
+  memcpy (out, scanlines->m0, size);
 }
 
 static void
 deinterlace_greedy_copy_scanline_planar_v (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[2]);
+  memcpy (out, scanlines->m0, size);
 }
 
 G_DEFINE_TYPE (GstDeinterlaceMethodGreedyL, gst_deinterlace_method_greedy_l,
diff --git a/gst/deinterlace/tvtime/greedyh.asm b/gst/deinterlace/tvtime/greedyh.asm
index c710b4a1f..71a03dfc1 100644
--- a/gst/deinterlace/tvtime/greedyh.asm
+++ b/gst/deinterlace/tvtime/greedyh.asm
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License aglong with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/deinterlace/tvtime/greedyh.c b/gst/deinterlace/tvtime/greedyh.c
index c6bcddafd..d769524da 100644
--- a/gst/deinterlace/tvtime/greedyh.c
+++ b/gst/deinterlace/tvtime/greedyh.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
@@ -726,9 +726,9 @@ deinterlace_frame_di_greedyh_packed (GstDeinterlaceMethod * method,
       GST_DEINTERLACE_METHOD_GREEDY_H_GET_CLASS (self);
   gint InfoIsOdd = 0;
   gint Line;
-  gint RowStride = method->row_stride[0];
+  gint RowStride = GST_VIDEO_FRAME_COMP_STRIDE (outframe, 0);
   gint FieldHeight = GST_VIDEO_INFO_HEIGHT (method->vinfo) / 2;
-  gint Pitch = method->row_stride[0] * 2;
+  gint Pitch = RowStride * 2;
   const guint8 *L1;             // ptr to Line1, of 3
   const guint8 *L2;             // ptr to Line2, the weave line
   const guint8 *L3;             // ptr to Line3
@@ -912,9 +912,9 @@ deinterlace_frame_di_greedyh_planar (GstDeinterlaceMethod * method,
 
   for (i = 0; i < 3; i++) {
     InfoIsOdd = (history[cur_field_idx - 1].flags == PICTURE_INTERLACED_BOTTOM);
-    RowStride = method->row_stride[i];
-    FieldHeight = method->height[i] / 2;
-    Pitch = method->row_stride[i] * 2;
+    RowStride = GST_VIDEO_FRAME_PLANE_STRIDE (outframe, i);
+    FieldHeight = GST_VIDEO_FRAME_HEIGHT (outframe) / 2;
+    Pitch = RowStride * 2;
 
     if (i == 0)
       scanline = klass->scanline_planar_y;
diff --git a/gst/deinterlace/tvtime/greedyhmacros.h b/gst/deinterlace/tvtime/greedyhmacros.h
index 6f7be93e7..cfeaff53b 100644
--- a/gst/deinterlace/tvtime/greedyhmacros.h
+++ b/gst/deinterlace/tvtime/greedyhmacros.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/gst/deinterlace/tvtime/linear.c b/gst/deinterlace/tvtime/linear.c
index 05dac451d..9c45353e0 100644
--- a/gst/deinterlace/tvtime/linear.c
+++ b/gst/deinterlace/tvtime/linear.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
@@ -56,34 +56,30 @@ deinterlace_scanline_linear_c (GstDeinterlaceSimpleMethod * self,
 
 static void
 deinterlace_scanline_linear_packed_c (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  deinterlace_scanline_linear_c (self, out, scanlines->t0, scanlines->b0,
-      self->parent.row_stride[0]);
+  deinterlace_scanline_linear_c (self, out, scanlines->t0, scanlines->b0, size);
 }
 
 static void
 deinterlace_scanline_linear_planar_y_c (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  deinterlace_scanline_linear_c (self, out, scanlines->t0, scanlines->b0,
-      self->parent.row_stride[0]);
+  deinterlace_scanline_linear_c (self, out, scanlines->t0, scanlines->b0, size);
 }
 
 static void
 deinterlace_scanline_linear_planar_u_c (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  deinterlace_scanline_linear_c (self, out, scanlines->t0, scanlines->b0,
-      self->parent.row_stride[1]);
+  deinterlace_scanline_linear_c (self, out, scanlines->t0, scanlines->b0, size);
 }
 
 static void
 deinterlace_scanline_linear_planar_v_c (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  deinterlace_scanline_linear_c (self, out, scanlines->t0, scanlines->b0,
-      self->parent.row_stride[2]);
+  deinterlace_scanline_linear_c (self, out, scanlines->t0, scanlines->b0, size);
 }
 
 G_DEFINE_TYPE (GstDeinterlaceMethodLinear, gst_deinterlace_method_linear,
diff --git a/gst/deinterlace/tvtime/linearblend.c b/gst/deinterlace/tvtime/linearblend.c
index 189e1aaa2..c0e4a0b53 100644
--- a/gst/deinterlace/tvtime/linearblend.c
+++ b/gst/deinterlace/tvtime/linearblend.c
@@ -18,8 +18,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
@@ -65,34 +65,34 @@ deinterlace_scanline_linear_blend_c (GstDeinterlaceSimpleMethod * self,
 
 static void
 deinterlace_scanline_linear_blend_packed_c (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   deinterlace_scanline_linear_blend_c (self, out, scanlines->t0, scanlines->b0,
-      scanlines->m1, self->parent.row_stride[0]);
+      scanlines->m1, size);
 }
 
 static void
 deinterlace_scanline_linear_blend_planar_y_c (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   deinterlace_scanline_linear_blend_c (self, out, scanlines->t0, scanlines->b0,
-      scanlines->m1, self->parent.row_stride[0]);
+      scanlines->m1, size);
 }
 
 static void
 deinterlace_scanline_linear_blend_planar_u_c (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   deinterlace_scanline_linear_blend_c (self, out, scanlines->t0, scanlines->b0,
-      scanlines->m1, self->parent.row_stride[1]);
+      scanlines->m1, size);
 }
 
 static void
 deinterlace_scanline_linear_blend_planar_v_c (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   deinterlace_scanline_linear_blend_c (self, out, scanlines->t0, scanlines->b0,
-      scanlines->m1, self->parent.row_stride[2]);
+      scanlines->m1, size);
 }
 
 static inline void
@@ -109,34 +109,37 @@ deinterlace_scanline_linear_blend2_c (GstDeinterlaceSimpleMethod * self,
 
 static void
 deinterlace_scanline_linear_blend2_packed_c (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   deinterlace_scanline_linear_blend2_c (self, out, scanlines->m0, scanlines->t1,
-      scanlines->b1, self->parent.row_stride[0]);
+      scanlines->b1, size);
 }
 
 static void
 deinterlace_scanline_linear_blend2_planar_y_c (GstDeinterlaceSimpleMethod *
-    self, guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    self, guint8 * out, const GstDeinterlaceScanlineData * scanlines,
+    guint size)
 {
   deinterlace_scanline_linear_blend2_c (self, out, scanlines->m0, scanlines->t1,
-      scanlines->b1, self->parent.row_stride[0]);
+      scanlines->b1, size);
 }
 
 static void
 deinterlace_scanline_linear_blend2_planar_u_c (GstDeinterlaceSimpleMethod *
-    self, guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    self, guint8 * out, const GstDeinterlaceScanlineData * scanlines,
+    guint size)
 {
   deinterlace_scanline_linear_blend2_c (self, out, scanlines->m0, scanlines->t1,
-      scanlines->b1, self->parent.row_stride[1]);
+      scanlines->b1, size);
 }
 
 static void
 deinterlace_scanline_linear_blend2_planar_v_c (GstDeinterlaceSimpleMethod *
-    self, guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    self, guint8 * out, const GstDeinterlaceScanlineData * scanlines,
+    guint size)
 {
   deinterlace_scanline_linear_blend2_c (self, out, scanlines->m0, scanlines->t1,
-      scanlines->b1, self->parent.row_stride[2]);
+      scanlines->b1, size);
 }
 
 G_DEFINE_TYPE (GstDeinterlaceMethodLinearBlend,
diff --git a/gst/deinterlace/tvtime/plugins.h b/gst/deinterlace/tvtime/plugins.h
index 8fb01af5c..58085b620 100644
--- a/gst/deinterlace/tvtime/plugins.h
+++ b/gst/deinterlace/tvtime/plugins.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/gst/deinterlace/tvtime/scalerbob.c b/gst/deinterlace/tvtime/scalerbob.c
index adc285aef..ed20bd4c3 100644
--- a/gst/deinterlace/tvtime/scalerbob.c
+++ b/gst/deinterlace/tvtime/scalerbob.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -40,30 +40,30 @@ typedef GstDeinterlaceSimpleMethodClass GstDeinterlaceMethodScalerBobClass;
 
 static void
 deinterlace_scanline_scaler_bob_packed (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->t0, self->parent.row_stride[0]);
+  memcpy (out, scanlines->t0, size);
 }
 
 static void
 deinterlace_scanline_scaler_bob_planar_y (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->t0, self->parent.row_stride[0]);
+  memcpy (out, scanlines->t0, size);
 }
 
 static void
 deinterlace_scanline_scaler_bob_planar_u (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->t0, self->parent.row_stride[1]);
+  memcpy (out, scanlines->t0, size);
 }
 
 static void
 deinterlace_scanline_scaler_bob_planar_v (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->t0, self->parent.row_stride[2]);
+  memcpy (out, scanlines->t0, size);
 }
 
 G_DEFINE_TYPE (GstDeinterlaceMethodScalerBob, gst_deinterlace_method_scaler_bob,
diff --git a/gst/deinterlace/tvtime/tomsmocomp.c b/gst/deinterlace/tvtime/tomsmocomp.c
index 280abe827..003e72b06 100644
--- a/gst/deinterlace/tvtime/tomsmocomp.c
+++ b/gst/deinterlace/tvtime/tomsmocomp.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/gst/deinterlace/tvtime/tomsmocomp/TomsMoCompAll.inc b/gst/deinterlace/tvtime/tomsmocomp/TomsMoCompAll.inc
index 9dd06805a..be58bba9f 100644
--- a/gst/deinterlace/tvtime/tomsmocomp/TomsMoCompAll.inc
+++ b/gst/deinterlace/tvtime/tomsmocomp/TomsMoCompAll.inc
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
@@ -95,23 +95,24 @@ static void FUNCT_NAME(GstDeinterlaceMethod *d_method,
   }
 
   /* double stride do address just every odd/even scanline */
-  src_pitch = self->parent.row_stride[0]*2;
-  dst_pitch = self->parent.row_stride[0];
-  rowsize   = self->parent.row_stride[0];
+  src_pitch = GST_VIDEO_FRAME_PLANE_STRIDE (outframe, 0) * 2;
+  dst_pitch = GST_VIDEO_FRAME_PLANE_STRIDE (outframe, 0);
+  rowsize = GST_VIDEO_FRAME_PLANE_STRIDE (outframe, 0);
+
   FldHeight = GST_VIDEO_INFO_HEIGHT (self->parent.vinfo) / 2;
 
   pCopySrc   = GST_VIDEO_FRAME_PLANE_DATA (history[history_count-1].frame, 0);
   if (history[history_count - 1].flags & PICTURE_INTERLACED_BOTTOM)
-    pCopySrc += rowsize;
+    pCopySrc += GST_VIDEO_FRAME_PLANE_STRIDE (history[history_count-1].frame, 0);
   pCopySrcP  = GST_VIDEO_FRAME_PLANE_DATA (history[history_count-3].frame, 0);
   if (history[history_count - 3].flags & PICTURE_INTERLACED_BOTTOM)
-    pCopySrcP += rowsize;
+    pCopySrcP += GST_VIDEO_FRAME_PLANE_STRIDE (history[history_count-3].frame, 0);
   pWeaveSrc  = GST_VIDEO_FRAME_PLANE_DATA (history[history_count-2].frame, 0);
   if (history[history_count - 2].flags & PICTURE_INTERLACED_BOTTOM)
-    pWeaveSrc += rowsize;
+    pWeaveSrc += GST_VIDEO_FRAME_PLANE_STRIDE (history[history_count-2].frame, 0);
   pWeaveSrcP = GST_VIDEO_FRAME_PLANE_DATA (history[history_count-4].frame, 0);
   if (history[history_count - 4].flags & PICTURE_INTERLACED_BOTTOM)
-    pWeaveSrcP += rowsize;
+    pWeaveSrcP += GST_VIDEO_FRAME_PLANE_STRIDE (history[history_count-4].frame, 0);
 
   /* use bottom field and interlace top field */
   if (history[history_count-2].flags == PICTURE_INTERLACED_BOTTOM) {
diff --git a/gst/deinterlace/tvtime/vfir.c b/gst/deinterlace/tvtime/vfir.c
index 6442a82f8..a0618952c 100644
--- a/gst/deinterlace/tvtime/vfir.c
+++ b/gst/deinterlace/tvtime/vfir.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
@@ -77,56 +77,52 @@ deinterlace_c (guint8 * dst, const guint8 * lum_m4, const guint8 * lum_m3,
 
 static void
 deinterlace_line_packed_c (GstDeinterlaceSimpleMethod * self, guint8 * dst,
-    const GstDeinterlaceScanlineData * scanlines)
+    const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   const guint8 *lum_m4 = scanlines->tt1;
   const guint8 *lum_m3 = scanlines->t0;
   const guint8 *lum_m2 = scanlines->m1;
   const guint8 *lum_m1 = scanlines->b0;
   const guint8 *lum = scanlines->bb1;
-  gint size = self->parent.row_stride[0];
 
   deinterlace_c (dst, lum_m4, lum_m3, lum_m2, lum_m1, lum, size);
 }
 
 static void
 deinterlace_line_planar_y_c (GstDeinterlaceSimpleMethod * self, guint8 * dst,
-    const GstDeinterlaceScanlineData * scanlines)
+    const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   const guint8 *lum_m4 = scanlines->tt1;
   const guint8 *lum_m3 = scanlines->t0;
   const guint8 *lum_m2 = scanlines->m1;
   const guint8 *lum_m1 = scanlines->b0;
   const guint8 *lum = scanlines->bb1;
-  gint size = self->parent.row_stride[0];
 
   deinterlace_c (dst, lum_m4, lum_m3, lum_m2, lum_m1, lum, size);
 }
 
 static void
 deinterlace_line_planar_u_c (GstDeinterlaceSimpleMethod * self, guint8 * dst,
-    const GstDeinterlaceScanlineData * scanlines)
+    const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   const guint8 *lum_m4 = scanlines->tt1;
   const guint8 *lum_m3 = scanlines->t0;
   const guint8 *lum_m2 = scanlines->m1;
   const guint8 *lum_m1 = scanlines->b0;
   const guint8 *lum = scanlines->bb1;
-  gint size = self->parent.row_stride[1];
 
   deinterlace_c (dst, lum_m4, lum_m3, lum_m2, lum_m1, lum, size);
 }
 
 static void
 deinterlace_line_planar_v_c (GstDeinterlaceSimpleMethod * self, guint8 * dst,
-    const GstDeinterlaceScanlineData * scanlines)
+    const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   const guint8 *lum_m4 = scanlines->tt1;
   const guint8 *lum_m3 = scanlines->t0;
   const guint8 *lum_m2 = scanlines->m1;
   const guint8 *lum_m1 = scanlines->b0;
   const guint8 *lum = scanlines->bb1;
-  gint size = self->parent.row_stride[2];
 
   deinterlace_c (dst, lum_m4, lum_m3, lum_m2, lum_m1, lum, size);
 }
diff --git a/gst/deinterlace/tvtime/weave.c b/gst/deinterlace/tvtime/weave.c
index 1501b1a2b..804c889f0 100644
--- a/gst/deinterlace/tvtime/weave.c
+++ b/gst/deinterlace/tvtime/weave.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
@@ -46,74 +46,74 @@ typedef GstDeinterlaceSimpleMethodClass GstDeinterlaceMethodWeaveClass;
 
 static void
 deinterlace_scanline_weave_packed (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   if (scanlines->m1 == NULL) {
-    memcpy (out, scanlines->t0, self->parent.row_stride[0]);
+    memcpy (out, scanlines->t0, size);
   } else {
-    memcpy (out, scanlines->m1, self->parent.row_stride[0]);
+    memcpy (out, scanlines->m1, size);
   }
 }
 
 static void
 deinterlace_scanline_weave_planar_y (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   if (scanlines->m1 == NULL) {
-    memcpy (out, scanlines->t0, self->parent.row_stride[0]);
+    memcpy (out, scanlines->t0, size);
   } else {
-    memcpy (out, scanlines->m1, self->parent.row_stride[0]);
+    memcpy (out, scanlines->m1, size);
   }
 }
 
 static void
 deinterlace_scanline_weave_planar_u (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   if (scanlines->m1 == NULL) {
-    memcpy (out, scanlines->t0, self->parent.row_stride[1]);
+    memcpy (out, scanlines->t0, size);
   } else {
-    memcpy (out, scanlines->m1, self->parent.row_stride[1]);
+    memcpy (out, scanlines->m1, size);
   }
 }
 
 static void
 deinterlace_scanline_weave_planar_v (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   if (scanlines->m1 == NULL) {
-    memcpy (out, scanlines->t0, self->parent.row_stride[2]);
+    memcpy (out, scanlines->t0, size);
   } else {
-    memcpy (out, scanlines->m1, self->parent.row_stride[2]);
+    memcpy (out, scanlines->m1, size);
   }
 }
 
 static void
 copy_scanline_packed (GstDeinterlaceSimpleMethod * self, guint8 * out,
-    const GstDeinterlaceScanlineData * scanlines)
+    const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[0]);
+  memcpy (out, scanlines->m0, size);
 }
 
 static void
 copy_scanline_planar_y (GstDeinterlaceSimpleMethod * self, guint8 * out,
-    const GstDeinterlaceScanlineData * scanlines)
+    const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[0]);
+  memcpy (out, scanlines->m0, size);
 }
 
 static void
 copy_scanline_planar_u (GstDeinterlaceSimpleMethod * self, guint8 * out,
-    const GstDeinterlaceScanlineData * scanlines)
+    const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[1]);
+  memcpy (out, scanlines->m0, size);
 }
 
 static void
 copy_scanline_planar_v (GstDeinterlaceSimpleMethod * self, guint8 * out,
-    const GstDeinterlaceScanlineData * scanlines)
+    const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[2]);
+  memcpy (out, scanlines->m0, size);
 }
 
 G_DEFINE_TYPE (GstDeinterlaceMethodWeave, gst_deinterlace_method_weave,
diff --git a/gst/deinterlace/tvtime/weavebff.c b/gst/deinterlace/tvtime/weavebff.c
index b11395cd8..7424e96fe 100644
--- a/gst/deinterlace/tvtime/weavebff.c
+++ b/gst/deinterlace/tvtime/weavebff.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
@@ -46,74 +46,74 @@ typedef GstDeinterlaceSimpleMethodClass GstDeinterlaceMethodWeaveBFFClass;
 
 static void
 deinterlace_scanline_weave_packed (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   if (scanlines->m1 == NULL) {
-    memcpy (out, scanlines->b0, self->parent.row_stride[0]);
+    memcpy (out, scanlines->b0, size);
   } else {
-    memcpy (out, scanlines->m1, self->parent.row_stride[0]);
+    memcpy (out, scanlines->m1, size);
   }
 }
 
 static void
 deinterlace_scanline_weave_planar_y (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   if (scanlines->m1 == NULL) {
-    memcpy (out, scanlines->b0, self->parent.row_stride[0]);
+    memcpy (out, scanlines->b0, size);
   } else {
-    memcpy (out, scanlines->m1, self->parent.row_stride[0]);
+    memcpy (out, scanlines->m1, size);
   }
 }
 
 static void
 deinterlace_scanline_weave_planar_u (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   if (scanlines->m1 == NULL) {
-    memcpy (out, scanlines->b0, self->parent.row_stride[1]);
+    memcpy (out, scanlines->b0, size);
   } else {
-    memcpy (out, scanlines->m1, self->parent.row_stride[1]);
+    memcpy (out, scanlines->m1, size);
   }
 }
 
 static void
 deinterlace_scanline_weave_planar_v (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   if (scanlines->m1 == NULL) {
-    memcpy (out, scanlines->b0, self->parent.row_stride[2]);
+    memcpy (out, scanlines->b0, size);
   } else {
-    memcpy (out, scanlines->m1, self->parent.row_stride[2]);
+    memcpy (out, scanlines->m1, size);
   }
 }
 
 static void
 copy_scanline_packed (GstDeinterlaceSimpleMethod * self, guint8 * out,
-    const GstDeinterlaceScanlineData * scanlines)
+    const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[0]);
+  memcpy (out, scanlines->m0, size);
 }
 
 static void
 copy_scanline_planar_y (GstDeinterlaceSimpleMethod * self, guint8 * out,
-    const GstDeinterlaceScanlineData * scanlines)
+    const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[0]);
+  memcpy (out, scanlines->m0, size);
 }
 
 static void
 copy_scanline_planar_u (GstDeinterlaceSimpleMethod * self, guint8 * out,
-    const GstDeinterlaceScanlineData * scanlines)
+    const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[1]);
+  memcpy (out, scanlines->m0, size);
 }
 
 static void
 copy_scanline_planar_v (GstDeinterlaceSimpleMethod * self, guint8 * out,
-    const GstDeinterlaceScanlineData * scanlines)
+    const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[2]);
+  memcpy (out, scanlines->m0, size);
 }
 
 G_DEFINE_TYPE (GstDeinterlaceMethodWeaveBFF, gst_deinterlace_method_weave_bff,
diff --git a/gst/deinterlace/tvtime/weavetff.c b/gst/deinterlace/tvtime/weavetff.c
index 3c60613dd..f33bb2e55 100644
--- a/gst/deinterlace/tvtime/weavetff.c
+++ b/gst/deinterlace/tvtime/weavetff.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
@@ -47,74 +47,74 @@ typedef GstDeinterlaceSimpleMethodClass GstDeinterlaceMethodWeaveTFFClass;
 
 static void
 deinterlace_scanline_weave_packed (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   if (scanlines->m1 == NULL) {
-    memcpy (out, scanlines->t0, self->parent.row_stride[0]);
+    memcpy (out, scanlines->t0, size);
   } else {
-    memcpy (out, scanlines->m1, self->parent.row_stride[0]);
+    memcpy (out, scanlines->m1, size);
   }
 }
 
 static void
 deinterlace_scanline_weave_planar_y (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   if (scanlines->m1 == NULL) {
-    memcpy (out, scanlines->t0, self->parent.row_stride[0]);
+    memcpy (out, scanlines->t0, size);
   } else {
-    memcpy (out, scanlines->m1, self->parent.row_stride[0]);
+    memcpy (out, scanlines->m1, size);
   }
 }
 
 static void
 deinterlace_scanline_weave_planar_u (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   if (scanlines->m1 == NULL) {
-    memcpy (out, scanlines->t0, self->parent.row_stride[1]);
+    memcpy (out, scanlines->t0, size);
   } else {
-    memcpy (out, scanlines->m1, self->parent.row_stride[1]);
+    memcpy (out, scanlines->m1, size);
   }
 }
 
 static void
 deinterlace_scanline_weave_planar_v (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
   if (scanlines->m1 == NULL) {
-    memcpy (out, scanlines->t0, self->parent.row_stride[2]);
+    memcpy (out, scanlines->t0, size);
   } else {
-    memcpy (out, scanlines->m1, self->parent.row_stride[2]);
+    memcpy (out, scanlines->m1, size);
   }
 }
 
 static void
 copy_scanline_packed (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[0]);
+  memcpy (out, scanlines->m0, size);
 }
 
 static void
 copy_scanline_planar_y (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[0]);
+  memcpy (out, scanlines->m0, size);
 }
 
 static void
 copy_scanline_planar_u (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[1]);
+  memcpy (out, scanlines->m0, size);
 }
 
 static void
 copy_scanline_planar_v (GstDeinterlaceSimpleMethod * self,
-    guint8 * out, const GstDeinterlaceScanlineData * scanlines)
+    guint8 * out, const GstDeinterlaceScanlineData * scanlines, guint size)
 {
-  memcpy (out, scanlines->m0, self->parent.row_stride[2]);
+  memcpy (out, scanlines->m0, size);
 }
 
 G_DEFINE_TYPE (GstDeinterlaceMethodWeaveTFF, gst_deinterlace_method_weave_tff,
diff --git a/gst/deinterlace/tvtime/x86-64_macros.inc b/gst/deinterlace/tvtime/x86-64_macros.inc
index 2e9df7586..312e3c749 100644
--- a/gst/deinterlace/tvtime/x86-64_macros.inc
+++ b/gst/deinterlace/tvtime/x86-64_macros.inc
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/gst/dtmf/Makefile.am b/gst/dtmf/Makefile.am
new file mode 100644
index 000000000..f5d36edd5
--- /dev/null
+++ b/gst/dtmf/Makefile.am
@@ -0,0 +1,31 @@
+plugin_LTLIBRARIES = libgstdtmf.la
+
+libgstdtmf_la_SOURCES = gstdtmfsrc.c \
+                        gstrtpdtmfsrc.c \
+                        gstrtpdtmfdepay.c \
+                        gstdtmf.c
+
+noinst_HEADERS = gstdtmfsrc.h \
+                 gstrtpdtmfsrc.h \
+                 gstrtpdtmfdepay.h \
+                 gstdtmfcommon.h
+
+libgstdtmf_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+libgstdtmf_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-@GST_API_VERSION@ \
+	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
+libgstdtmf_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
+libgstdtmf_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
+
+Android.mk: Makefile.am $(BUILT_SOURCES)
+	androgenizer \
+	-:PROJECT libgstdtmf -:SHARED libgstdtmf \
+	 -:TAGS eng debug \
+         -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
+	 -:SOURCES $(libgstdtmf_la_SOURCES) \
+	 -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdtmf_la_CFLAGS) \
+	 -:LDFLAGS $(libgstdtmf_la_LDFLAGS) \
+	           $(libgstdtmf_la_LIBADD) \
+	           -ldl \
+	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
+		       LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \
+	> $@
diff --git a/gst/dtmf/Makefile.in b/gst/dtmf/Makefile.in
new file mode 100644
index 000000000..9b7b4eb2c
--- /dev/null
+++ b/gst/dtmf/Makefile.in
@@ -0,0 +1,940 @@
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 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@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+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@
+target_triplet = @target@
+subdir = gst/dtmf
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
+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-gcc-inline-assembly.m4 \
+	$(top_srcdir)/common/m4/as-libtool.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-dowhile.m4 \
+	$(top_srcdir)/common/m4/gst-error.m4 \
+	$(top_srcdir)/common/m4/gst-feature.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/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \
+	$(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/gettext.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/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/po.m4 $(top_srcdir)/m4/progtest.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 =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+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 =
+libgstdtmf_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+am_libgstdtmf_la_OBJECTS = libgstdtmf_la-gstdtmfsrc.lo \
+	libgstdtmf_la-gstrtpdtmfsrc.lo \
+	libgstdtmf_la-gstrtpdtmfdepay.lo libgstdtmf_la-gstdtmf.lo
+libgstdtmf_la_OBJECTS = $(am_libgstdtmf_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+libgstdtmf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+	$(CCLD) $(libgstdtmf_la_CFLAGS) $(CFLAGS) \
+	$(libgstdtmf_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+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_CC_1 = 
+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_CCLD_1 = 
+SOURCES = $(libgstdtmf_la_SOURCES)
+DIST_SOURCES = $(libgstdtmf_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+AALIB_CFLAGS = @AALIB_CFLAGS@
+AALIB_CONFIG = @AALIB_CONFIG@
+AALIB_LIBS = @AALIB_LIBS@
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BZ2_LIBS = @BZ2_LIBS@
+CAIRO_CFLAGS = @CAIRO_CFLAGS@
+CAIRO_LIBS = @CAIRO_LIBS@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+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@
+DIRECTSOUND_CFLAGS = @DIRECTSOUND_CFLAGS@
+DIRECTSOUND_LDFLAGS = @DIRECTSOUND_LDFLAGS@
+DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+DV1394_CFLAGS = @DV1394_CFLAGS@
+DV1394_LIBS = @DV1394_LIBS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ERROR_CFLAGS = @ERROR_CFLAGS@
+ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
+ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
+EXEEXT = @EXEEXT@
+FFLAGS = @FFLAGS@
+FGREP = @FGREP@
+FLAC_CFLAGS = @FLAC_CFLAGS@
+FLAC_LIBS = @FLAC_LIBS@
+GCOV = @GCOV@
+GCOV_CFLAGS = @GCOV_CFLAGS@
+GCOV_LIBS = @GCOV_LIBS@
+GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@
+GDK_PIXBUF_LIBS = @GDK_PIXBUF_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_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GLIB_PREFIX = @GLIB_PREFIX@
+GLIB_REQ = @GLIB_REQ@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GREP = @GREP@
+GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
+GSTPB_PREFIX = @GSTPB_PREFIX@
+GST_AGE = @GST_AGE@
+GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
+GST_API_VERSION = @GST_API_VERSION@
+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_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
+GST_LIBS = @GST_LIBS@
+GST_LIBVERSION = @GST_LIBVERSION@
+GST_LICENSE = @GST_LICENSE@
+GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
+GST_OBJCFLAGS = @GST_OBJCFLAGS@
+GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
+GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
+GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
+GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
+GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
+GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
+GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
+GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@
+GST_PLUGINS_DIR = @GST_PLUGINS_DIR@
+GST_PLUGINS_NONPORTED = @GST_PLUGINS_NONPORTED@
+GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
+GST_PLUGIN_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
+GST_PREFIX = @GST_PREFIX@
+GST_REVISION = @GST_REVISION@
+GST_TOOLS_DIR = @GST_TOOLS_DIR@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+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_AVC1394 = @HAVE_AVC1394@
+HAVE_BZ2 = @HAVE_BZ2@
+HAVE_CXX = @HAVE_CXX@
+HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_ROM1394 = @HAVE_ROM1394@
+HAVE_SPEEX = @HAVE_SPEEX@
+HAVE_X = @HAVE_X@
+HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
+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@
+JACK_0_120_1_CFLAGS = @JACK_0_120_1_CFLAGS@
+JACK_0_120_1_LIBS = @JACK_0_120_1_LIBS@
+JACK_1_9_7_CFLAGS = @JACK_1_9_7_CFLAGS@
+JACK_1_9_7_LIBS = @JACK_1_9_7_LIBS@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JPEG_LIBS = @JPEG_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBCACA_CFLAGS = @LIBCACA_CFLAGS@
+LIBCACA_LIBS = @LIBCACA_LIBS@
+LIBDV_CFLAGS = @LIBDV_CFLAGS@
+LIBDV_LIBS = @LIBDV_LIBS@
+LIBICONV = @LIBICONV@
+LIBIEC61883_CFLAGS = @LIBIEC61883_CFLAGS@
+LIBIEC61883_LIBS = @LIBIEC61883_LIBS@
+LIBINTL = @LIBINTL@
+LIBM = @LIBM@
+LIBOBJS = @LIBOBJS@
+LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
+LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
+LIBV4L2_LIBS = @LIBV4L2_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@
+OBJC = @OBJC@
+OBJCDEPMODE = @OBJCDEPMODE@
+OBJCFLAGS = @OBJCFLAGS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+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@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PLUGINDIR = @PLUGINDIR@
+POSUB = @POSUB@
+PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PULSE_CFLAGS = @PULSE_CFLAGS@
+PULSE_LIBS = @PULSE_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RAW1394_CFLAGS = @RAW1394_CFLAGS@
+RAW1394_LIBS = @RAW1394_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SHOUT2_CFLAGS = @SHOUT2_CFLAGS@
+SHOUT2_LIBS = @SHOUT2_LIBS@
+SOUP_CFLAGS = @SOUP_CFLAGS@
+SOUP_LIBS = @SOUP_LIBS@
+SPEEX_CFLAGS = @SPEEX_CFLAGS@
+SPEEX_LIBS = @SPEEX_LIBS@
+STRIP = @STRIP@
+TAGLIB_CFLAGS = @TAGLIB_CFLAGS@
+TAGLIB_CXXFLAGS = @TAGLIB_CXXFLAGS@
+TAGLIB_LIBS = @TAGLIB_LIBS@
+USE_NLS = @USE_NLS@
+VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
+VALGRIND_LIBS = @VALGRIND_LIBS@
+VALGRIND_PATH = @VALGRIND_PATH@
+VERSION = @VERSION@
+VPX_CFLAGS = @VPX_CFLAGS@
+VPX_LIBS = @VPX_LIBS@
+WARNING_CFLAGS = @WARNING_CFLAGS@
+WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
+WARNING_OBJCFLAGS = @WARNING_OBJCFLAGS@
+WAVPACK_CFLAGS = @WAVPACK_CFLAGS@
+WAVPACK_LIBS = @WAVPACK_LIBS@
+XDAMAGE_CFLAGS = @XDAMAGE_CFLAGS@
+XDAMAGE_LIBS = @XDAMAGE_LIBS@
+XFIXES_CFLAGS = @XFIXES_CFLAGS@
+XFIXES_LIBS = @XFIXES_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_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@
+ac_ct_OBJC = @ac_ct_OBJC@
+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 = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+plugin_LTLIBRARIES = libgstdtmf.la
+libgstdtmf_la_SOURCES = gstdtmfsrc.c \
+                        gstrtpdtmfsrc.c \
+                        gstrtpdtmfdepay.c \
+                        gstdtmf.c
+
+noinst_HEADERS = gstdtmfsrc.h \
+                 gstrtpdtmfsrc.h \
+                 gstrtpdtmfdepay.h \
+                 gstdtmfcommon.h
+
+libgstdtmf_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+libgstdtmf_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-@GST_API_VERSION@ \
+	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
+
+libgstdtmf_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
+libgstdtmf_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
+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 gst/dtmf/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu gst/dtmf/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):
+
+install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
+	@$(NORMAL_INSTALL)
+	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
+	list2=; for p in $$list; do \
+	  if test -f $$p; then \
+	    list2="$$list2 $$p"; \
+	  else :; fi; \
+	done; \
+	test -z "$$list2" || { \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
+	}
+
+uninstall-pluginLTLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \
+	done
+
+clean-pluginLTLIBRARIES:
+	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
+libgstdtmf.la: $(libgstdtmf_la_OBJECTS) $(libgstdtmf_la_DEPENDENCIES) $(EXTRA_libgstdtmf_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libgstdtmf_la_LINK) -rpath $(plugindir) $(libgstdtmf_la_OBJECTS) $(libgstdtmf_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdtmf_la-gstdtmf.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdtmf_la-gstdtmfsrc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdtmf_la-gstrtpdtmfdepay.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdtmf_la-gstrtpdtmfsrc.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
+@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 $@ $<
+
+libgstdtmf_la-gstdtmfsrc.lo: gstdtmfsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -MT libgstdtmf_la-gstdtmfsrc.lo -MD -MP -MF $(DEPDIR)/libgstdtmf_la-gstdtmfsrc.Tpo -c -o libgstdtmf_la-gstdtmfsrc.lo `test -f 'gstdtmfsrc.c' || echo '$(srcdir)/'`gstdtmfsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdtmf_la-gstdtmfsrc.Tpo $(DEPDIR)/libgstdtmf_la-gstdtmfsrc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdtmfsrc.c' object='libgstdtmf_la-gstdtmfsrc.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 $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstdtmfsrc.lo `test -f 'gstdtmfsrc.c' || echo '$(srcdir)/'`gstdtmfsrc.c
+
+libgstdtmf_la-gstrtpdtmfsrc.lo: gstrtpdtmfsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -MT libgstdtmf_la-gstrtpdtmfsrc.lo -MD -MP -MF $(DEPDIR)/libgstdtmf_la-gstrtpdtmfsrc.Tpo -c -o libgstdtmf_la-gstrtpdtmfsrc.lo `test -f 'gstrtpdtmfsrc.c' || echo '$(srcdir)/'`gstrtpdtmfsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdtmf_la-gstrtpdtmfsrc.Tpo $(DEPDIR)/libgstdtmf_la-gstrtpdtmfsrc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpdtmfsrc.c' object='libgstdtmf_la-gstrtpdtmfsrc.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 $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstrtpdtmfsrc.lo `test -f 'gstrtpdtmfsrc.c' || echo '$(srcdir)/'`gstrtpdtmfsrc.c
+
+libgstdtmf_la-gstrtpdtmfdepay.lo: gstrtpdtmfdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -MT libgstdtmf_la-gstrtpdtmfdepay.lo -MD -MP -MF $(DEPDIR)/libgstdtmf_la-gstrtpdtmfdepay.Tpo -c -o libgstdtmf_la-gstrtpdtmfdepay.lo `test -f 'gstrtpdtmfdepay.c' || echo '$(srcdir)/'`gstrtpdtmfdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdtmf_la-gstrtpdtmfdepay.Tpo $(DEPDIR)/libgstdtmf_la-gstrtpdtmfdepay.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpdtmfdepay.c' object='libgstdtmf_la-gstrtpdtmfdepay.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 $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstrtpdtmfdepay.lo `test -f 'gstrtpdtmfdepay.c' || echo '$(srcdir)/'`gstrtpdtmfdepay.c
+
+libgstdtmf_la-gstdtmf.lo: gstdtmf.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -MT libgstdtmf_la-gstdtmf.lo -MD -MP -MF $(DEPDIR)/libgstdtmf_la-gstdtmf.Tpo -c -o libgstdtmf_la-gstdtmf.lo `test -f 'gstdtmf.c' || echo '$(srcdir)/'`gstdtmf.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdtmf_la-gstdtmf.Tpo $(DEPDIR)/libgstdtmf_la-gstdtmf.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdtmf.c' object='libgstdtmf_la-gstdtmf.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 $(libgstdtmf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtmf_la_CFLAGS) $(CFLAGS) -c -o libgstdtmf_la-gstdtmf.lo `test -f 'gstdtmf.c' || echo '$(srcdir)/'`gstdtmf.c
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	set x; \
+	here=`pwd`; \
+	$(am__define_uniq_tagged_files); \
+	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-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
+	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"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
+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 $(LTLIBRARIES) $(HEADERS)
+installdirs:
+	for dir in "$(DESTDIR)$(plugindir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+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-pluginLTLIBRARIES \
+	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-pluginLTLIBRARIES
+
+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: uninstall-pluginLTLIBRARIES
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
+
+
+Android.mk: Makefile.am $(BUILT_SOURCES)
+	androgenizer \
+	-:PROJECT libgstdtmf -:SHARED libgstdtmf \
+	 -:TAGS eng debug \
+         -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
+	 -:SOURCES $(libgstdtmf_la_SOURCES) \
+	 -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdtmf_la_CFLAGS) \
+	 -:LDFLAGS $(libgstdtmf_la_LDFLAGS) \
+	           $(libgstdtmf_la_LIBADD) \
+	           -ldl \
+	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
+		       LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \
+	> $@
+
+# 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/gst/dtmf/gstdtmf.c b/gst/dtmf/gstdtmf.c
new file mode 100644
index 000000000..1dc400149
--- /dev/null
+++ b/gst/dtmf/gstdtmf.c
@@ -0,0 +1,45 @@
+/* GStreamer DTMF plugin
+ *
+ * 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gstdtmfsrc.h"
+#include "gstrtpdtmfsrc.h"
+#include "gstrtpdtmfdepay.h"
+
+static gboolean
+plugin_init (GstPlugin * plugin)
+{
+  if (!gst_dtmf_src_plugin_init (plugin))
+    return FALSE;
+
+  if (!gst_rtp_dtmf_src_plugin_init (plugin))
+    return FALSE;
+
+  if (!gst_rtp_dtmf_depay_plugin_init (plugin))
+    return FALSE;
+
+  return TRUE;
+}
+
+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
+    GST_VERSION_MINOR,
+    dtmf, "DTMF plugins",
+    plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)
diff --git a/gst/dtmf/gstdtmfcommon.h b/gst/dtmf/gstdtmfcommon.h
new file mode 100644
index 000000000..36f26ccb5
--- /dev/null
+++ b/gst/dtmf/gstdtmfcommon.h
@@ -0,0 +1,52 @@
+/* GStreamer DTMF plugin
+ *
+ * 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_RTP_DTMF_COMMON_H__
+#define __GST_RTP_DTMF_COMMON_H__
+
+#include <gst/math-compat.h>
+
+#define MIN_INTER_DIGIT_INTERVAL 100     /* ms */
+#define MIN_PULSE_DURATION       250     /* ms */
+
+#define MIN_VOLUME               0
+#define MAX_VOLUME               36
+
+#define MIN_EVENT                0
+#define MAX_EVENT                15
+#define MIN_EVENT_STRING         "0"
+#define MAX_EVENT_STRING         "15"
+
+typedef struct
+{
+  unsigned event:8;             /* Current DTMF event */
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+  unsigned volume:6;            /* power level of the tone, in dBm0 */
+  unsigned r:1;                 /* Reserved-bit */
+  unsigned e:1;                 /* End-bit */
+#elif G_BYTE_ORDER == G_BIG_ENDIAN
+  unsigned e:1;                 /* End-bit */
+  unsigned r:1;                 /* Reserved-bit */
+  unsigned volume:6;            /* power level of the tone, in dBm0 */
+#else
+#error "G_BYTE_ORDER should be big or little endian."
+#endif
+  unsigned duration:16;         /* Duration of digit, in timestamp units */
+} GstRTPDTMFPayload;
+
+#endif /* __GST_RTP_DTMF_COMMON_H__ */
diff --git a/gst/dtmf/gstdtmfsrc.c b/gst/dtmf/gstdtmfsrc.c
new file mode 100644
index 000000000..a77e3ba8b
--- /dev/null
+++ b/gst/dtmf/gstdtmfsrc.c
@@ -0,0 +1,969 @@
+/* GStreamer DTMF source
+ *
+ * gstdtmfsrc.c:
+ *
+ * Copyright (C) <2007> Collabora.
+ *   Contact: Youness Alaoui <youness.alaoui@collabora.co.uk>
+ * Copyright (C) <2007> Nokia Corporation.
+ *   Contact: Zeeshan Ali <zeeshan.ali@nokia.com>
+ * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
+ *               2000,2005 Wim Taymans <wim@fluendo.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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:element-dtmfsrc
+ * @see_also: rtpdtmsrc, rtpdtmfmuxx
+ *
+ * The DTMFSrc element generates DTMF (ITU-T Q.23 Specification) tone packets on request
+ * from application. The application communicates the beginning and end of a
+ * DTMF event using custom upstream gstreamer events. To report a DTMF event, an
+ * application must send an event of type GST_EVENT_CUSTOM_UPSTREAM, having a
+ * structure of name "dtmf-event" with fields set according to the following
+ * table:
+ *
+ * <informaltable>
+ * <tgroup cols='4'>
+ * <colspec colname='Name' />
+ * <colspec colname='Type' />
+ * <colspec colname='Possible values' />
+ * <colspec colname='Purpose' />
+ * <thead>
+ * <row>
+ * <entry>Name</entry>
+ * <entry>GType</entry>
+ * <entry>Possible values</entry>
+ * <entry>Purpose</entry>
+ * </row>
+ * </thead>
+ * <tbody>
+ * <row>
+ * <entry>type</entry>
+ * <entry>G_TYPE_INT</entry>
+ * <entry>0-1</entry>
+ * <entry>The application uses this field to specify which of the two methods
+ * specified in RFC 2833 to use. The value should be 0 for tones and 1 for
+ * named events. Tones are specified by their frequencies and events are specied
+ * by their number. This element can only take events as input. Do not confuse
+ * with "method" which specified the output.
+ * </entry>
+ * </row>
+ * <row>
+ * <entry>number</entry>
+ * <entry>G_TYPE_INT</entry>
+ * <entry>0-15</entry>
+ * <entry>The event number.</entry>
+ * </row>
+ * <row>
+ * <entry>volume</entry>
+ * <entry>G_TYPE_INT</entry>
+ * <entry>0-36</entry>
+ * <entry>This field describes the power level of the tone, expressed in dBm0
+ * after dropping the sign. Power levels range from 0 to -63 dBm0. The range of
+ * valid DTMF is from 0 to -36 dBm0. Can be omitted if start is set to FALSE.
+ * </entry>
+ * </row>
+ * <row>
+ * <entry>start</entry>
+ * <entry>G_TYPE_BOOLEAN</entry>
+ * <entry>True or False</entry>
+ * <entry>Whether the event is starting or ending.</entry>
+ * </row>
+ * <row>
+ * <entry>method</entry>
+ * <entry>G_TYPE_INT</entry>
+ * <entry>2</entry>
+ * <entry>The method used for sending event, this element will react if this
+ * field is absent or 2.
+ * </entry>
+ * </row>
+ * </tbody>
+ * </tgroup>
+ * </informaltable>
+ *
+ * For example, the following code informs the pipeline (and in turn, the
+ * DTMFSrc element inside the pipeline) about the start of a DTMF named
+ * event '1' of volume -25 dBm0:
+ *
+ * <programlisting>
+ * structure = gst_structure_new ("dtmf-event",
+ *                    "type", G_TYPE_INT, 1,
+ *                    "number", G_TYPE_INT, 1,
+ *                    "volume", G_TYPE_INT, 25,
+ *                    "start", G_TYPE_BOOLEAN, TRUE, NULL);
+ *
+ * event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, structure);
+ * gst_element_send_event (pipeline, event);
+ * </programlisting>
+ *
+ * When a DTMF tone actually starts or stop, a "dtmf-event-processed"
+ * element #GstMessage with the same fields as the "dtmf-event"
+ * #GstEvent that was used to request the event. Also, if any event
+ * has not been processed when the element goes from the PAUSED to the
+ * READY state, then a "dtmf-event-dropped" message is posted on the
+ * #GstBus in the order that they were received.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+
+#include <glib.h>
+
+#include "gstdtmfcommon.h"
+
+#include "gstdtmfsrc.h"
+
+#include <gst/audio/audio.h>
+
+#define GST_TONE_DTMF_TYPE_EVENT 1
+#define DEFAULT_PACKET_INTERVAL  50     /* ms */
+#define MIN_PACKET_INTERVAL      10     /* ms */
+#define MAX_PACKET_INTERVAL      50     /* ms */
+#define DEFAULT_SAMPLE_RATE      8000
+#define SAMPLE_SIZE              16
+#define CHANNELS                 1
+#define MIN_DUTY_CYCLE           (MIN_INTER_DIGIT_INTERVAL + MIN_PULSE_DURATION)
+
+
+typedef struct st_dtmf_key
+{
+  const char *event_name;
+  int event_encoding;
+  float low_frequency;
+  float high_frequency;
+} DTMF_KEY;
+
+static const DTMF_KEY DTMF_KEYS[] = {
+  {"DTMF_KEY_EVENT_0", 0, 941, 1336},
+  {"DTMF_KEY_EVENT_1", 1, 697, 1209},
+  {"DTMF_KEY_EVENT_2", 2, 697, 1336},
+  {"DTMF_KEY_EVENT_3", 3, 697, 1477},
+  {"DTMF_KEY_EVENT_4", 4, 770, 1209},
+  {"DTMF_KEY_EVENT_5", 5, 770, 1336},
+  {"DTMF_KEY_EVENT_6", 6, 770, 1477},
+  {"DTMF_KEY_EVENT_7", 7, 852, 1209},
+  {"DTMF_KEY_EVENT_8", 8, 852, 1336},
+  {"DTMF_KEY_EVENT_9", 9, 852, 1477},
+  {"DTMF_KEY_EVENT_S", 10, 941, 1209},
+  {"DTMF_KEY_EVENT_P", 11, 941, 1477},
+  {"DTMF_KEY_EVENT_A", 12, 697, 1633},
+  {"DTMF_KEY_EVENT_B", 13, 770, 1633},
+  {"DTMF_KEY_EVENT_C", 14, 852, 1633},
+  {"DTMF_KEY_EVENT_D", 15, 941, 1633},
+};
+
+#define MAX_DTMF_EVENTS 16
+
+enum
+{
+  DTMF_KEY_EVENT_1 = 1,
+  DTMF_KEY_EVENT_2 = 2,
+  DTMF_KEY_EVENT_3 = 3,
+  DTMF_KEY_EVENT_4 = 4,
+  DTMF_KEY_EVENT_5 = 5,
+  DTMF_KEY_EVENT_6 = 6,
+  DTMF_KEY_EVENT_7 = 7,
+  DTMF_KEY_EVENT_8 = 8,
+  DTMF_KEY_EVENT_9 = 9,
+  DTMF_KEY_EVENT_0 = 0,
+  DTMF_KEY_EVENT_STAR = 10,
+  DTMF_KEY_EVENT_POUND = 11,
+  DTMF_KEY_EVENT_A = 12,
+  DTMF_KEY_EVENT_B = 13,
+  DTMF_KEY_EVENT_C = 14,
+  DTMF_KEY_EVENT_D = 15,
+};
+
+GST_DEBUG_CATEGORY_STATIC (gst_dtmf_src_debug);
+#define GST_CAT_DEFAULT gst_dtmf_src_debug
+
+enum
+{
+  PROP_0,
+  PROP_INTERVAL,
+};
+
+static GstStaticPadTemplate gst_dtmf_src_template =
+GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-raw, "
+        "format = (string) \"" GST_AUDIO_NE (S16) "\", "
+        "rate = " GST_AUDIO_RATE_RANGE ", " "channels = (int) 1")
+    );
+
+#define parent_class gst_dtmf_src_parent_class
+G_DEFINE_TYPE (GstDTMFSrc, gst_dtmf_src, GST_TYPE_BASE_SRC);
+
+static void gst_dtmf_src_finalize (GObject * object);
+
+static void gst_dtmf_src_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_dtmf_src_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+static gboolean gst_dtmf_src_handle_event (GstBaseSrc * src, GstEvent * event);
+static gboolean gst_dtmf_src_send_event (GstElement * src, GstEvent * event);
+static GstStateChangeReturn gst_dtmf_src_change_state (GstElement * element,
+    GstStateChange transition);
+static GstFlowReturn gst_dtmf_src_create (GstBaseSrc * basesrc,
+    guint64 offset, guint length, GstBuffer ** buffer);
+static void gst_dtmf_src_add_start_event (GstDTMFSrc * dtmfsrc,
+    gint event_number, gint event_volume);
+static void gst_dtmf_src_add_stop_event (GstDTMFSrc * dtmfsrc);
+
+static gboolean gst_dtmf_src_unlock (GstBaseSrc * src);
+
+static gboolean gst_dtmf_src_unlock_stop (GstBaseSrc * src);
+static gboolean gst_dtmf_src_negotiate (GstBaseSrc * basesrc);
+
+
+static void
+gst_dtmf_src_class_init (GstDTMFSrcClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstBaseSrcClass *gstbasesrc_class;
+  GstElementClass *gstelement_class;
+
+  gobject_class = G_OBJECT_CLASS (klass);
+  gstbasesrc_class = GST_BASE_SRC_CLASS (klass);
+  gstelement_class = GST_ELEMENT_CLASS (klass);
+
+
+  GST_DEBUG_CATEGORY_INIT (gst_dtmf_src_debug, "dtmfsrc", 0, "dtmfsrc element");
+
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&gst_dtmf_src_template));
+
+  gst_element_class_set_static_metadata (gstelement_class,
+      "DTMF tone generator", "Source/Audio", "Generates DTMF tones",
+      "Youness Alaoui <youness.alaoui@collabora.co.uk>");
+
+
+  gobject_class->finalize = gst_dtmf_src_finalize;
+  gobject_class->set_property = gst_dtmf_src_set_property;
+  gobject_class->get_property = gst_dtmf_src_get_property;
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_INTERVAL,
+      g_param_spec_uint ("interval", "Interval between tone packets",
+          "Interval in ms between two tone packets", MIN_PACKET_INTERVAL,
+          MAX_PACKET_INTERVAL, DEFAULT_PACKET_INTERVAL,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  gstelement_class->change_state =
+      GST_DEBUG_FUNCPTR (gst_dtmf_src_change_state);
+  gstelement_class->send_event = GST_DEBUG_FUNCPTR (gst_dtmf_src_send_event);
+  gstbasesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_dtmf_src_unlock);
+  gstbasesrc_class->unlock_stop = GST_DEBUG_FUNCPTR (gst_dtmf_src_unlock_stop);
+
+  gstbasesrc_class->event = GST_DEBUG_FUNCPTR (gst_dtmf_src_handle_event);
+  gstbasesrc_class->create = GST_DEBUG_FUNCPTR (gst_dtmf_src_create);
+  gstbasesrc_class->negotiate = GST_DEBUG_FUNCPTR (gst_dtmf_src_negotiate);
+}
+
+static void
+event_free (GstDTMFSrcEvent * event)
+{
+  if (event)
+    g_slice_free (GstDTMFSrcEvent, event);
+}
+
+static void
+gst_dtmf_src_init (GstDTMFSrc * dtmfsrc)
+{
+  /* we operate in time */
+  gst_base_src_set_format (GST_BASE_SRC (dtmfsrc), GST_FORMAT_TIME);
+  gst_base_src_set_live (GST_BASE_SRC (dtmfsrc), TRUE);
+
+  dtmfsrc->interval = DEFAULT_PACKET_INTERVAL;
+
+  dtmfsrc->event_queue = g_async_queue_new_full ((GDestroyNotify) event_free);
+  dtmfsrc->last_event = NULL;
+
+  dtmfsrc->sample_rate = DEFAULT_SAMPLE_RATE;
+
+  GST_DEBUG_OBJECT (dtmfsrc, "init done");
+}
+
+static void
+gst_dtmf_src_finalize (GObject * object)
+{
+  GstDTMFSrc *dtmfsrc;
+
+  dtmfsrc = GST_DTMF_SRC (object);
+
+  if (dtmfsrc->event_queue) {
+    g_async_queue_unref (dtmfsrc->event_queue);
+    dtmfsrc->event_queue = NULL;
+  }
+
+  G_OBJECT_CLASS (gst_dtmf_src_parent_class)->finalize (object);
+}
+
+static gboolean
+gst_dtmf_src_handle_dtmf_event (GstDTMFSrc * dtmfsrc, GstEvent * event)
+{
+  const GstStructure *event_structure;
+  GstStateChangeReturn sret;
+  GstState state;
+  gint event_type;
+  gboolean start;
+  gint method;
+  GstClockTime last_stop;
+  gint event_number;
+  gint event_volume;
+  gboolean correct_order;
+
+  sret = gst_element_get_state (GST_ELEMENT (dtmfsrc), &state, NULL, 0);
+  if (sret != GST_STATE_CHANGE_SUCCESS || state != GST_STATE_PLAYING) {
+    GST_DEBUG_OBJECT (dtmfsrc, "dtmf-event, but not in PLAYING state");
+    goto failure;
+  }
+
+  event_structure = gst_event_get_structure (event);
+
+  if (!gst_structure_get_int (event_structure, "type", &event_type) ||
+      !gst_structure_get_boolean (event_structure, "start", &start) ||
+      (start == TRUE && event_type != GST_TONE_DTMF_TYPE_EVENT))
+    goto failure;
+
+  if (gst_structure_get_int (event_structure, "method", &method)) {
+    if (method != 2) {
+      goto failure;
+    }
+  }
+
+  if (start)
+    if (!gst_structure_get_int (event_structure, "number", &event_number) ||
+        !gst_structure_get_int (event_structure, "volume", &event_volume))
+      goto failure;
+
+
+  GST_OBJECT_LOCK (dtmfsrc);
+  if (gst_structure_get_clock_time (event_structure, "last-stop", &last_stop))
+    dtmfsrc->last_stop = last_stop;
+  else
+    dtmfsrc->last_stop = GST_CLOCK_TIME_NONE;
+  correct_order = (start != dtmfsrc->last_event_was_start);
+  dtmfsrc->last_event_was_start = start;
+  GST_OBJECT_UNLOCK (dtmfsrc);
+
+  if (!correct_order)
+    goto failure;
+
+  if (start) {
+    GST_DEBUG_OBJECT (dtmfsrc, "Received start event %d with volume %d",
+        event_number, event_volume);
+    gst_dtmf_src_add_start_event (dtmfsrc, event_number, event_volume);
+  }
+
+  else {
+    GST_DEBUG_OBJECT (dtmfsrc, "Received stop event");
+    gst_dtmf_src_add_stop_event (dtmfsrc);
+  }
+
+  return TRUE;
+failure:
+  return FALSE;
+}
+
+static gboolean
+gst_dtmf_src_handle_event (GstBaseSrc * src, GstEvent * event)
+{
+  GstDTMFSrc *dtmfsrc;
+  gboolean result = FALSE;
+
+  dtmfsrc = GST_DTMF_SRC (src);
+
+  GST_LOG_OBJECT (dtmfsrc, "Received an %s event on the src pad",
+      GST_EVENT_TYPE_NAME (event));
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_CUSTOM_UPSTREAM:
+      if (gst_event_has_name (event, "dtmf-event")) {
+        result = gst_dtmf_src_handle_dtmf_event (dtmfsrc, event);
+        break;
+      }
+      /* fall through */
+    default:
+      result = GST_BASE_SRC_CLASS (parent_class)->event (src, event);
+      break;
+  }
+
+  return result;
+}
+
+
+static gboolean
+gst_dtmf_src_send_event (GstElement * element, GstEvent * event)
+{
+  GstDTMFSrc *dtmfsrc = GST_DTMF_SRC (element);
+  gboolean ret;
+
+  GST_LOG_OBJECT (dtmfsrc, "Received an %s event via send_event",
+      GST_EVENT_TYPE_NAME (event));
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_CUSTOM_BOTH:
+    case GST_EVENT_CUSTOM_BOTH_OOB:
+    case GST_EVENT_CUSTOM_UPSTREAM:
+    case GST_EVENT_CUSTOM_DOWNSTREAM:
+    case GST_EVENT_CUSTOM_DOWNSTREAM_OOB:
+      if (gst_event_has_name (event, "dtmf-event")) {
+        ret = gst_dtmf_src_handle_dtmf_event (dtmfsrc, event);
+        break;
+      }
+      /* fall through */
+    default:
+      ret = GST_ELEMENT_CLASS (parent_class)->send_event (element, event);
+      break;
+  }
+
+  return ret;
+}
+
+static void
+gst_dtmf_src_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstDTMFSrc *dtmfsrc;
+
+  dtmfsrc = GST_DTMF_SRC (object);
+
+  switch (prop_id) {
+    case PROP_INTERVAL:
+      dtmfsrc->interval = g_value_get_uint (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_dtmf_src_get_property (GObject * object, guint prop_id, GValue * value,
+    GParamSpec * pspec)
+{
+  GstDTMFSrc *dtmfsrc;
+
+  dtmfsrc = GST_DTMF_SRC (object);
+
+  switch (prop_id) {
+    case PROP_INTERVAL:
+      g_value_set_uint (value, dtmfsrc->interval);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_dtmf_prepare_timestamps (GstDTMFSrc * dtmfsrc)
+{
+  GstClockTime last_stop;
+  GstClockTime timestamp;
+
+  GST_OBJECT_LOCK (dtmfsrc);
+  last_stop = dtmfsrc->last_stop;
+  GST_OBJECT_UNLOCK (dtmfsrc);
+
+  if (GST_CLOCK_TIME_IS_VALID (last_stop)) {
+    timestamp = last_stop;
+  } else {
+    GstClock *clock;
+
+    /* If there is no valid start time, lets use now as the start time */
+
+    clock = gst_element_get_clock (GST_ELEMENT (dtmfsrc));
+    if (clock != NULL) {
+      timestamp = gst_clock_get_time (clock)
+          - gst_element_get_base_time (GST_ELEMENT (dtmfsrc));
+      gst_object_unref (clock);
+    } else {
+      gchar *dtmf_name = gst_element_get_name (dtmfsrc);
+      GST_ERROR_OBJECT (dtmfsrc, "No clock set for element %s", dtmf_name);
+      dtmfsrc->timestamp = GST_CLOCK_TIME_NONE;
+      g_free (dtmf_name);
+      return;
+    }
+  }
+
+  /* Make sure the timestamp always goes forward */
+  if (timestamp > dtmfsrc->timestamp)
+    dtmfsrc->timestamp = timestamp;
+}
+
+static void
+gst_dtmf_src_add_start_event (GstDTMFSrc * dtmfsrc, gint event_number,
+    gint event_volume)
+{
+
+  GstDTMFSrcEvent *event = g_slice_new0 (GstDTMFSrcEvent);
+  event->event_type = DTMF_EVENT_TYPE_START;
+  event->sample = 0;
+  event->event_number = CLAMP (event_number, MIN_EVENT, MAX_EVENT);
+  event->volume = CLAMP (event_volume, MIN_VOLUME, MAX_VOLUME);
+
+  g_async_queue_push (dtmfsrc->event_queue, event);
+}
+
+static void
+gst_dtmf_src_add_stop_event (GstDTMFSrc * dtmfsrc)
+{
+
+  GstDTMFSrcEvent *event = g_slice_new0 (GstDTMFSrcEvent);
+  event->event_type = DTMF_EVENT_TYPE_STOP;
+  event->sample = 0;
+  event->event_number = 0;
+  event->volume = 0;
+
+  g_async_queue_push (dtmfsrc->event_queue, event);
+}
+
+static GstBuffer *
+gst_dtmf_src_generate_silence (float duration, gint sample_rate)
+{
+  gint buf_size;
+
+  /* Create a buffer with data set to 0 */
+  buf_size = ((duration / 1000) * sample_rate * SAMPLE_SIZE * CHANNELS) / 8;
+
+  return gst_buffer_new_wrapped (g_malloc0 (buf_size), buf_size);
+}
+
+static GstBuffer *
+gst_dtmf_src_generate_tone (GstDTMFSrcEvent * event, DTMF_KEY key,
+    float duration, gint sample_rate)
+{
+  GstBuffer *buffer;
+  GstMapInfo map;
+  gint16 *p;
+  gint tone_size;
+  double i = 0;
+  double amplitude, f1, f2;
+  double volume_factor;
+  static GstAllocationParams params = { 0, 1, 0, 0, };
+
+  /* Create a buffer for the tone */
+  tone_size = ((duration / 1000) * sample_rate * SAMPLE_SIZE * CHANNELS) / 8;
+
+  buffer = gst_buffer_new_allocate (NULL, tone_size, &params);
+
+  gst_buffer_map (buffer, &map, GST_MAP_READWRITE);
+  p = (gint16 *) map.data;
+
+  volume_factor = pow (10, (-event->volume) / 20);
+
+  /*
+   * For each sample point we calculate 'x' as the
+   * the amplitude value.
+   */
+  for (i = 0; i < (tone_size / (SAMPLE_SIZE / 8)); i++) {
+    /*
+     * We add the fundamental frequencies together.
+     */
+    f1 = sin (2 * M_PI * key.low_frequency * (event->sample / sample_rate));
+    f2 = sin (2 * M_PI * key.high_frequency * (event->sample / sample_rate));
+
+    amplitude = (f1 + f2) / 2;
+
+    /* Adjust the volume */
+    amplitude *= volume_factor;
+
+    /* Make the [-1:1] interval into a [-32767:32767] interval */
+    amplitude *= 32767;
+
+    /* Store it in the data buffer */
+    *(p++) = (gint16) amplitude;
+
+    (event->sample)++;
+  }
+
+  gst_buffer_unmap (buffer, &map);
+
+  return buffer;
+}
+
+
+
+static GstBuffer *
+gst_dtmf_src_create_next_tone_packet (GstDTMFSrc * dtmfsrc,
+    GstDTMFSrcEvent * event)
+{
+  GstBuffer *buf = NULL;
+  gboolean send_silence = FALSE;
+
+  GST_LOG_OBJECT (dtmfsrc, "Creating buffer for tone %s",
+      DTMF_KEYS[event->event_number].event_name);
+
+  if (event->packet_count * dtmfsrc->interval < MIN_INTER_DIGIT_INTERVAL) {
+    send_silence = TRUE;
+  }
+
+  if (send_silence) {
+    GST_LOG_OBJECT (dtmfsrc, "Generating silence");
+    buf = gst_dtmf_src_generate_silence (dtmfsrc->interval,
+        dtmfsrc->sample_rate);
+  } else {
+    GST_LOG_OBJECT (dtmfsrc, "Generating tone");
+    buf = gst_dtmf_src_generate_tone (event, DTMF_KEYS[event->event_number],
+        dtmfsrc->interval, dtmfsrc->sample_rate);
+  }
+  event->packet_count++;
+
+
+  /* timestamp and duration of GstBuffer */
+  GST_BUFFER_DURATION (buf) = dtmfsrc->interval * GST_MSECOND;
+  GST_BUFFER_TIMESTAMP (buf) = dtmfsrc->timestamp;
+
+  GST_LOG_OBJECT (dtmfsrc, "Creating new buffer with event %u duration "
+      " gst: %" GST_TIME_FORMAT " at %" GST_TIME_FORMAT,
+      event->event_number, GST_TIME_ARGS (GST_BUFFER_DURATION (buf)),
+      GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
+
+  dtmfsrc->timestamp += GST_BUFFER_DURATION (buf);
+
+  return buf;
+}
+
+static void
+gst_dtmf_src_post_message (GstDTMFSrc * dtmfsrc, const gchar * message_name,
+    GstDTMFSrcEvent * event)
+{
+  GstStructure *s = NULL;
+
+  switch (event->event_type) {
+    case DTMF_EVENT_TYPE_START:
+      s = gst_structure_new (message_name,
+          "type", G_TYPE_INT, 1,
+          "method", G_TYPE_INT, 2,
+          "start", G_TYPE_BOOLEAN, TRUE,
+          "number", G_TYPE_INT, event->event_number,
+          "volume", G_TYPE_INT, event->volume, NULL);
+      break;
+    case DTMF_EVENT_TYPE_STOP:
+      s = gst_structure_new (message_name,
+          "type", G_TYPE_INT, 1, "method", G_TYPE_INT, 2,
+          "start", G_TYPE_BOOLEAN, FALSE, NULL);
+      break;
+    case DTMF_EVENT_TYPE_PAUSE_TASK:
+      return;
+  }
+
+  if (s)
+    gst_element_post_message (GST_ELEMENT (dtmfsrc),
+        gst_message_new_element (GST_OBJECT (dtmfsrc), s));
+}
+
+static GstFlowReturn
+gst_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset,
+    guint length, GstBuffer ** buffer)
+{
+  GstBuffer *buf = NULL;
+  GstDTMFSrcEvent *event;
+  GstDTMFSrc *dtmfsrc;
+  GstClock *clock;
+  GstClockID *clockid;
+  GstClockReturn clockret;
+
+  dtmfsrc = GST_DTMF_SRC (basesrc);
+
+  do {
+
+    if (dtmfsrc->last_event == NULL) {
+      GST_DEBUG_OBJECT (dtmfsrc, "popping");
+      event = g_async_queue_pop (dtmfsrc->event_queue);
+
+      GST_DEBUG_OBJECT (dtmfsrc, "popped %d", event->event_type);
+
+      switch (event->event_type) {
+        case DTMF_EVENT_TYPE_STOP:
+          GST_WARNING_OBJECT (dtmfsrc,
+              "Received a DTMF stop event when already stopped");
+          gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event);
+          break;
+        case DTMF_EVENT_TYPE_START:
+          gst_dtmf_prepare_timestamps (dtmfsrc);
+
+          event->packet_count = 0;
+          dtmfsrc->last_event = event;
+          event = NULL;
+          gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-processed",
+              dtmfsrc->last_event);
+          break;
+        case DTMF_EVENT_TYPE_PAUSE_TASK:
+          /*
+           * We're pushing it back because it has to stay in there until
+           * the task is really paused (and the queue will then be flushed)
+           */
+          GST_DEBUG_OBJECT (dtmfsrc, "pushing pause_task...");
+          GST_OBJECT_LOCK (dtmfsrc);
+          if (dtmfsrc->paused) {
+            g_async_queue_push (dtmfsrc->event_queue, event);
+            goto paused_locked;
+          }
+          GST_OBJECT_UNLOCK (dtmfsrc);
+          break;
+      }
+      if (event)
+        g_slice_free (GstDTMFSrcEvent, event);
+    } else if (dtmfsrc->last_event->packet_count * dtmfsrc->interval >=
+        MIN_DUTY_CYCLE) {
+      event = g_async_queue_try_pop (dtmfsrc->event_queue);
+
+      if (event != NULL) {
+
+        switch (event->event_type) {
+          case DTMF_EVENT_TYPE_START:
+            GST_WARNING_OBJECT (dtmfsrc,
+                "Received two consecutive DTMF start events");
+            gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event);
+            break;
+          case DTMF_EVENT_TYPE_STOP:
+            g_slice_free (GstDTMFSrcEvent, dtmfsrc->last_event);
+            dtmfsrc->last_event = NULL;
+            gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-processed", event);
+            break;
+          case DTMF_EVENT_TYPE_PAUSE_TASK:
+            /*
+             * We're pushing it back because it has to stay in there until
+             * the task is really paused (and the queue will then be flushed)
+             */
+            GST_DEBUG_OBJECT (dtmfsrc, "pushing pause_task...");
+
+            GST_OBJECT_LOCK (dtmfsrc);
+            if (dtmfsrc->paused) {
+              g_async_queue_push (dtmfsrc->event_queue, event);
+              goto paused_locked;
+            }
+            GST_OBJECT_UNLOCK (dtmfsrc);
+
+            break;
+        }
+        g_slice_free (GstDTMFSrcEvent, event);
+      }
+    }
+  } while (dtmfsrc->last_event == NULL);
+
+  GST_LOG_OBJECT (dtmfsrc, "end event check, now wait for the proper time");
+
+  clock = gst_element_get_clock (GST_ELEMENT (basesrc));
+
+  clockid = gst_clock_new_single_shot_id (clock, dtmfsrc->timestamp +
+      gst_element_get_base_time (GST_ELEMENT (dtmfsrc)));
+  gst_object_unref (clock);
+
+  GST_OBJECT_LOCK (dtmfsrc);
+  if (!dtmfsrc->paused) {
+    dtmfsrc->clockid = clockid;
+    GST_OBJECT_UNLOCK (dtmfsrc);
+
+    clockret = gst_clock_id_wait (clockid, NULL);
+
+    GST_OBJECT_LOCK (dtmfsrc);
+    if (dtmfsrc->paused)
+      clockret = GST_CLOCK_UNSCHEDULED;
+  } else {
+    clockret = GST_CLOCK_UNSCHEDULED;
+  }
+  gst_clock_id_unref (clockid);
+  dtmfsrc->clockid = NULL;
+  GST_OBJECT_UNLOCK (dtmfsrc);
+
+  if (clockret == GST_CLOCK_UNSCHEDULED) {
+    goto paused;
+  }
+
+  buf = gst_dtmf_src_create_next_tone_packet (dtmfsrc, dtmfsrc->last_event);
+
+  GST_LOG_OBJECT (dtmfsrc, "Created buffer of size %" G_GSIZE_FORMAT,
+      gst_buffer_get_size (buf));
+  *buffer = buf;
+
+  return GST_FLOW_OK;
+
+paused_locked:
+  GST_OBJECT_UNLOCK (dtmfsrc);
+
+paused:
+
+  if (dtmfsrc->last_event) {
+    GST_DEBUG_OBJECT (dtmfsrc, "Stopping current event");
+    /* Don't forget to release the stream lock */
+    g_slice_free (GstDTMFSrcEvent, dtmfsrc->last_event);
+    dtmfsrc->last_event = NULL;
+  }
+
+  return GST_FLOW_FLUSHING;
+
+}
+
+static gboolean
+gst_dtmf_src_unlock (GstBaseSrc * src)
+{
+  GstDTMFSrc *dtmfsrc = GST_DTMF_SRC (src);
+  GstDTMFSrcEvent *event = NULL;
+
+  GST_DEBUG_OBJECT (dtmfsrc, "Called unlock");
+
+  GST_OBJECT_LOCK (dtmfsrc);
+  dtmfsrc->paused = TRUE;
+  if (dtmfsrc->clockid) {
+    gst_clock_id_unschedule (dtmfsrc->clockid);
+  }
+  GST_OBJECT_UNLOCK (dtmfsrc);
+
+  GST_DEBUG_OBJECT (dtmfsrc, "Pushing the PAUSE_TASK event on unlock request");
+  event = g_slice_new0 (GstDTMFSrcEvent);
+  event->event_type = DTMF_EVENT_TYPE_PAUSE_TASK;
+  g_async_queue_push (dtmfsrc->event_queue, event);
+
+  return TRUE;
+}
+
+
+static gboolean
+gst_dtmf_src_unlock_stop (GstBaseSrc * src)
+{
+  GstDTMFSrc *dtmfsrc = GST_DTMF_SRC (src);
+
+  GST_DEBUG_OBJECT (dtmfsrc, "Unlock stopped");
+
+  GST_OBJECT_LOCK (dtmfsrc);
+  dtmfsrc->paused = FALSE;
+  GST_OBJECT_UNLOCK (dtmfsrc);
+
+  return TRUE;
+}
+
+
+static gboolean
+gst_dtmf_src_negotiate (GstBaseSrc * basesrc)
+{
+  GstDTMFSrc *dtmfsrc = GST_DTMF_SRC (basesrc);
+  GstCaps *caps;
+  GstStructure *s;
+  gboolean ret;
+
+  caps = gst_pad_get_allowed_caps (GST_BASE_SRC_PAD (basesrc));
+
+  if (!caps)
+    caps = gst_pad_get_pad_template_caps (GST_BASE_SRC_PAD (basesrc));
+
+  if (gst_caps_is_empty (caps)) {
+    gst_caps_unref (caps);
+    return FALSE;
+  }
+
+  caps = gst_caps_truncate (caps);
+
+  caps = gst_caps_make_writable (caps);
+  s = gst_caps_get_structure (caps, 0);
+
+  gst_structure_fixate_field_nearest_int (s, "rate", DEFAULT_SAMPLE_RATE);
+
+  if (!gst_structure_get_int (s, "rate", &dtmfsrc->sample_rate)) {
+    GST_ERROR_OBJECT (dtmfsrc, "Could not get rate");
+    gst_caps_unref (caps);
+    return FALSE;
+  }
+
+  ret = gst_pad_set_caps (GST_BASE_SRC_PAD (basesrc), caps);
+
+  gst_caps_unref (caps);
+
+  return ret;
+}
+
+static GstStateChangeReturn
+gst_dtmf_src_change_state (GstElement * element, GstStateChange transition)
+{
+  GstDTMFSrc *dtmfsrc;
+  GstStateChangeReturn result;
+  gboolean no_preroll = FALSE;
+  GstDTMFSrcEvent *event = NULL;
+
+  dtmfsrc = GST_DTMF_SRC (element);
+
+  switch (transition) {
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      /* Flushing the event queue */
+      event = g_async_queue_try_pop (dtmfsrc->event_queue);
+
+      while (event != NULL) {
+        gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event);
+        g_slice_free (GstDTMFSrcEvent, event);
+        event = g_async_queue_try_pop (dtmfsrc->event_queue);
+      }
+      dtmfsrc->last_event_was_start = FALSE;
+      dtmfsrc->timestamp = 0;
+      no_preroll = TRUE;
+      break;
+    default:
+      break;
+  }
+
+  if ((result =
+          GST_ELEMENT_CLASS (gst_dtmf_src_parent_class)->change_state (element,
+              transition)) == GST_STATE_CHANGE_FAILURE)
+    goto failure;
+
+  switch (transition) {
+    case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
+      no_preroll = TRUE;
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      GST_DEBUG_OBJECT (dtmfsrc, "Flushing event queue");
+      /* Flushing the event queue */
+      event = g_async_queue_try_pop (dtmfsrc->event_queue);
+
+      while (event != NULL) {
+        gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event);
+        g_slice_free (GstDTMFSrcEvent, event);
+        event = g_async_queue_try_pop (dtmfsrc->event_queue);
+      }
+      dtmfsrc->last_event_was_start = FALSE;
+
+      break;
+    default:
+      break;
+  }
+
+  if (no_preroll && result == GST_STATE_CHANGE_SUCCESS)
+    result = GST_STATE_CHANGE_NO_PREROLL;
+
+  return result;
+
+  /* ERRORS */
+failure:
+  {
+    GST_ERROR_OBJECT (dtmfsrc, "parent failed state change");
+    return result;
+  }
+}
+
+gboolean
+gst_dtmf_src_plugin_init (GstPlugin * plugin)
+{
+  return gst_element_register (plugin, "dtmfsrc",
+      GST_RANK_NONE, GST_TYPE_DTMF_SRC);
+}
diff --git a/gst/dtmf/gstdtmfsrc.h b/gst/dtmf/gstdtmfsrc.h
new file mode 100644
index 000000000..04440bc18
--- /dev/null
+++ b/gst/dtmf/gstdtmfsrc.h
@@ -0,0 +1,101 @@
+/* GStreamer DTMF source
+ *
+ * gstdtmfsrc.h:
+ *
+ * Copyright (C) <2007> Collabora.
+ *   Contact: Youness Alaoui <youness.alaoui@collabora.co.uk>
+ * Copyright (C) <2007> Nokia Corporation.
+ *   Contact: Zeeshan Ali <zeeshan.ali@nokia.com>
+ * Copyright (C) <2005> Wim Taymans <wim@fluendo.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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_DTMF_SRC_H__
+#define __GST_DTMF_SRC_H__
+
+#include <gst/gst.h>
+#include <gst/gstbuffer.h>
+#include <gst/base/gstbasesrc.h>
+
+G_BEGIN_DECLS
+#define GST_TYPE_DTMF_SRC               (gst_dtmf_src_get_type())
+#define GST_DTMF_SRC(obj)               (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DTMF_SRC,GstDTMFSrc))
+#define GST_DTMF_SRC_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DTMF_SRC,GstDTMFSrcClass))
+#define GST_DTMF_SRC_GET_CLASS(obj)     (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_DTMF_SRC, GstDTMFSrcClass))
+#define GST_IS_DTMF_SRC(obj)            (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DTMF_SRC))
+#define GST_IS_DTMF_SRC_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DTMF_SRC))
+#define GST_DTMF_SRC_CAST(obj)          ((GstDTMFSrc *)(obj))
+typedef struct _GstDTMFSrc GstDTMFSrc;
+typedef struct _GstDTMFSrcClass GstDTMFSrcClass;
+
+enum _GstDTMFEventType
+{
+  DTMF_EVENT_TYPE_START,
+  DTMF_EVENT_TYPE_STOP,
+  DTMF_EVENT_TYPE_PAUSE_TASK
+};
+
+typedef enum _GstDTMFEventType GstDTMFEventType;
+
+struct _GstDTMFSrcEvent
+{
+  GstDTMFEventType event_type;
+  double sample;
+  guint16 event_number;
+  guint16 volume;
+  guint32 packet_count;
+};
+
+typedef struct _GstDTMFSrcEvent GstDTMFSrcEvent;
+
+/**
+ * GstDTMFSrc:
+ * @element: the parent element.
+ *
+ * The opaque #GstDTMFSrc data structure.
+ */
+struct _GstDTMFSrc
+{
+  /*< private >*/
+  GstBaseSrc parent;
+  GAsyncQueue *event_queue;
+  GstDTMFSrcEvent *last_event;
+  gboolean last_event_was_start;
+
+  guint16 interval;
+  GstClockTime timestamp;
+
+  gboolean paused;
+  GstClockID clockid;
+
+  GstClockTime last_stop;
+
+  gint sample_rate;
+};
+
+
+struct _GstDTMFSrcClass
+{
+  GstBaseSrcClass parent_class;
+};
+
+GType gst_dtmf_src_get_type (void);
+
+gboolean gst_dtmf_src_plugin_init (GstPlugin * plugin);
+
+G_END_DECLS
+#endif /* __GST_DTMF_SRC_H__ */
diff --git a/gst/dtmf/gstrtpdtmfdepay.c b/gst/dtmf/gstrtpdtmfdepay.c
new file mode 100644
index 000000000..d66f24a24
--- /dev/null
+++ b/gst/dtmf/gstrtpdtmfdepay.c
@@ -0,0 +1,543 @@
+/* GstRtpDtmfDepay
+ *
+ * Copyright (C) 2008 Collabora Limited
+ * Copyright (C) 2008 Nokia Corporation
+ *   Contact: Youness Alaoui <youness.alaoui@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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+/**
+ * SECTION:element-rtpdtmfdepay
+ * @see_also: rtpdtmfsrc, rtpdtmfmux
+ *
+ * This element takes RTP DTMF packets and produces sound. It also emits a
+ * message on the #GstBus.
+ *
+ * The message is called "dtmf-event" and has the following fields
+ * <informaltable>
+ * <tgroup cols='4'>
+ * <colspec colname='Name' />
+ * <colspec colname='Type' />
+ * <colspec colname='Possible values' />
+ * <colspec colname='Purpose' />
+ * <thead>
+ * <row>
+ * <entry>Name</entry>
+ * <entry>GType</entry>
+ * <entry>Possible values</entry>
+ * <entry>Purpose</entry>
+ * </row>
+ * </thead>
+ * <tbody>
+ * <row>
+ * <entry>type</entry>
+ * <entry>G_TYPE_INT</entry>
+ * <entry>0-1</entry>
+ * <entry>Which of the two methods
+ * specified in RFC 2833 to use. The value should be 0 for tones and 1 for
+ * named events. Tones are specified by their frequencies and events are specied
+ * by their number. This element currently only recognizes events.
+ * Do not confuse with "method" which specified the output.
+ * </entry>
+ * </row>
+ * <row>
+ * <entry>number</entry>
+ * <entry>G_TYPE_INT</entry>
+ * <entry>0-16</entry>
+ * <entry>The event number.</entry>
+ * </row>
+ * <row>
+ * <entry>volume</entry>
+ * <entry>G_TYPE_INT</entry>
+ * <entry>0-36</entry>
+ * <entry>This field describes the power level of the tone, expressed in dBm0
+ * after dropping the sign. Power levels range from 0 to -63 dBm0. The range of
+ * valid DTMF is from 0 to -36 dBm0.
+ * </entry>
+ * </row>
+ * <row>
+ * <entry>method</entry>
+ * <entry>G_TYPE_INT</entry>
+ * <entry>1</entry>
+ * <entry>This field will always been 1 (ie RTP event) from this element.
+ * </entry>
+ * </row>
+ * </tbody>
+ * </tgroup>
+ * </informaltable>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gstrtpdtmfdepay.h"
+
+#include <string.h>
+#include <math.h>
+
+#include <gst/audio/audio.h>
+#include <gst/rtp/gstrtpbuffer.h>
+
+#define DEFAULT_PACKET_INTERVAL  50     /* ms */
+#define MIN_PACKET_INTERVAL      10     /* ms */
+#define MAX_PACKET_INTERVAL      50     /* ms */
+#define SAMPLE_RATE              8000
+#define SAMPLE_SIZE              16
+#define CHANNELS                 1
+#define MIN_DUTY_CYCLE           (MIN_INTER_DIGIT_INTERVAL + MIN_PULSE_DURATION)
+
+#define MIN_UNIT_TIME            0
+#define MAX_UNIT_TIME            1000
+#define DEFAULT_UNIT_TIME        0
+
+#define DEFAULT_MAX_DURATION     0
+
+typedef struct st_dtmf_key
+{
+  const char *event_name;
+  int event_encoding;
+  float low_frequency;
+  float high_frequency;
+} DTMF_KEY;
+
+static const DTMF_KEY DTMF_KEYS[] = {
+  {"DTMF_KEY_EVENT_0", 0, 941, 1336},
+  {"DTMF_KEY_EVENT_1", 1, 697, 1209},
+  {"DTMF_KEY_EVENT_2", 2, 697, 1336},
+  {"DTMF_KEY_EVENT_3", 3, 697, 1477},
+  {"DTMF_KEY_EVENT_4", 4, 770, 1209},
+  {"DTMF_KEY_EVENT_5", 5, 770, 1336},
+  {"DTMF_KEY_EVENT_6", 6, 770, 1477},
+  {"DTMF_KEY_EVENT_7", 7, 852, 1209},
+  {"DTMF_KEY_EVENT_8", 8, 852, 1336},
+  {"DTMF_KEY_EVENT_9", 9, 852, 1477},
+  {"DTMF_KEY_EVENT_S", 10, 941, 1209},
+  {"DTMF_KEY_EVENT_P", 11, 941, 1477},
+  {"DTMF_KEY_EVENT_A", 12, 697, 1633},
+  {"DTMF_KEY_EVENT_B", 13, 770, 1633},
+  {"DTMF_KEY_EVENT_C", 14, 852, 1633},
+  {"DTMF_KEY_EVENT_D", 15, 941, 1633},
+};
+
+#define MAX_DTMF_EVENTS 16
+
+enum
+{
+  DTMF_KEY_EVENT_1 = 1,
+  DTMF_KEY_EVENT_2 = 2,
+  DTMF_KEY_EVENT_3 = 3,
+  DTMF_KEY_EVENT_4 = 4,
+  DTMF_KEY_EVENT_5 = 5,
+  DTMF_KEY_EVENT_6 = 6,
+  DTMF_KEY_EVENT_7 = 7,
+  DTMF_KEY_EVENT_8 = 8,
+  DTMF_KEY_EVENT_9 = 9,
+  DTMF_KEY_EVENT_0 = 0,
+  DTMF_KEY_EVENT_STAR = 10,
+  DTMF_KEY_EVENT_POUND = 11,
+  DTMF_KEY_EVENT_A = 12,
+  DTMF_KEY_EVENT_B = 13,
+  DTMF_KEY_EVENT_C = 14,
+  DTMF_KEY_EVENT_D = 15,
+};
+
+GST_DEBUG_CATEGORY_STATIC (gst_rtp_dtmf_depay_debug);
+#define GST_CAT_DEFAULT gst_rtp_dtmf_depay_debug
+
+enum
+{
+
+
+  /* FILL ME */
+  LAST_SIGNAL
+};
+
+enum
+{
+  PROP_0,
+  PROP_UNIT_TIME,
+  PROP_MAX_DURATION
+};
+
+enum
+{
+  ARG_0
+};
+
+static GstStaticPadTemplate gst_rtp_dtmf_depay_src_template =
+GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-raw, "
+        "format = (string) \"" GST_AUDIO_NE (S16) "\", "
+        "rate = " GST_AUDIO_RATE_RANGE ", " "channels = (int) 1")
+    );
+
+static GstStaticPadTemplate gst_rtp_dtmf_depay_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("application/x-rtp, "
+        "media = (string) \"audio\", "
+        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
+        "clock-rate = (int) [ 0, MAX ], "
+        "encoding-name = (string) \"TELEPHONE-EVENT\"")
+    );
+
+G_DEFINE_TYPE (GstRtpDTMFDepay, gst_rtp_dtmf_depay,
+    GST_TYPE_RTP_BASE_DEPAYLOAD);
+
+static void gst_rtp_dtmf_depay_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_rtp_dtmf_depay_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+static GstBuffer *gst_rtp_dtmf_depay_process (GstRTPBaseDepayload * depayload,
+    GstBuffer * buf);
+gboolean gst_rtp_dtmf_depay_setcaps (GstRTPBaseDepayload * filter,
+    GstCaps * caps);
+
+static void
+gst_rtp_dtmf_depay_class_init (GstRtpDTMFDepayClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstElementClass *gstelement_class;
+  GstRTPBaseDepayloadClass *gstrtpbasedepayload_class;
+
+  gobject_class = G_OBJECT_CLASS (klass);
+  gstelement_class = GST_ELEMENT_CLASS (klass);
+  gstrtpbasedepayload_class = GST_RTP_BASE_DEPAYLOAD_CLASS (klass);
+
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&gst_rtp_dtmf_depay_src_template));
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&gst_rtp_dtmf_depay_sink_template));
+
+  GST_DEBUG_CATEGORY_INIT (gst_rtp_dtmf_depay_debug,
+      "rtpdtmfdepay", 0, "rtpdtmfdepay element");
+  gst_element_class_set_static_metadata (gstelement_class,
+      "RTP DTMF packet depayloader", "Codec/Depayloader/Network",
+      "Generates DTMF Sound from telephone-event RTP packets",
+      "Youness Alaoui <youness.alaoui@collabora.co.uk>");
+
+  gobject_class->set_property =
+      GST_DEBUG_FUNCPTR (gst_rtp_dtmf_depay_set_property);
+  gobject_class->get_property =
+      GST_DEBUG_FUNCPTR (gst_rtp_dtmf_depay_get_property);
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_UNIT_TIME,
+      g_param_spec_uint ("unit-time", "Duration unittime",
+          "The smallest unit (ms) the duration must be a multiple of (0 disables it)",
+          MIN_UNIT_TIME, MAX_UNIT_TIME, DEFAULT_UNIT_TIME,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_MAX_DURATION,
+      g_param_spec_uint ("max-duration", "Maximum duration",
+          "The maxumimum duration (ms) of the outgoing soundpacket. "
+          "(0 = no limit)", 0, G_MAXUINT, DEFAULT_MAX_DURATION,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  gstrtpbasedepayload_class->process =
+      GST_DEBUG_FUNCPTR (gst_rtp_dtmf_depay_process);
+  gstrtpbasedepayload_class->set_caps =
+      GST_DEBUG_FUNCPTR (gst_rtp_dtmf_depay_setcaps);
+
+}
+
+static void
+gst_rtp_dtmf_depay_init (GstRtpDTMFDepay * rtpdtmfdepay)
+{
+  rtpdtmfdepay->unit_time = DEFAULT_UNIT_TIME;
+}
+
+static void
+gst_rtp_dtmf_depay_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstRtpDTMFDepay *rtpdtmfdepay;
+
+  rtpdtmfdepay = GST_RTP_DTMF_DEPAY (object);
+
+  switch (prop_id) {
+    case PROP_UNIT_TIME:
+      rtpdtmfdepay->unit_time = g_value_get_uint (value);
+      break;
+    case PROP_MAX_DURATION:
+      rtpdtmfdepay->max_duration = g_value_get_uint (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_rtp_dtmf_depay_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstRtpDTMFDepay *rtpdtmfdepay;
+
+  rtpdtmfdepay = GST_RTP_DTMF_DEPAY (object);
+
+  switch (prop_id) {
+    case PROP_UNIT_TIME:
+      g_value_set_uint (value, rtpdtmfdepay->unit_time);
+      break;
+    case PROP_MAX_DURATION:
+      g_value_set_uint (value, rtpdtmfdepay->max_duration);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+gboolean
+gst_rtp_dtmf_depay_setcaps (GstRTPBaseDepayload * filter, GstCaps * caps)
+{
+  GstCaps *filtercaps, *srccaps;
+  GstStructure *structure = gst_caps_get_structure (caps, 0);
+  gint clock_rate = 8000;       /* default */
+
+  gst_structure_get_int (structure, "clock-rate", &clock_rate);
+  filter->clock_rate = clock_rate;
+
+  filtercaps =
+      gst_pad_get_pad_template_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (filter));
+
+  filtercaps = gst_caps_make_writable (filtercaps);
+  gst_caps_set_simple (filtercaps, "rate", G_TYPE_INT, clock_rate, NULL);
+
+  srccaps = gst_pad_peer_query_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (filter),
+      filtercaps);
+  gst_caps_unref (filtercaps);
+
+  gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (filter), srccaps);
+  gst_caps_unref (srccaps);
+
+  return TRUE;
+}
+
+static GstBuffer *
+gst_dtmf_src_generate_tone (GstRtpDTMFDepay * rtpdtmfdepay,
+    GstRTPDTMFPayload payload)
+{
+  GstBuffer *buf;
+  GstMapInfo map;
+  gint16 *p;
+  gint tone_size;
+  double i = 0;
+  double amplitude, f1, f2;
+  double volume_factor;
+  DTMF_KEY key = DTMF_KEYS[payload.event];
+  guint32 clock_rate = 8000 /* default */ ;
+  GstRTPBaseDepayload *depayload = GST_RTP_BASE_DEPAYLOAD (rtpdtmfdepay);
+  gint volume;
+  static GstAllocationParams params = { 0, 1, 0, 0, };
+
+  clock_rate = depayload->clock_rate;
+
+  /* Create a buffer for the tone */
+  tone_size = (payload.duration * SAMPLE_SIZE * CHANNELS) / 8;
+  buf = gst_buffer_new_allocate (NULL, tone_size, &params);
+  GST_BUFFER_DURATION (buf) = payload.duration * GST_SECOND / clock_rate;
+  volume = payload.volume;
+
+  gst_buffer_map (buf, &map, GST_MAP_WRITE);
+  p = (gint16 *) map.data;
+
+  volume_factor = pow (10, (-volume) / 20);
+
+  /*
+   * For each sample point we calculate 'x' as the
+   * the amplitude value.
+   */
+  for (i = 0; i < (tone_size / (SAMPLE_SIZE / 8)); i++) {
+    /*
+     * We add the fundamental frequencies together.
+     */
+    f1 = sin (2 * M_PI * key.low_frequency * (rtpdtmfdepay->sample /
+            clock_rate));
+    f2 = sin (2 * M_PI * key.high_frequency * (rtpdtmfdepay->sample /
+            clock_rate));
+
+    amplitude = (f1 + f2) / 2;
+
+    /* Adjust the volume */
+    amplitude *= volume_factor;
+
+    /* Make the [-1:1] interval into a [-32767:32767] interval */
+    amplitude *= 32767;
+
+    /* Store it in the data buffer */
+    *(p++) = (gint16) amplitude;
+
+    (rtpdtmfdepay->sample)++;
+  }
+
+  gst_buffer_unmap (buf, &map);
+
+  return buf;
+}
+
+
+static GstBuffer *
+gst_rtp_dtmf_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+{
+
+  GstRtpDTMFDepay *rtpdtmfdepay = NULL;
+  GstBuffer *outbuf = NULL;
+  gint payload_len;
+  guint8 *payload = NULL;
+  guint32 timestamp;
+  GstRTPDTMFPayload dtmf_payload;
+  gboolean marker;
+  GstStructure *structure = NULL;
+  GstMessage *dtmf_message = NULL;
+  GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT;
+
+  rtpdtmfdepay = GST_RTP_DTMF_DEPAY (depayload);
+
+  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtpbuffer);
+
+  payload_len = gst_rtp_buffer_get_payload_len (&rtpbuffer);
+  payload = gst_rtp_buffer_get_payload (&rtpbuffer);
+
+  if (payload_len != sizeof (GstRTPDTMFPayload))
+    goto bad_packet;
+
+  memcpy (&dtmf_payload, payload, sizeof (GstRTPDTMFPayload));
+
+  if (dtmf_payload.event > MAX_EVENT)
+    goto bad_packet;
+
+  marker = gst_rtp_buffer_get_marker (&rtpbuffer);
+
+  timestamp = gst_rtp_buffer_get_timestamp (&rtpbuffer);
+
+  dtmf_payload.duration = g_ntohs (dtmf_payload.duration);
+
+  /* clip to whole units of unit_time */
+  if (rtpdtmfdepay->unit_time) {
+    guint unit_time_clock =
+        (rtpdtmfdepay->unit_time * depayload->clock_rate) / 1000;
+    if (dtmf_payload.duration % unit_time_clock) {
+      /* Make sure we don't overflow the duration */
+      if (dtmf_payload.duration < G_MAXUINT16 - unit_time_clock)
+        dtmf_payload.duration += unit_time_clock -
+            (dtmf_payload.duration % unit_time_clock);
+      else
+        dtmf_payload.duration -= dtmf_payload.duration % unit_time_clock;
+    }
+  }
+
+  /* clip to max duration */
+  if (rtpdtmfdepay->max_duration) {
+    guint max_duration_clock =
+        (rtpdtmfdepay->max_duration * depayload->clock_rate) / 1000;
+
+    if (max_duration_clock < G_MAXUINT16 &&
+        dtmf_payload.duration > max_duration_clock)
+      dtmf_payload.duration = max_duration_clock;
+  }
+
+  GST_DEBUG_OBJECT (depayload, "Received new RTP DTMF packet : "
+      "marker=%d - timestamp=%u - event=%d - duration=%d",
+      marker, timestamp, dtmf_payload.event, dtmf_payload.duration);
+
+  GST_DEBUG_OBJECT (depayload,
+      "Previous information : timestamp=%u - duration=%d",
+      rtpdtmfdepay->previous_ts, rtpdtmfdepay->previous_duration);
+
+  /* First packet */
+  if (marker || rtpdtmfdepay->previous_ts != timestamp) {
+    rtpdtmfdepay->sample = 0;
+    rtpdtmfdepay->previous_ts = timestamp;
+    rtpdtmfdepay->previous_duration = dtmf_payload.duration;
+    rtpdtmfdepay->first_gst_ts = GST_BUFFER_PTS (buf);
+
+    structure = gst_structure_new ("dtmf-event",
+        "number", G_TYPE_INT, dtmf_payload.event,
+        "volume", G_TYPE_INT, dtmf_payload.volume,
+        "type", G_TYPE_INT, 1, "method", G_TYPE_INT, 1, NULL);
+    if (structure) {
+      dtmf_message =
+          gst_message_new_element (GST_OBJECT (depayload), structure);
+      if (dtmf_message) {
+        if (!gst_element_post_message (GST_ELEMENT (depayload), dtmf_message)) {
+          GST_ERROR_OBJECT (depayload,
+              "Unable to send dtmf-event message to bus");
+        }
+      } else {
+        GST_ERROR_OBJECT (depayload, "Unable to create dtmf-event message");
+      }
+    } else {
+      GST_ERROR_OBJECT (depayload, "Unable to create dtmf-event structure");
+    }
+  } else {
+    guint16 duration = dtmf_payload.duration;
+    dtmf_payload.duration -= rtpdtmfdepay->previous_duration;
+    /* If late buffer, ignore */
+    if (duration > rtpdtmfdepay->previous_duration)
+      rtpdtmfdepay->previous_duration = duration;
+  }
+
+  GST_DEBUG_OBJECT (depayload, "new previous duration : %d - new duration : %d"
+      " - diff  : %d - clock rate : %d - timestamp : %" G_GUINT64_FORMAT,
+      rtpdtmfdepay->previous_duration, dtmf_payload.duration,
+      (rtpdtmfdepay->previous_duration - dtmf_payload.duration),
+      depayload->clock_rate, GST_BUFFER_TIMESTAMP (buf));
+
+  /* If late or duplicate packet (like the redundant end packet). Ignore */
+  if (dtmf_payload.duration > 0) {
+    outbuf = gst_dtmf_src_generate_tone (rtpdtmfdepay, dtmf_payload);
+
+
+    GST_BUFFER_PTS (outbuf) = rtpdtmfdepay->first_gst_ts +
+        (rtpdtmfdepay->previous_duration - dtmf_payload.duration) *
+        GST_SECOND / depayload->clock_rate;
+    GST_BUFFER_OFFSET (outbuf) =
+        (rtpdtmfdepay->previous_duration - dtmf_payload.duration) *
+        GST_SECOND / depayload->clock_rate;
+    GST_BUFFER_OFFSET_END (outbuf) = rtpdtmfdepay->previous_duration *
+        GST_SECOND / depayload->clock_rate;
+
+    GST_DEBUG_OBJECT (depayload,
+        "timestamp : %" G_GUINT64_FORMAT " - time %" GST_TIME_FORMAT,
+        GST_BUFFER_TIMESTAMP (buf), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
+
+  }
+
+  gst_rtp_buffer_unmap (&rtpbuffer);
+
+  return outbuf;
+
+bad_packet:
+  GST_ELEMENT_WARNING (rtpdtmfdepay, STREAM, DECODE,
+      ("Packet did not validate"), (NULL));
+
+  if (rtpbuffer.buffer != NULL)
+    gst_rtp_buffer_unmap (&rtpbuffer);
+
+  return NULL;
+}
+
+gboolean
+gst_rtp_dtmf_depay_plugin_init (GstPlugin * plugin)
+{
+  return gst_element_register (plugin, "rtpdtmfdepay",
+      GST_RANK_MARGINAL, GST_TYPE_RTP_DTMF_DEPAY);
+}
diff --git a/gst/dtmf/gstrtpdtmfdepay.h b/gst/dtmf/gstrtpdtmfdepay.h
new file mode 100644
index 000000000..c5ed18940
--- /dev/null
+++ b/gst/dtmf/gstrtpdtmfdepay.h
@@ -0,0 +1,68 @@
+/* GstRtpDtmfDepay
+ *
+ * Copyright (C) 2008 Collabora Limited
+ * Copyright (C) 2008 Nokia Corporation
+ *   Contact: Youness Alaoui <youness.alaoui@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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_RTP_DTMF_DEPAY_H__
+#define __GST_RTP_DTMF_DEPAY_H__
+
+#include <gst/gst.h>
+#include <gst/base/gstadapter.h>
+#include <gst/rtp/gstrtpbasedepayload.h>
+
+#include "gstdtmfcommon.h"
+
+G_BEGIN_DECLS
+#define GST_TYPE_RTP_DTMF_DEPAY \
+  (gst_rtp_dtmf_depay_get_type())
+#define GST_RTP_DTMF_DEPAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_DTMF_DEPAY,GstRtpDTMFDepay))
+#define GST_RTP_DTMF_DEPAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_DTMF_DEPAY,GstRtpDTMFDepayClass))
+#define GST_IS_RTP_DTMF_DEPAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_DTMF_DEPAY))
+#define GST_IS_RTP_DTMF_DEPAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_DTMF_DEPAY))
+typedef struct _GstRtpDTMFDepay GstRtpDTMFDepay;
+typedef struct _GstRtpDTMFDepayClass GstRtpDTMFDepayClass;
+
+struct _GstRtpDTMFDepay
+{
+  /*< private >*/
+  GstRTPBaseDepayload depayload;
+  double sample;
+  guint32 previous_ts;
+  guint16 previous_duration;
+  GstClockTime first_gst_ts;
+  guint unit_time;
+  guint max_duration;
+};
+
+struct _GstRtpDTMFDepayClass
+{
+  GstRTPBaseDepayloadClass parent_class;
+};
+
+GType gst_rtp_dtmf_depay_get_type (void);
+
+gboolean gst_rtp_dtmf_depay_plugin_init (GstPlugin * plugin);
+
+G_END_DECLS
+#endif /* __GST_RTP_DTMF_DEPAY_H__ */
diff --git a/gst/dtmf/gstrtpdtmfsrc.c b/gst/dtmf/gstrtpdtmfsrc.c
new file mode 100644
index 000000000..2a0b4a3bb
--- /dev/null
+++ b/gst/dtmf/gstrtpdtmfsrc.c
@@ -0,0 +1,1156 @@
+/* GStreamer RTP DTMF source
+ *
+ * gstrtpdtmfsrc.c:
+ *
+ * Copyright (C) <2007> Nokia Corporation.
+ *   Contact: Zeeshan Ali <zeeshan.ali@nokia.com>
+ * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
+ *               2000,2005 Wim Taymans <wim@fluendo.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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:element-rtpdtmfsrc
+ * @see_also: dtmfsrc, rtpdtmfdepay, rtpdtmfmux
+ *
+ * The RTPDTMFSrc element generates RTP DTMF (RFC 2833) event packets on request
+ * from application. The application communicates the beginning and end of a
+ * DTMF event using custom upstream gstreamer events. To report a DTMF event, an
+ * application must send an event of type GST_EVENT_CUSTOM_UPSTREAM, having a
+ * structure of name "dtmf-event" with fields set according to the following
+ * table:
+ *
+ * <informaltable>
+ * <tgroup cols='4'>
+ * <colspec colname='Name' />
+ * <colspec colname='Type' />
+ * <colspec colname='Possible values' />
+ * <colspec colname='Purpose' />
+ * <thead>
+ * <row>
+ * <entry>Name</entry>
+ * <entry>GType</entry>
+ * <entry>Possible values</entry>
+ * <entry>Purpose</entry>
+ * </row>
+ * </thead>
+ * <tbody>
+ * <row>
+ * <entry>type</entry>
+ * <entry>G_TYPE_INT</entry>
+ * <entry>0-1</entry>
+ * <entry>The application uses this field to specify which of the two methods
+ * specified in RFC 2833 to use. The value should be 0 for tones and 1 for
+ * named events. Tones are specified by their frequencies and events are specied
+ * by their number. This element can only take events as input. Do not confuse
+ * with "method" which specified the output.
+ * </entry>
+ * </row>
+ * <row>
+ * <entry>number</entry>
+ * <entry>G_TYPE_INT</entry>
+ * <entry>0-15</entry>
+ * <entry>The event number.</entry>
+ * </row>
+ * <row>
+ * <entry>volume</entry>
+ * <entry>G_TYPE_INT</entry>
+ * <entry>0-36</entry>
+ * <entry>This field describes the power level of the tone, expressed in dBm0
+ * after dropping the sign. Power levels range from 0 to -63 dBm0. The range of
+ * valid DTMF is from 0 to -36 dBm0. Can be omitted if start is set to FALSE.
+ * </entry>
+ * </row>
+ * <row>
+ * <entry>start</entry>
+ * <entry>G_TYPE_BOOLEAN</entry>
+ * <entry>True or False</entry>
+ * <entry>Whether the event is starting or ending.</entry>
+ * </row>
+ * <row>
+ * <entry>method</entry>
+ * <entry>G_TYPE_INT</entry>
+ * <entry>1</entry>
+ * <entry>The method used for sending event, this element will react if this
+ * field is absent or 1.
+ * </entry>
+ * </row>
+ * </tbody>
+ * </tgroup>
+ * </informaltable>
+ *
+ * For example, the following code informs the pipeline (and in turn, the
+ * RTPDTMFSrc element inside the pipeline) about the start of an RTP DTMF named
+ * event '1' of volume -25 dBm0:
+ *
+ * <programlisting>
+ * structure = gst_structure_new ("dtmf-event",
+ *                    "type", G_TYPE_INT, 1,
+ *                    "number", G_TYPE_INT, 1,
+ *                    "volume", G_TYPE_INT, 25,
+ *                    "start", G_TYPE_BOOLEAN, TRUE, NULL);
+ *
+ * event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, structure);
+ * gst_element_send_event (pipeline, event);
+ * </programlisting>
+ *
+ * When a DTMF tone actually starts or stop, a "dtmf-event-processed"
+ * element #GstMessage with the same fields as the "dtmf-event"
+ * #GstEvent that was used to request the event. Also, if any event
+ * has not been processed when the element goes from the PAUSED to the
+ * READY state, then a "dtmf-event-dropped" message is posted on the
+ * #GstBus in the order that they were received.
+  */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <glib.h>
+
+#include "gstrtpdtmfsrc.h"
+
+#define GST_RTP_DTMF_TYPE_EVENT  1
+#define DEFAULT_PTIME            40     /* ms */
+#define DEFAULT_SSRC             -1
+#define DEFAULT_PT               96
+#define DEFAULT_TIMESTAMP_OFFSET -1
+#define DEFAULT_SEQNUM_OFFSET    -1
+#define DEFAULT_CLOCK_RATE       8000
+
+#define DEFAULT_PACKET_REDUNDANCY 1
+#define MIN_PACKET_REDUNDANCY 1
+#define MAX_PACKET_REDUNDANCY 5
+
+GST_DEBUG_CATEGORY_STATIC (gst_rtp_dtmf_src_debug);
+#define GST_CAT_DEFAULT gst_rtp_dtmf_src_debug
+
+/* signals and args */
+enum
+{
+  /* FILL ME */
+  LAST_SIGNAL
+};
+
+enum
+{
+  PROP_0,
+  PROP_SSRC,
+  PROP_TIMESTAMP_OFFSET,
+  PROP_SEQNUM_OFFSET,
+  PROP_PT,
+  PROP_CLOCK_RATE,
+  PROP_TIMESTAMP,
+  PROP_SEQNUM,
+  PROP_REDUNDANCY
+};
+
+static GstStaticPadTemplate gst_rtp_dtmf_src_template =
+GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("application/x-rtp, "
+        "media = (string) \"audio\", "
+        "payload = (int) [ 96, 127 ], "
+        "clock-rate = (int) [ 0, MAX ], "
+        "encoding-name = (string) \"TELEPHONE-EVENT\"")
+    /*  "events = (string) \"0-15\" */
+    );
+
+
+G_DEFINE_TYPE (GstRTPDTMFSrc, gst_rtp_dtmf_src, GST_TYPE_BASE_SRC);
+
+static void gst_rtp_dtmf_src_finalize (GObject * object);
+
+static void gst_rtp_dtmf_src_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_rtp_dtmf_src_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+static gboolean gst_rtp_dtmf_src_handle_event (GstBaseSrc * basesrc,
+    GstEvent * event);
+static GstStateChangeReturn gst_rtp_dtmf_src_change_state (GstElement * element,
+    GstStateChange transition);
+static void gst_rtp_dtmf_src_add_start_event (GstRTPDTMFSrc * dtmfsrc,
+    gint event_number, gint event_volume);
+static void gst_rtp_dtmf_src_add_stop_event (GstRTPDTMFSrc * dtmfsrc);
+
+static gboolean gst_rtp_dtmf_src_unlock (GstBaseSrc * src);
+static gboolean gst_rtp_dtmf_src_unlock_stop (GstBaseSrc * src);
+static GstFlowReturn gst_rtp_dtmf_src_create (GstBaseSrc * basesrc,
+    guint64 offset, guint length, GstBuffer ** buffer);
+static gboolean gst_rtp_dtmf_src_negotiate (GstBaseSrc * basesrc);
+
+
+static void
+gst_rtp_dtmf_src_class_init (GstRTPDTMFSrcClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstBaseSrcClass *gstbasesrc_class;
+  GstElementClass *gstelement_class;
+
+  gobject_class = G_OBJECT_CLASS (klass);
+  gstbasesrc_class = GST_BASE_SRC_CLASS (klass);
+  gstelement_class = GST_ELEMENT_CLASS (klass);
+
+  GST_DEBUG_CATEGORY_INIT (gst_rtp_dtmf_src_debug,
+      "rtpdtmfsrc", 0, "rtpdtmfsrc element");
+
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&gst_rtp_dtmf_src_template));
+
+  gst_element_class_set_static_metadata (gstelement_class,
+      "RTP DTMF packet generator", "Source/Network",
+      "Generates RTP DTMF packets", "Zeeshan Ali <zeeshan.ali@nokia.com>");
+
+  gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_rtp_dtmf_src_finalize);
+  gobject_class->set_property =
+      GST_DEBUG_FUNCPTR (gst_rtp_dtmf_src_set_property);
+  gobject_class->get_property =
+      GST_DEBUG_FUNCPTR (gst_rtp_dtmf_src_get_property);
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TIMESTAMP,
+      g_param_spec_uint ("timestamp", "Timestamp",
+          "The RTP timestamp of the last processed packet",
+          0, G_MAXUINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SEQNUM,
+      g_param_spec_uint ("seqnum", "Sequence number",
+          "The RTP sequence number of the last processed packet",
+          0, G_MAXUINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (G_OBJECT_CLASS (klass),
+      PROP_TIMESTAMP_OFFSET, g_param_spec_int ("timestamp-offset",
+          "Timestamp Offset",
+          "Offset to add to all outgoing timestamps (-1 = random)", -1,
+          G_MAXINT, DEFAULT_TIMESTAMP_OFFSET,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SEQNUM_OFFSET,
+      g_param_spec_int ("seqnum-offset", "Sequence number Offset",
+          "Offset to add to all outgoing seqnum (-1 = random)", -1, G_MAXINT,
+          DEFAULT_SEQNUM_OFFSET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_CLOCK_RATE,
+      g_param_spec_uint ("clock-rate", "clockrate",
+          "The clock-rate at which to generate the dtmf packets",
+          0, G_MAXUINT, DEFAULT_CLOCK_RATE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SSRC,
+      g_param_spec_uint ("ssrc", "SSRC",
+          "The SSRC of the packets (-1 == random)",
+          0, G_MAXUINT, DEFAULT_SSRC,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_PT,
+      g_param_spec_uint ("pt", "payload type",
+          "The payload type of the packets",
+          0, 0x80, DEFAULT_PT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_REDUNDANCY,
+      g_param_spec_uint ("packet-redundancy", "Packet Redundancy",
+          "Number of packets to send to indicate start and stop dtmf events",
+          MIN_PACKET_REDUNDANCY, MAX_PACKET_REDUNDANCY,
+          DEFAULT_PACKET_REDUNDANCY,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  gstelement_class->change_state =
+      GST_DEBUG_FUNCPTR (gst_rtp_dtmf_src_change_state);
+
+  gstbasesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_rtp_dtmf_src_unlock);
+  gstbasesrc_class->unlock_stop =
+      GST_DEBUG_FUNCPTR (gst_rtp_dtmf_src_unlock_stop);
+
+  gstbasesrc_class->event = GST_DEBUG_FUNCPTR (gst_rtp_dtmf_src_handle_event);
+  gstbasesrc_class->create = GST_DEBUG_FUNCPTR (gst_rtp_dtmf_src_create);
+  gstbasesrc_class->negotiate = GST_DEBUG_FUNCPTR (gst_rtp_dtmf_src_negotiate);
+}
+
+static void
+gst_rtp_dtmf_src_event_free (GstRTPDTMFSrcEvent * event)
+{
+  if (event) {
+    if (event->payload)
+      g_slice_free (GstRTPDTMFPayload, event->payload);
+    g_slice_free (GstRTPDTMFSrcEvent, event);
+  }
+}
+
+static void
+gst_rtp_dtmf_src_init (GstRTPDTMFSrc * object)
+{
+  gst_base_src_set_format (GST_BASE_SRC (object), GST_FORMAT_TIME);
+  gst_base_src_set_live (GST_BASE_SRC (object), TRUE);
+
+  object->ssrc = DEFAULT_SSRC;
+  object->seqnum_offset = DEFAULT_SEQNUM_OFFSET;
+  object->ts_offset = DEFAULT_TIMESTAMP_OFFSET;
+  object->pt = DEFAULT_PT;
+  object->clock_rate = DEFAULT_CLOCK_RATE;
+  object->ptime = DEFAULT_PTIME;
+  object->packet_redundancy = DEFAULT_PACKET_REDUNDANCY;
+
+  object->event_queue =
+      g_async_queue_new_full ((GDestroyNotify) gst_rtp_dtmf_src_event_free);
+  object->payload = NULL;
+
+  GST_DEBUG_OBJECT (object, "init done");
+}
+
+static void
+gst_rtp_dtmf_src_finalize (GObject * object)
+{
+  GstRTPDTMFSrc *dtmfsrc;
+
+  dtmfsrc = GST_RTP_DTMF_SRC (object);
+
+  if (dtmfsrc->event_queue) {
+    g_async_queue_unref (dtmfsrc->event_queue);
+    dtmfsrc->event_queue = NULL;
+  }
+
+
+  G_OBJECT_CLASS (gst_rtp_dtmf_src_parent_class)->finalize (object);
+}
+
+static gboolean
+gst_rtp_dtmf_src_handle_dtmf_event (GstRTPDTMFSrc * dtmfsrc,
+    const GstStructure * event_structure)
+{
+  gint event_type;
+  gboolean start;
+  gint method;
+  GstClockTime last_stop;
+  gint event_number;
+  gint event_volume;
+  gboolean correct_order;
+
+  if (!gst_structure_get_int (event_structure, "type", &event_type) ||
+      !gst_structure_get_boolean (event_structure, "start", &start) ||
+      event_type != GST_RTP_DTMF_TYPE_EVENT)
+    goto failure;
+
+  if (gst_structure_get_int (event_structure, "method", &method)) {
+    if (method != 1) {
+      goto failure;
+    }
+  }
+
+  if (start)
+    if (!gst_structure_get_int (event_structure, "number", &event_number) ||
+        !gst_structure_get_int (event_structure, "volume", &event_volume))
+      goto failure;
+
+  GST_OBJECT_LOCK (dtmfsrc);
+  if (gst_structure_get_clock_time (event_structure, "last-stop", &last_stop))
+    dtmfsrc->last_stop = last_stop;
+  else
+    dtmfsrc->last_stop = GST_CLOCK_TIME_NONE;
+  correct_order = (start != dtmfsrc->last_event_was_start);
+  dtmfsrc->last_event_was_start = start;
+  GST_OBJECT_UNLOCK (dtmfsrc);
+
+  if (!correct_order)
+    goto failure;
+
+  if (start) {
+    if (!gst_structure_get_int (event_structure, "number", &event_number) ||
+        !gst_structure_get_int (event_structure, "volume", &event_volume))
+      goto failure;
+
+    GST_DEBUG_OBJECT (dtmfsrc, "Received start event %d with volume %d",
+        event_number, event_volume);
+    gst_rtp_dtmf_src_add_start_event (dtmfsrc, event_number, event_volume);
+  }
+
+  else {
+    GST_DEBUG_OBJECT (dtmfsrc, "Received stop event");
+    gst_rtp_dtmf_src_add_stop_event (dtmfsrc);
+  }
+
+  return TRUE;
+failure:
+  return FALSE;
+}
+
+static gboolean
+gst_rtp_dtmf_src_handle_custom_upstream (GstRTPDTMFSrc * dtmfsrc,
+    GstEvent * event)
+{
+  gboolean result = FALSE;
+  gchar *struct_str;
+  const GstStructure *structure;
+
+  GstState state;
+  GstStateChangeReturn ret;
+
+  ret = gst_element_get_state (GST_ELEMENT (dtmfsrc), &state, NULL, 0);
+  if (ret != GST_STATE_CHANGE_SUCCESS || state != GST_STATE_PLAYING) {
+    GST_DEBUG_OBJECT (dtmfsrc, "Received event while not in PLAYING state");
+    goto ret;
+  }
+
+  GST_DEBUG_OBJECT (dtmfsrc, "Received event is of our interest");
+  structure = gst_event_get_structure (event);
+  struct_str = gst_structure_to_string (structure);
+  GST_DEBUG_OBJECT (dtmfsrc, "Event has structure %s", struct_str);
+  g_free (struct_str);
+  if (structure && gst_structure_has_name (structure, "dtmf-event"))
+    result = gst_rtp_dtmf_src_handle_dtmf_event (dtmfsrc, structure);
+
+ret:
+  return result;
+}
+
+static gboolean
+gst_rtp_dtmf_src_handle_event (GstBaseSrc * basesrc, GstEvent * event)
+{
+  GstRTPDTMFSrc *dtmfsrc;
+  gboolean result = FALSE;
+
+  dtmfsrc = GST_RTP_DTMF_SRC (basesrc);
+
+  GST_DEBUG_OBJECT (dtmfsrc, "Received an event on the src pad");
+  if (GST_EVENT_TYPE (event) == GST_EVENT_CUSTOM_UPSTREAM) {
+    result = gst_rtp_dtmf_src_handle_custom_upstream (dtmfsrc, event);
+  }
+
+  return result;
+}
+
+static void
+gst_rtp_dtmf_src_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstRTPDTMFSrc *dtmfsrc;
+
+  dtmfsrc = GST_RTP_DTMF_SRC (object);
+
+  switch (prop_id) {
+    case PROP_TIMESTAMP_OFFSET:
+      dtmfsrc->ts_offset = g_value_get_int (value);
+      break;
+    case PROP_SEQNUM_OFFSET:
+      dtmfsrc->seqnum_offset = g_value_get_int (value);
+      break;
+    case PROP_CLOCK_RATE:
+      dtmfsrc->clock_rate = g_value_get_uint (value);
+      dtmfsrc->dirty = TRUE;
+      break;
+    case PROP_SSRC:
+      dtmfsrc->ssrc = g_value_get_uint (value);
+      break;
+    case PROP_PT:
+      dtmfsrc->pt = g_value_get_uint (value);
+      dtmfsrc->dirty = TRUE;
+      break;
+    case PROP_REDUNDANCY:
+      dtmfsrc->packet_redundancy = g_value_get_uint (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_rtp_dtmf_src_get_property (GObject * object, guint prop_id, GValue * value,
+    GParamSpec * pspec)
+{
+  GstRTPDTMFSrc *dtmfsrc;
+
+  dtmfsrc = GST_RTP_DTMF_SRC (object);
+
+  switch (prop_id) {
+    case PROP_TIMESTAMP_OFFSET:
+      g_value_set_int (value, dtmfsrc->ts_offset);
+      break;
+    case PROP_SEQNUM_OFFSET:
+      g_value_set_int (value, dtmfsrc->seqnum_offset);
+      break;
+    case PROP_CLOCK_RATE:
+      g_value_set_uint (value, dtmfsrc->clock_rate);
+      break;
+    case PROP_SSRC:
+      g_value_set_uint (value, dtmfsrc->ssrc);
+      break;
+    case PROP_PT:
+      g_value_set_uint (value, dtmfsrc->pt);
+      break;
+    case PROP_TIMESTAMP:
+      g_value_set_uint (value, dtmfsrc->rtp_timestamp);
+      break;
+    case PROP_SEQNUM:
+      g_value_set_uint (value, dtmfsrc->seqnum);
+      break;
+    case PROP_REDUNDANCY:
+      g_value_set_uint (value, dtmfsrc->packet_redundancy);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static gboolean
+gst_rtp_dtmf_prepare_timestamps (GstRTPDTMFSrc * dtmfsrc)
+{
+  GstClockTime last_stop;
+
+  GST_OBJECT_LOCK (dtmfsrc);
+  last_stop = dtmfsrc->last_stop;
+  GST_OBJECT_UNLOCK (dtmfsrc);
+
+  if (GST_CLOCK_TIME_IS_VALID (last_stop)) {
+    dtmfsrc->start_timestamp = last_stop;
+  } else {
+    GstClock *clock = gst_element_get_clock (GST_ELEMENT (dtmfsrc));
+
+    if (clock == NULL)
+      return FALSE;
+
+    dtmfsrc->start_timestamp = gst_clock_get_time (clock)
+        - gst_element_get_base_time (GST_ELEMENT (dtmfsrc));
+    gst_object_unref (clock);
+  }
+
+  /* If the last stop was in the past, then lets add the buffers together */
+  if (dtmfsrc->start_timestamp < dtmfsrc->timestamp)
+    dtmfsrc->start_timestamp = dtmfsrc->timestamp;
+
+  dtmfsrc->timestamp = dtmfsrc->start_timestamp;
+
+  dtmfsrc->rtp_timestamp = dtmfsrc->ts_base +
+      gst_util_uint64_scale_int (gst_segment_to_running_time (&GST_BASE_SRC
+          (dtmfsrc)->segment, GST_FORMAT_TIME, dtmfsrc->timestamp),
+      dtmfsrc->clock_rate, GST_SECOND);
+
+  return TRUE;
+}
+
+
+static void
+gst_rtp_dtmf_src_add_start_event (GstRTPDTMFSrc * dtmfsrc, gint event_number,
+    gint event_volume)
+{
+
+  GstRTPDTMFSrcEvent *event = g_slice_new0 (GstRTPDTMFSrcEvent);
+  event->event_type = RTP_DTMF_EVENT_TYPE_START;
+
+  event->payload = g_slice_new0 (GstRTPDTMFPayload);
+  event->payload->event = CLAMP (event_number, MIN_EVENT, MAX_EVENT);
+  event->payload->volume = CLAMP (event_volume, MIN_VOLUME, MAX_VOLUME);
+
+  g_async_queue_push (dtmfsrc->event_queue, event);
+}
+
+static void
+gst_rtp_dtmf_src_add_stop_event (GstRTPDTMFSrc * dtmfsrc)
+{
+
+  GstRTPDTMFSrcEvent *event = g_slice_new0 (GstRTPDTMFSrcEvent);
+  event->event_type = RTP_DTMF_EVENT_TYPE_STOP;
+
+  g_async_queue_push (dtmfsrc->event_queue, event);
+}
+
+
+static void
+gst_rtp_dtmf_prepare_rtp_headers (GstRTPDTMFSrc * dtmfsrc,
+    GstRTPBuffer * rtpbuf)
+{
+  gst_rtp_buffer_set_ssrc (rtpbuf, dtmfsrc->current_ssrc);
+  gst_rtp_buffer_set_payload_type (rtpbuf, dtmfsrc->pt);
+  /* Only the very first packet gets a marker */
+  if (dtmfsrc->first_packet) {
+    gst_rtp_buffer_set_marker (rtpbuf, TRUE);
+  } else if (dtmfsrc->last_packet) {
+    dtmfsrc->payload->e = 1;
+  }
+
+  dtmfsrc->seqnum++;
+  gst_rtp_buffer_set_seq (rtpbuf, dtmfsrc->seqnum);
+
+  /* timestamp of RTP header */
+  gst_rtp_buffer_set_timestamp (rtpbuf, dtmfsrc->rtp_timestamp);
+}
+
+static GstBuffer *
+gst_rtp_dtmf_src_create_next_rtp_packet (GstRTPDTMFSrc * dtmfsrc)
+{
+  GstBuffer *buf;
+  GstRTPDTMFPayload *payload;
+  GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT;
+
+  buf = gst_rtp_buffer_new_allocate (sizeof (GstRTPDTMFPayload), 0, 0);
+
+  gst_rtp_buffer_map (buf, GST_MAP_READWRITE, &rtpbuffer);
+
+  gst_rtp_dtmf_prepare_rtp_headers (dtmfsrc, &rtpbuffer);
+
+  /* timestamp and duration of GstBuffer */
+  /* Redundant buffer have no duration ... */
+  if (dtmfsrc->redundancy_count > 1)
+    GST_BUFFER_DURATION (buf) = 0;
+  else
+    GST_BUFFER_DURATION (buf) = dtmfsrc->ptime * GST_MSECOND;
+  GST_BUFFER_PTS (buf) = dtmfsrc->timestamp;
+
+  payload = (GstRTPDTMFPayload *) gst_rtp_buffer_get_payload (&rtpbuffer);
+
+  /* copy payload and convert to network-byte order */
+  g_memmove (payload, dtmfsrc->payload, sizeof (GstRTPDTMFPayload));
+
+  payload->duration = g_htons (payload->duration);
+
+  if (dtmfsrc->redundancy_count <= 1 && dtmfsrc->last_packet) {
+    GstClockTime inter_digit_interval = MIN_INTER_DIGIT_INTERVAL;
+
+    if (inter_digit_interval % dtmfsrc->ptime != 0)
+      inter_digit_interval += dtmfsrc->ptime -
+          (MIN_INTER_DIGIT_INTERVAL % dtmfsrc->ptime);
+
+    GST_BUFFER_DURATION (buf) += inter_digit_interval * GST_MSECOND;
+  }
+
+  GST_LOG_OBJECT (dtmfsrc, "Creating new buffer with event %u duration "
+      " gst: %" GST_TIME_FORMAT " at %" GST_TIME_FORMAT "(rtp ts:%u dur:%u)",
+      dtmfsrc->payload->event, GST_TIME_ARGS (GST_BUFFER_DURATION (buf)),
+      GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), dtmfsrc->rtp_timestamp,
+      dtmfsrc->payload->duration);
+
+  /* duration of DTMF payloadfor the NEXT packet */
+  /* not updated for redundant packets */
+  if (dtmfsrc->redundancy_count <= 1)
+    dtmfsrc->payload->duration += dtmfsrc->ptime * dtmfsrc->clock_rate / 1000;
+
+  if (GST_CLOCK_TIME_IS_VALID (dtmfsrc->timestamp))
+    dtmfsrc->timestamp += GST_BUFFER_DURATION (buf);
+
+  gst_rtp_buffer_unmap (&rtpbuffer);
+
+  return buf;
+}
+
+static GstMessage *
+gst_dtmf_src_prepare_message (GstRTPDTMFSrc * dtmfsrc,
+    const gchar * message_name, GstRTPDTMFSrcEvent * event)
+{
+  GstStructure *s;
+
+  switch (event->event_type) {
+    case RTP_DTMF_EVENT_TYPE_START:
+      s = gst_structure_new (message_name,
+          "type", G_TYPE_INT, 1,
+          "method", G_TYPE_INT, 1,
+          "start", G_TYPE_BOOLEAN, TRUE,
+          "number", G_TYPE_INT, event->payload->event,
+          "volume", G_TYPE_INT, event->payload->volume, NULL);
+      break;
+    case RTP_DTMF_EVENT_TYPE_STOP:
+      s = gst_structure_new (message_name,
+          "type", G_TYPE_INT, 1, "method", G_TYPE_INT, 1,
+          "start", G_TYPE_BOOLEAN, FALSE, NULL);
+      break;
+    case RTP_DTMF_EVENT_TYPE_PAUSE_TASK:
+      return NULL;
+    default:
+      return NULL;
+  }
+
+  return gst_message_new_element (GST_OBJECT (dtmfsrc), s);
+}
+
+static void
+gst_dtmf_src_post_message (GstRTPDTMFSrc * dtmfsrc, const gchar * message_name,
+    GstRTPDTMFSrcEvent * event)
+{
+  GstMessage *m = gst_dtmf_src_prepare_message (dtmfsrc, message_name, event);
+
+
+  if (m)
+    gst_element_post_message (GST_ELEMENT (dtmfsrc), m);
+}
+
+
+static GstFlowReturn
+gst_rtp_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset,
+    guint length, GstBuffer ** buffer)
+{
+  GstRTPDTMFSrcEvent *event;
+  GstRTPDTMFSrc *dtmfsrc;
+  GstClock *clock;
+  GstClockID *clockid;
+  GstClockReturn clockret;
+  GstMessage *message;
+  GQueue messages = G_QUEUE_INIT;
+
+  dtmfsrc = GST_RTP_DTMF_SRC (basesrc);
+
+  do {
+
+    if (dtmfsrc->payload == NULL) {
+      GST_DEBUG_OBJECT (dtmfsrc, "popping");
+      event = g_async_queue_pop (dtmfsrc->event_queue);
+
+      GST_DEBUG_OBJECT (dtmfsrc, "popped %d", event->event_type);
+
+      switch (event->event_type) {
+        case RTP_DTMF_EVENT_TYPE_STOP:
+          GST_WARNING_OBJECT (dtmfsrc,
+              "Received a DTMF stop event when already stopped");
+          gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event);
+          break;
+
+        case RTP_DTMF_EVENT_TYPE_START:
+          dtmfsrc->first_packet = TRUE;
+          dtmfsrc->last_packet = FALSE;
+          /* Set the redundancy on the first packet */
+          dtmfsrc->redundancy_count = dtmfsrc->packet_redundancy;
+          if (!gst_rtp_dtmf_prepare_timestamps (dtmfsrc))
+            goto no_clock;
+
+          g_queue_push_tail (&messages,
+              gst_dtmf_src_prepare_message (dtmfsrc, "dtmf-event-processed",
+                  event));
+          dtmfsrc->payload = event->payload;
+          dtmfsrc->payload->duration =
+              dtmfsrc->ptime * dtmfsrc->clock_rate / 1000;
+          event->payload = NULL;
+          break;
+
+        case RTP_DTMF_EVENT_TYPE_PAUSE_TASK:
+          /*
+           * We're pushing it back because it has to stay in there until
+           * the task is really paused (and the queue will then be flushed
+           */
+          GST_OBJECT_LOCK (dtmfsrc);
+          if (dtmfsrc->paused) {
+            g_async_queue_push (dtmfsrc->event_queue, event);
+            goto paused_locked;
+          }
+          GST_OBJECT_UNLOCK (dtmfsrc);
+          break;
+      }
+
+      gst_rtp_dtmf_src_event_free (event);
+    } else if (!dtmfsrc->first_packet && !dtmfsrc->last_packet &&
+        (dtmfsrc->timestamp - dtmfsrc->start_timestamp) / GST_MSECOND >=
+        MIN_PULSE_DURATION) {
+      GST_DEBUG_OBJECT (dtmfsrc, "try popping");
+      event = g_async_queue_try_pop (dtmfsrc->event_queue);
+
+
+      if (event != NULL) {
+        GST_DEBUG_OBJECT (dtmfsrc, "try popped %d", event->event_type);
+
+        switch (event->event_type) {
+          case RTP_DTMF_EVENT_TYPE_START:
+            GST_WARNING_OBJECT (dtmfsrc,
+                "Received two consecutive DTMF start events");
+            gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event);
+            break;
+
+          case RTP_DTMF_EVENT_TYPE_STOP:
+            dtmfsrc->first_packet = FALSE;
+            dtmfsrc->last_packet = TRUE;
+            /* Set the redundancy on the last packet */
+            dtmfsrc->redundancy_count = dtmfsrc->packet_redundancy;
+            g_queue_push_tail (&messages,
+                gst_dtmf_src_prepare_message (dtmfsrc, "dtmf-event-processed",
+                    event));
+            break;
+
+          case RTP_DTMF_EVENT_TYPE_PAUSE_TASK:
+            /*
+             * We're pushing it back because it has to stay in there until
+             * the task is really paused (and the queue will then be flushed)
+             */
+            GST_DEBUG_OBJECT (dtmfsrc, "pushing pause_task...");
+            GST_OBJECT_LOCK (dtmfsrc);
+            if (dtmfsrc->paused) {
+              g_async_queue_push (dtmfsrc->event_queue, event);
+              goto paused_locked;
+            }
+            GST_OBJECT_UNLOCK (dtmfsrc);
+            break;
+        }
+        gst_rtp_dtmf_src_event_free (event);
+      }
+    }
+  } while (dtmfsrc->payload == NULL);
+
+
+  GST_DEBUG_OBJECT (dtmfsrc, "Processed events, now lets wait on the clock");
+
+  clock = gst_element_get_clock (GST_ELEMENT (basesrc));
+  if (!clock)
+    goto no_clock;
+  clockid = gst_clock_new_single_shot_id (clock, dtmfsrc->timestamp +
+      gst_element_get_base_time (GST_ELEMENT (dtmfsrc)));
+  gst_object_unref (clock);
+
+  GST_OBJECT_LOCK (dtmfsrc);
+  if (!dtmfsrc->paused) {
+    dtmfsrc->clockid = clockid;
+    GST_OBJECT_UNLOCK (dtmfsrc);
+
+    clockret = gst_clock_id_wait (clockid, NULL);
+
+    GST_OBJECT_LOCK (dtmfsrc);
+    if (dtmfsrc->paused)
+      clockret = GST_CLOCK_UNSCHEDULED;
+  } else {
+    clockret = GST_CLOCK_UNSCHEDULED;
+  }
+  gst_clock_id_unref (clockid);
+  dtmfsrc->clockid = NULL;
+  GST_OBJECT_UNLOCK (dtmfsrc);
+
+  while ((message = g_queue_pop_head (&messages)) != NULL)
+    gst_element_post_message (GST_ELEMENT (dtmfsrc), message);
+
+  if (clockret == GST_CLOCK_UNSCHEDULED) {
+    goto paused;
+  }
+
+send_last:
+
+  if (dtmfsrc->dirty)
+    if (!gst_rtp_dtmf_src_negotiate (basesrc))
+      return GST_FLOW_NOT_NEGOTIATED;
+
+  /* create buffer to hold the payload */
+  *buffer = gst_rtp_dtmf_src_create_next_rtp_packet (dtmfsrc);
+
+  if (dtmfsrc->redundancy_count)
+    dtmfsrc->redundancy_count--;
+
+  /* Only the very first one has a marker */
+  dtmfsrc->first_packet = FALSE;
+
+  /* This is the end of the event */
+  if (dtmfsrc->last_packet == TRUE && dtmfsrc->redundancy_count == 0) {
+
+    g_slice_free (GstRTPDTMFPayload, dtmfsrc->payload);
+    dtmfsrc->payload = NULL;
+
+    dtmfsrc->last_packet = FALSE;
+  }
+
+  return GST_FLOW_OK;
+
+paused_locked:
+
+  GST_OBJECT_UNLOCK (dtmfsrc);
+
+paused:
+
+  if (dtmfsrc->payload) {
+    dtmfsrc->first_packet = FALSE;
+    dtmfsrc->last_packet = TRUE;
+    /* Set the redundanc on the last packet */
+    dtmfsrc->redundancy_count = dtmfsrc->packet_redundancy;
+    goto send_last;
+  } else {
+    return GST_FLOW_FLUSHING;
+  }
+
+no_clock:
+  GST_ELEMENT_ERROR (dtmfsrc, STREAM, MUX, ("No available clock"),
+      ("No available clock"));
+  gst_pad_pause_task (GST_BASE_SRC_PAD (dtmfsrc));
+  return GST_FLOW_ERROR;
+}
+
+
+static gboolean
+gst_rtp_dtmf_src_negotiate (GstBaseSrc * basesrc)
+{
+  GstCaps *srccaps, *peercaps;
+  GstRTPDTMFSrc *dtmfsrc = GST_RTP_DTMF_SRC (basesrc);
+  gboolean ret;
+
+  /* fill in the defaults, there properties cannot be negotiated. */
+  srccaps = gst_caps_new_simple ("application/x-rtp",
+      "media", G_TYPE_STRING, "audio",
+      "encoding-name", G_TYPE_STRING, "TELEPHONE-EVENT", NULL);
+
+  /* the peer caps can override some of the defaults */
+  peercaps = gst_pad_peer_query_caps (GST_BASE_SRC_PAD (basesrc), NULL);
+  if (peercaps == NULL) {
+    /* no peer caps, just add the other properties */
+    gst_caps_set_simple (srccaps,
+        "payload", G_TYPE_INT, dtmfsrc->pt,
+        "ssrc", G_TYPE_UINT, dtmfsrc->current_ssrc,
+        "clock-base", G_TYPE_UINT, dtmfsrc->ts_base,
+        "clock-rate", G_TYPE_INT, dtmfsrc->clock_rate,
+        "seqnum-base", G_TYPE_UINT, dtmfsrc->seqnum_base, NULL);
+
+    GST_DEBUG_OBJECT (dtmfsrc, "no peer caps: %" GST_PTR_FORMAT, srccaps);
+  } else {
+    GstCaps *temp;
+    GstStructure *s;
+    const GValue *value;
+    gint pt;
+    gint clock_rate;
+
+    /* peer provides caps we can use to fixate, intersect. This always returns a
+     * writable caps. */
+    temp = gst_caps_intersect (srccaps, peercaps);
+    gst_caps_unref (srccaps);
+    gst_caps_unref (peercaps);
+
+    if (!temp) {
+      GST_DEBUG_OBJECT (dtmfsrc, "Could not get intersection with peer caps");
+      return FALSE;
+    }
+
+    if (gst_caps_is_empty (temp)) {
+      GST_DEBUG_OBJECT (dtmfsrc, "Intersection with peer caps is empty");
+      gst_caps_unref (temp);
+      return FALSE;
+    }
+
+    /* now fixate, start by taking the first caps */
+    temp = gst_caps_truncate (temp);
+    temp = gst_caps_make_writable (temp);
+    srccaps = temp;
+
+    /* get first structure */
+    s = gst_caps_get_structure (srccaps, 0);
+
+    if (gst_structure_get_int (s, "payload", &pt)) {
+      /* use peer pt */
+      dtmfsrc->pt = pt;
+      GST_LOG_OBJECT (dtmfsrc, "using peer pt %d", pt);
+    } else {
+      if (gst_structure_has_field (s, "payload")) {
+        /* can only fixate if there is a field */
+        gst_structure_fixate_field_nearest_int (s, "payload", dtmfsrc->pt);
+        gst_structure_get_int (s, "payload", &pt);
+        GST_LOG_OBJECT (dtmfsrc, "using peer pt %d", pt);
+      } else {
+        /* no pt field, use the internal pt */
+        pt = dtmfsrc->pt;
+        gst_structure_set (s, "payload", G_TYPE_INT, pt, NULL);
+        GST_LOG_OBJECT (dtmfsrc, "using internal pt %d", pt);
+      }
+    }
+
+    if (gst_structure_get_int (s, "clock-rate", &clock_rate)) {
+      dtmfsrc->clock_rate = clock_rate;
+      GST_LOG_OBJECT (dtmfsrc, "using clock-rate from caps %d",
+          dtmfsrc->clock_rate);
+    } else {
+      GST_LOG_OBJECT (dtmfsrc, "using existing clock-rate %d",
+          dtmfsrc->clock_rate);
+    }
+    gst_structure_set (s, "clock-rate", G_TYPE_INT, dtmfsrc->clock_rate, NULL);
+
+
+    if (gst_structure_has_field_typed (s, "ssrc", G_TYPE_UINT)) {
+      value = gst_structure_get_value (s, "ssrc");
+      dtmfsrc->current_ssrc = g_value_get_uint (value);
+      GST_LOG_OBJECT (dtmfsrc, "using peer ssrc %08x", dtmfsrc->current_ssrc);
+    } else {
+      /* FIXME, fixate_nearest_uint would be even better */
+      gst_structure_set (s, "ssrc", G_TYPE_UINT, dtmfsrc->current_ssrc, NULL);
+      GST_LOG_OBJECT (dtmfsrc, "using internal ssrc %08x",
+          dtmfsrc->current_ssrc);
+    }
+
+    if (gst_structure_has_field_typed (s, "clock-base", G_TYPE_UINT)) {
+      value = gst_structure_get_value (s, "clock-base");
+      dtmfsrc->ts_base = g_value_get_uint (value);
+      GST_LOG_OBJECT (dtmfsrc, "using peer clock-base %u", dtmfsrc->ts_base);
+    } else {
+      /* FIXME, fixate_nearest_uint would be even better */
+      gst_structure_set (s, "clock-base", G_TYPE_UINT, dtmfsrc->ts_base, NULL);
+      GST_LOG_OBJECT (dtmfsrc, "using internal clock-base %u",
+          dtmfsrc->ts_base);
+    }
+    if (gst_structure_has_field_typed (s, "seqnum-base", G_TYPE_UINT)) {
+      value = gst_structure_get_value (s, "seqnum-base");
+      dtmfsrc->seqnum_base = g_value_get_uint (value);
+      GST_LOG_OBJECT (dtmfsrc, "using peer seqnum-base %u",
+          dtmfsrc->seqnum_base);
+    } else {
+      /* FIXME, fixate_nearest_uint would be even better */
+      gst_structure_set (s, "seqnum-base", G_TYPE_UINT, dtmfsrc->seqnum_base,
+          NULL);
+      GST_LOG_OBJECT (dtmfsrc, "using internal seqnum-base %u",
+          dtmfsrc->seqnum_base);
+    }
+
+    if (gst_structure_has_field_typed (s, "ptime", G_TYPE_UINT)) {
+      value = gst_structure_get_value (s, "ptime");
+      dtmfsrc->ptime = g_value_get_uint (value);
+      GST_LOG_OBJECT (dtmfsrc, "using peer ptime %u", dtmfsrc->ptime);
+    } else if (gst_structure_has_field_typed (s, "maxptime", G_TYPE_UINT)) {
+      value = gst_structure_get_value (s, "maxptime");
+      dtmfsrc->ptime = g_value_get_uint (value);
+      GST_LOG_OBJECT (dtmfsrc, "using peer maxptime as ptime %u",
+          dtmfsrc->ptime);
+    } else {
+      /* FIXME, fixate_nearest_uint would be even better */
+      gst_structure_set (s, "ptime", G_TYPE_UINT, dtmfsrc->ptime, NULL);
+      GST_LOG_OBJECT (dtmfsrc, "using internal ptime %u", dtmfsrc->ptime);
+    }
+
+
+    GST_DEBUG_OBJECT (dtmfsrc, "with peer caps: %" GST_PTR_FORMAT, srccaps);
+  }
+
+  ret = gst_pad_set_caps (GST_BASE_SRC_PAD (basesrc), srccaps);
+  gst_caps_unref (srccaps);
+
+  dtmfsrc->dirty = FALSE;
+
+  return ret;
+
+}
+
+
+static void
+gst_rtp_dtmf_src_ready_to_paused (GstRTPDTMFSrc * dtmfsrc)
+{
+  if (dtmfsrc->ssrc == -1)
+    dtmfsrc->current_ssrc = g_random_int ();
+  else
+    dtmfsrc->current_ssrc = dtmfsrc->ssrc;
+
+  if (dtmfsrc->seqnum_offset == -1)
+    dtmfsrc->seqnum_base = g_random_int_range (0, G_MAXUINT16);
+  else
+    dtmfsrc->seqnum_base = dtmfsrc->seqnum_offset;
+  dtmfsrc->seqnum = dtmfsrc->seqnum_base;
+
+  if (dtmfsrc->ts_offset == -1)
+    dtmfsrc->ts_base = g_random_int ();
+  else
+    dtmfsrc->ts_base = dtmfsrc->ts_offset;
+
+  dtmfsrc->timestamp = 0;
+}
+
+static GstStateChangeReturn
+gst_rtp_dtmf_src_change_state (GstElement * element, GstStateChange transition)
+{
+  GstRTPDTMFSrc *dtmfsrc;
+  GstStateChangeReturn result;
+  gboolean no_preroll = FALSE;
+  GstRTPDTMFSrcEvent *event = NULL;
+
+  dtmfsrc = GST_RTP_DTMF_SRC (element);
+
+  switch (transition) {
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      gst_rtp_dtmf_src_ready_to_paused (dtmfsrc);
+
+      /* Flushing the event queue */
+      while ((event = g_async_queue_try_pop (dtmfsrc->event_queue)) != NULL) {
+        gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event);
+        gst_rtp_dtmf_src_event_free (event);
+      }
+      dtmfsrc->last_event_was_start = FALSE;
+
+      no_preroll = TRUE;
+      break;
+    default:
+      break;
+  }
+
+  if ((result =
+          GST_ELEMENT_CLASS (gst_rtp_dtmf_src_parent_class)->change_state
+          (element, transition)) == GST_STATE_CHANGE_FAILURE)
+    goto failure;
+
+  switch (transition) {
+    case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
+      no_preroll = TRUE;
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+
+      /* Flushing the event queue */
+      while ((event = g_async_queue_try_pop (dtmfsrc->event_queue)) != NULL) {
+        gst_dtmf_src_post_message (dtmfsrc, "dtmf-event-dropped", event);
+        gst_rtp_dtmf_src_event_free (event);
+      }
+      dtmfsrc->last_event_was_start = FALSE;
+
+      /* Indicate that we don't do PRE_ROLL */
+      break;
+
+    default:
+      break;
+  }
+
+  if (no_preroll && result == GST_STATE_CHANGE_SUCCESS)
+    result = GST_STATE_CHANGE_NO_PREROLL;
+
+  return result;
+
+  /* ERRORS */
+failure:
+  {
+    GST_ERROR_OBJECT (dtmfsrc, "parent failed state change");
+    return result;
+  }
+}
+
+
+static gboolean
+gst_rtp_dtmf_src_unlock (GstBaseSrc * src)
+{
+  GstRTPDTMFSrc *dtmfsrc = GST_RTP_DTMF_SRC (src);
+  GstRTPDTMFSrcEvent *event = NULL;
+
+  GST_DEBUG_OBJECT (dtmfsrc, "Called unlock");
+
+  GST_OBJECT_LOCK (dtmfsrc);
+  dtmfsrc->paused = TRUE;
+  if (dtmfsrc->clockid) {
+    gst_clock_id_unschedule (dtmfsrc->clockid);
+  }
+  GST_OBJECT_UNLOCK (dtmfsrc);
+
+  GST_DEBUG_OBJECT (dtmfsrc, "Pushing the PAUSE_TASK event on unlock request");
+  event = g_slice_new0 (GstRTPDTMFSrcEvent);
+  event->event_type = RTP_DTMF_EVENT_TYPE_PAUSE_TASK;
+  g_async_queue_push (dtmfsrc->event_queue, event);
+
+  return TRUE;
+}
+
+
+static gboolean
+gst_rtp_dtmf_src_unlock_stop (GstBaseSrc * src)
+{
+  GstRTPDTMFSrc *dtmfsrc = GST_RTP_DTMF_SRC (src);
+
+  GST_DEBUG_OBJECT (dtmfsrc, "Unlock stopped");
+
+  GST_OBJECT_LOCK (dtmfsrc);
+  dtmfsrc->paused = FALSE;
+  GST_OBJECT_UNLOCK (dtmfsrc);
+
+  return TRUE;
+}
+
+gboolean
+gst_rtp_dtmf_src_plugin_init (GstPlugin * plugin)
+{
+  return gst_element_register (plugin, "rtpdtmfsrc",
+      GST_RANK_NONE, GST_TYPE_RTP_DTMF_SRC);
+}
diff --git a/gst/dtmf/gstrtpdtmfsrc.h b/gst/dtmf/gstrtpdtmfsrc.h
new file mode 100644
index 000000000..3e9256ce5
--- /dev/null
+++ b/gst/dtmf/gstrtpdtmfsrc.h
@@ -0,0 +1,115 @@
+/* GStreamer RTP DTMF source
+ *
+ * gstrtpdtmfsrc.h:
+ *
+ * Copyright (C) <2007> Nokia Corporation.
+ *   Contact: Zeeshan Ali <zeeshan.ali@nokia.com>
+ * Copyright (C) <2005> Wim Taymans <wim@fluendo.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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_RTP_DTMF_SRC_H__
+#define __GST_RTP_DTMF_SRC_H__
+
+#include <gst/gst.h>
+#include <gst/base/gstbasesrc.h>
+#include <gst/rtp/gstrtpbuffer.h>
+
+#include "gstdtmfcommon.h"
+
+G_BEGIN_DECLS
+#define GST_TYPE_RTP_DTMF_SRC		(gst_rtp_dtmf_src_get_type())
+#define GST_RTP_DTMF_SRC(obj)		(G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_DTMF_SRC,GstRTPDTMFSrc))
+#define GST_RTP_DTMF_SRC_CLASS(klass)	(G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_DTMF_SRC,GstRTPDTMFSrcClass))
+#define GST_RTP_DTMF_SRC_GET_CLASS(obj)     (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_RTP_DTMF_SRC, GstRTPDTMFSrcClass))
+#define GST_IS_RTP_DTMF_SRC(obj)		(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_DTMF_SRC))
+#define GST_IS_RTP_DTMF_SRC_CLASS(klass)	(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_DTMF_SRC))
+#define GST_RTP_DTMF_SRC_CAST(obj)		((GstRTPDTMFSrc *)(obj))
+typedef struct _GstRTPDTMFSrc GstRTPDTMFSrc;
+typedef struct _GstRTPDTMFSrcClass GstRTPDTMFSrcClass;
+
+
+
+enum _GstRTPDTMFEventType
+{
+  RTP_DTMF_EVENT_TYPE_START,
+  RTP_DTMF_EVENT_TYPE_STOP,
+  RTP_DTMF_EVENT_TYPE_PAUSE_TASK
+};
+
+typedef enum _GstRTPDTMFEventType GstRTPDTMFEventType;
+
+struct _GstRTPDTMFSrcEvent
+{
+  GstRTPDTMFEventType event_type;
+  GstRTPDTMFPayload *payload;
+};
+
+typedef struct _GstRTPDTMFSrcEvent GstRTPDTMFSrcEvent;
+
+/**
+ * GstRTPDTMFSrc:
+ * @element: the parent element.
+ *
+ * The opaque #GstRTPDTMFSrc data structure.
+ */
+struct _GstRTPDTMFSrc
+{
+  /*< private >*/
+  GstBaseSrc basesrc;
+
+  GAsyncQueue *event_queue;
+  GstClockID clockid;
+  gboolean paused;
+  GstRTPDTMFPayload *payload;
+
+  GstClockTime timestamp;
+  GstClockTime start_timestamp;
+  gboolean first_packet;
+  gboolean last_packet;
+  guint32 ts_base;
+  guint16 seqnum_base;
+  gint16 seqnum_offset;
+  guint16 seqnum;
+  gint32 ts_offset;
+  guint32 rtp_timestamp;
+  guint pt;
+  guint ssrc;
+  guint current_ssrc;
+  guint16 ptime;
+  guint16 packet_redundancy;
+  guint32 clock_rate;
+  gboolean last_event_was_start;
+
+  GstClockTime last_stop;
+
+  gboolean dirty;
+  guint16 redundancy_count;
+};
+
+struct _GstRTPDTMFSrcClass
+{
+  GstBaseSrcClass parent_class;
+};
+
+GType gst_rtp_dtmf_src_get_type (void);
+
+gboolean gst_rtp_dtmf_src_plugin_init (GstPlugin * plugin);
+
+
+G_END_DECLS
+#endif /* __GST_RTP_DTMF_SRC_H__ */
diff --git a/gst/effectv/Makefile.in b/gst/effectv/Makefile.in
index 30843790f..df77d4184 100644
--- a/gst/effectv/Makefile.in
+++ b/gst/effectv/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/effectv
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -143,10 +169,23 @@ libgsteffectv_la_OBJECTS = $(am_libgsteffectv_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgsteffectv_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgsteffectv_la_CFLAGS) $(CFLAGS) \
 	$(libgsteffectv_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -159,20 +198,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgsteffectv_la_SOURCES)
 DIST_SOURCES = $(libgsteffectv_la_SOURCES)
 am__can_run_installinfo = \
@@ -181,6 +216,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -349,6 +401,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -567,6 +620,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -593,12 +647,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgsteffectv.la: $(libgsteffectv_la_OBJECTS) $(libgsteffectv_la_DEPENDENCIES) $(EXTRA_libgsteffectv_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgsteffectv_la_LINK) -rpath $(plugindir) $(libgsteffectv_la_OBJECTS) $(libgsteffectv_la_LIBADD) $(LIBS)
 
@@ -740,26 +797,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -771,15 +817,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -788,6 +830,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -932,19 +989,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/effectv/gstaging.c b/gst/effectv/gstaging.c
index 3ba5e8d8c..c6bfa11c6 100644
--- a/gst/effectv/gstaging.c
+++ b/gst/effectv/gstaging.c
@@ -20,8 +20,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/effectv/gstaging.h b/gst/effectv/gstaging.h
index 604af5d18..52466d15e 100644
--- a/gst/effectv/gstaging.h
+++ b/gst/effectv/gstaging.h
@@ -20,8 +20,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AGING_H__
diff --git a/gst/effectv/gstdice.c b/gst/effectv/gstdice.c
index e9e7d0bc4..7c90b660a 100644
--- a/gst/effectv/gstdice.c
+++ b/gst/effectv/gstdice.c
@@ -22,8 +22,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/effectv/gstdice.h b/gst/effectv/gstdice.h
index 0a6e5eecf..4c14c976e 100644
--- a/gst/effectv/gstdice.h
+++ b/gst/effectv/gstdice.h
@@ -22,8 +22,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_DICE_H__
diff --git a/gst/effectv/gstedge.c b/gst/effectv/gstedge.c
index 91047bb84..d7fe89bab 100644
--- a/gst/effectv/gstedge.c
+++ b/gst/effectv/gstedge.c
@@ -20,8 +20,8 @@
  * 
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/effectv/gstedge.h b/gst/effectv/gstedge.h
index f906fa361..290c31283 100644
--- a/gst/effectv/gstedge.h
+++ b/gst/effectv/gstedge.h
@@ -20,8 +20,8 @@
  * 
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_EDGE_H__
diff --git a/gst/effectv/gsteffectv.c b/gst/effectv/gsteffectv.c
index 51bdaebc3..0e9ffc05a 100644
--- a/gst/effectv/gsteffectv.c
+++ b/gst/effectv/gsteffectv.c
@@ -17,8 +17,8 @@
  * 
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/effectv/gsteffectv.h b/gst/effectv/gsteffectv.h
index a95399190..0f00799a5 100644
--- a/gst/effectv/gsteffectv.h
+++ b/gst/effectv/gsteffectv.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
diff --git a/gst/effectv/gstop.c b/gst/effectv/gstop.c
index 119e3f79f..d91a375f5 100644
--- a/gst/effectv/gstop.c
+++ b/gst/effectv/gstop.c
@@ -20,8 +20,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/effectv/gstop.h b/gst/effectv/gstop.h
index 4e948686a..557240232 100644
--- a/gst/effectv/gstop.h
+++ b/gst/effectv/gstop.h
@@ -20,8 +20,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_OP_H__
diff --git a/gst/effectv/gstquark.c b/gst/effectv/gstquark.c
index 3f7bffa29..cb02643fe 100644
--- a/gst/effectv/gstquark.c
+++ b/gst/effectv/gstquark.c
@@ -20,8 +20,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/effectv/gstquark.h b/gst/effectv/gstquark.h
index 2b092ed98..555775683 100644
--- a/gst/effectv/gstquark.h
+++ b/gst/effectv/gstquark.h
@@ -20,8 +20,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_QUARK_H__
diff --git a/gst/effectv/gstradioac.c b/gst/effectv/gstradioac.c
index 8280a8d78..fc2d40904 100644
--- a/gst/effectv/gstradioac.c
+++ b/gst/effectv/gstradioac.c
@@ -20,8 +20,8 @@
  *
  * You should have received a cradioacy 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/effectv/gstradioac.h b/gst/effectv/gstradioac.h
index 6771289b2..c8d7c99e5 100644
--- a/gst/effectv/gstradioac.h
+++ b/gst/effectv/gstradioac.h
@@ -20,8 +20,8 @@
  *
  * You should have received a cradioacy 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RADIOAC_H__
diff --git a/gst/effectv/gstrev.c b/gst/effectv/gstrev.c
index 23a886646..189e313bf 100644
--- a/gst/effectv/gstrev.c
+++ b/gst/effectv/gstrev.c
@@ -36,8 +36,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/effectv/gstrev.h b/gst/effectv/gstrev.h
index fc40d8cc8..198311b99 100644
--- a/gst/effectv/gstrev.h
+++ b/gst/effectv/gstrev.h
@@ -36,8 +36,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_REV_H__
diff --git a/gst/effectv/gstripple.c b/gst/effectv/gstripple.c
index 2fcf05a14..71b9796e1 100644
--- a/gst/effectv/gstripple.c
+++ b/gst/effectv/gstripple.c
@@ -24,8 +24,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/effectv/gstripple.h b/gst/effectv/gstripple.h
index 12242a230..329e54308 100644
--- a/gst/effectv/gstripple.h
+++ b/gst/effectv/gstripple.h
@@ -20,8 +20,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RIPPLE_H__
diff --git a/gst/effectv/gstshagadelic.c b/gst/effectv/gstshagadelic.c
index c84876469..956e5dd59 100644
--- a/gst/effectv/gstshagadelic.c
+++ b/gst/effectv/gstshagadelic.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/effectv/gstshagadelic.h b/gst/effectv/gstshagadelic.h
index 43d964dc1..a89cbf43c 100644
--- a/gst/effectv/gstshagadelic.h
+++ b/gst/effectv/gstshagadelic.h
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_SHAGADELIC_H__
diff --git a/gst/effectv/gststreak.c b/gst/effectv/gststreak.c
index 3b3c622d0..6eeb08dc7 100644
--- a/gst/effectv/gststreak.c
+++ b/gst/effectv/gststreak.c
@@ -24,8 +24,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/effectv/gststreak.h b/gst/effectv/gststreak.h
index 55198f4dd..5d9362de0 100644
--- a/gst/effectv/gststreak.h
+++ b/gst/effectv/gststreak.h
@@ -20,8 +20,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_STREAK_H__
diff --git a/gst/effectv/gstvertigo.c b/gst/effectv/gstvertigo.c
index f5aeaf461..3e575cbb4 100644
--- a/gst/effectv/gstvertigo.c
+++ b/gst/effectv/gstvertigo.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/effectv/gstvertigo.h b/gst/effectv/gstvertigo.h
index 0081bf0e4..39c225b35 100644
--- a/gst/effectv/gstvertigo.h
+++ b/gst/effectv/gstvertigo.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VERTIGO_H__
diff --git a/gst/effectv/gstwarp.c b/gst/effectv/gstwarp.c
index 5ced81097..327c9de52 100644
--- a/gst/effectv/gstwarp.c
+++ b/gst/effectv/gstwarp.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/gst/effectv/gstwarp.h b/gst/effectv/gstwarp.h
index 3fe48b34b..73eeebc0d 100644
--- a/gst/effectv/gstwarp.h
+++ b/gst/effectv/gstwarp.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_WARP_H__
diff --git a/gst/equalizer/Makefile.in b/gst/equalizer/Makefile.in
index 6651816cc..c9c8cdd6e 100644
--- a/gst/equalizer/Makefile.in
+++ b/gst/equalizer/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -18,23 +17,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -55,15 +82,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/equalizer
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -140,10 +166,23 @@ libgstequalizer_la_OBJECTS = $(am_libgstequalizer_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstequalizer_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstequalizer_la_CFLAGS) $(CFLAGS) \
 	$(libgstequalizer_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -156,20 +195,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstequalizer_la_SOURCES)
 DIST_SOURCES = $(libgstequalizer_la_SOURCES)
 am__can_run_installinfo = \
@@ -179,6 +214,23 @@ am__can_run_installinfo = \
   esac
 DATA = $(preset_DATA)
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -347,6 +399,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -561,6 +614,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -587,12 +641,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstequalizer.la: $(libgstequalizer_la_OBJECTS) $(libgstequalizer_la_DEPENDENCIES) $(EXTRA_libgstequalizer_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstequalizer_la_LINK) -rpath $(plugindir) $(libgstequalizer_la_OBJECTS) $(libgstequalizer_la_LIBADD) $(LIBS)
 
@@ -683,26 +740,15 @@ uninstall-presetDATA:
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(presetdir)'; $(am__uninstall_files_from_dir)
 
-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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -714,15 +760,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -731,6 +773,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -875,20 +932,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES uninstall-presetDATA
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	install-presetDATA 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 uninstall-pluginLTLIBRARIES \
-	uninstall-presetDATA
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES install-presetDATA 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 tags-am uninstall \
+	uninstall-am uninstall-pluginLTLIBRARIES uninstall-presetDATA
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/equalizer/gstiirequalizer.c b/gst/equalizer/gstiirequalizer.c
index acc827795..d278c4c03 100644
--- a/gst/equalizer/gstiirequalizer.c
+++ b/gst/equalizer/gstiirequalizer.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/equalizer/gstiirequalizer.h b/gst/equalizer/gstiirequalizer.h
index 98f220097..3ba70eed6 100644
--- a/gst/equalizer/gstiirequalizer.h
+++ b/gst/equalizer/gstiirequalizer.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_IIR_EQUALIZER__
diff --git a/gst/equalizer/gstiirequalizer10bands.c b/gst/equalizer/gstiirequalizer10bands.c
index 0f8b56e45..71bbf53ee 100644
--- a/gst/equalizer/gstiirequalizer10bands.c
+++ b/gst/equalizer/gstiirequalizer10bands.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/equalizer/gstiirequalizer10bands.h b/gst/equalizer/gstiirequalizer10bands.h
index 72bda61ec..7066721fa 100644
--- a/gst/equalizer/gstiirequalizer10bands.h
+++ b/gst/equalizer/gstiirequalizer10bands.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_IIR_EQUALIZER_10BANDS__
diff --git a/gst/equalizer/gstiirequalizer3bands.c b/gst/equalizer/gstiirequalizer3bands.c
index 993d27758..02f14ed4a 100644
--- a/gst/equalizer/gstiirequalizer3bands.c
+++ b/gst/equalizer/gstiirequalizer3bands.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/equalizer/gstiirequalizer3bands.h b/gst/equalizer/gstiirequalizer3bands.h
index a76249a98..3790fca99 100644
--- a/gst/equalizer/gstiirequalizer3bands.h
+++ b/gst/equalizer/gstiirequalizer3bands.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_IIR_EQUALIZER_3BANDS__
diff --git a/gst/equalizer/gstiirequalizernbands.c b/gst/equalizer/gstiirequalizernbands.c
index 462003a86..ab2c0318c 100644
--- a/gst/equalizer/gstiirequalizernbands.c
+++ b/gst/equalizer/gstiirequalizernbands.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/equalizer/gstiirequalizernbands.h b/gst/equalizer/gstiirequalizernbands.h
index b0ffa851d..c119a1ff1 100644
--- a/gst/equalizer/gstiirequalizernbands.h
+++ b/gst/equalizer/gstiirequalizernbands.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_IIR_EQUALIZER_NBANDS__
diff --git a/gst/flv/Makefile.in b/gst/flv/Makefile.in
index d9c57e6df..bba3ee8dd 100644
--- a/gst/flv/Makefile.in
+++ b/gst/flv/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/flv
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -136,10 +162,23 @@ libgstflv_la_OBJECTS = $(am_libgstflv_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstflv_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstflv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstflv_la_CFLAGS) $(CFLAGS) \
 	$(libgstflv_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -152,20 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstflv_la_SOURCES)
 DIST_SOURCES = $(libgstflv_la_SOURCES)
 am__can_run_installinfo = \
@@ -174,6 +209,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -342,6 +394,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -546,6 +599,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -572,12 +626,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstflv.la: $(libgstflv_la_OBJECTS) $(libgstflv_la_DEPENDENCIES) $(EXTRA_libgstflv_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstflv_la_LINK) -rpath $(plugindir) $(libgstflv_la_OBJECTS) $(libgstflv_la_LIBADD) $(LIBS)
 
@@ -631,26 +688,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -662,15 +708,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -679,6 +721,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -823,19 +880,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/flv/amfdefs.h b/gst/flv/amfdefs.h
index 00d0c1ae0..d1e772539 100644
--- a/gst/flv/amfdefs.h
+++ b/gst/flv/amfdefs.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __AMFDEFS_H__
diff --git a/gst/flv/gstflvdemux.c b/gst/flv/gstflvdemux.c
index 9f8cbe257..0e166bc75 100644
--- a/gst/flv/gstflvdemux.c
+++ b/gst/flv/gstflvdemux.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/flv/gstflvdemux.h b/gst/flv/gstflvdemux.h
index c4684ed84..78a82ae71 100644
--- a/gst/flv/gstflvdemux.h
+++ b/gst/flv/gstflvdemux.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __FLV_DEMUX_H__
diff --git a/gst/flv/gstflvmux.c b/gst/flv/gstflvmux.c
index 52008d39b..8d7387f4d 100644
--- a/gst/flv/gstflvmux.c
+++ b/gst/flv/gstflvmux.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -1141,6 +1141,8 @@ gst_flv_mux_write_header (GstFlvMux * mux)
   GValue streamheader = { 0 };
   GSList *l;
   GstFlowReturn ret;
+  GstSegment segment;
+  gchar s_id[32];
 
   /* if not streaming, check if downstream is seekable */
   if (!mux->streamable) {
@@ -1216,17 +1218,24 @@ gst_flv_mux_write_header (GstFlvMux * mux)
   if (audio_codec_data != NULL)
     gst_flv_mux_put_buffer_in_streamheader (&streamheader, audio_codec_data);
 
+  /* stream-start (FIXME: create id based on input ids) */
+  g_snprintf (s_id, sizeof (s_id), "flvmux-%08x", g_random_int ());
+  gst_pad_push_event (mux->srcpad, gst_event_new_stream_start (s_id));
+
   /* create the caps and put the streamheader in them */
   caps = gst_caps_new_empty_simple ("video/x-flv");
   structure = gst_caps_get_structure (caps, 0);
   gst_structure_set_value (structure, "streamheader", &streamheader);
   g_value_unset (&streamheader);
 
-  if (!gst_pad_has_current_caps (mux->srcpad))
-    gst_pad_set_caps (mux->srcpad, caps);
+  gst_pad_set_caps (mux->srcpad, caps);
 
   gst_caps_unref (caps);
 
+  /* segment */
+  gst_segment_init (&segment, GST_FORMAT_BYTES);
+  gst_pad_push_event (mux->srcpad, gst_event_new_segment (&segment));
+
   /* push the header buffer, the metadata and the codec info, if any */
   ret = gst_flv_mux_push (mux, header);
   if (ret != GST_FLOW_OK)
@@ -1463,26 +1472,13 @@ gst_flv_mux_handle_buffer (GstCollectPads * pads, GstCollectData * cdata,
   GstFlowReturn ret;
 
   if (mux->state == GST_FLV_MUX_STATE_HEADER) {
-    GstSegment segment;
-    gchar s_id[32];
-
     if (mux->collect->data == NULL) {
       GST_ELEMENT_ERROR (mux, STREAM, MUX, (NULL),
           ("No input streams configured"));
       return GST_FLOW_ERROR;
     }
 
-    /* stream-start (FIXME: create id based on input ids) */
-    g_snprintf (s_id, sizeof (s_id), "flvmux-%08x", g_random_int ());
-    gst_pad_push_event (mux->srcpad, gst_event_new_stream_start (s_id));
-
-    /* segment */
-    gst_segment_init (&segment, GST_FORMAT_BYTES);
-    if (gst_pad_push_event (mux->srcpad, gst_event_new_segment (&segment)))
-      ret = gst_flv_mux_write_header (mux);
-    else
-      ret = GST_FLOW_ERROR;
-
+    ret = gst_flv_mux_write_header (mux);
     if (ret != GST_FLOW_OK)
       return ret;
     mux->state = GST_FLV_MUX_STATE_DATA;
diff --git a/gst/flv/gstflvmux.h b/gst/flv/gstflvmux.h
index ca0b2e12f..cb57fc84e 100644
--- a/gst/flv/gstflvmux.h
+++ b/gst/flv/gstflvmux.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_FLV_MUX_H__
diff --git a/gst/flv/gstindex.c b/gst/flv/gstindex.c
index aff8dc124..d56f3cce7 100644
--- a/gst/flv/gstindex.c
+++ b/gst/flv/gstindex.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/flv/gstindex.h b/gst/flv/gstindex.h
index 653aa18b7..0a51f9c64 100644
--- a/gst/flv/gstindex.h
+++ b/gst/flv/gstindex.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_INDEX_H__
diff --git a/gst/flv/gstmemindex.c b/gst/flv/gstmemindex.c
index dfcd35c10..eef99c2c5 100644
--- a/gst/flv/gstmemindex.c
+++ b/gst/flv/gstmemindex.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
diff --git a/gst/flx/Makefile.in b/gst/flx/Makefile.in
index 37676ab32..3bb855b3f 100644
--- a/gst/flx/Makefile.in
+++ b/gst/flx/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/flx
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -136,10 +162,23 @@ libgstflxdec_la_OBJECTS = $(am_libgstflxdec_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstflxdec_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstflxdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstflxdec_la_CFLAGS) $(CFLAGS) \
 	$(libgstflxdec_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -152,20 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstflxdec_la_SOURCES)
 DIST_SOURCES = $(libgstflxdec_la_SOURCES)
 am__can_run_installinfo = \
@@ -174,6 +209,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -342,6 +394,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -543,6 +596,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -569,12 +623,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstflxdec.la: $(libgstflxdec_la_OBJECTS) $(libgstflxdec_la_DEPENDENCIES) $(EXTRA_libgstflxdec_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstflxdec_la_LINK) -rpath $(plugindir) $(libgstflxdec_la_OBJECTS) $(libgstflxdec_la_LIBADD) $(LIBS)
 
@@ -628,26 +685,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -659,15 +705,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -676,6 +718,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -820,19 +877,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/flx/flx_color.c b/gst/flx/flx_color.c
index 854010a4e..047bfdf6d 100644
--- a/gst/flx/flx_color.c
+++ b/gst/flx/flx_color.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/flx/flx_color.h b/gst/flx/flx_color.h
index 80378e1de..fd36ab7dc 100644
--- a/gst/flx/flx_color.h
+++ b/gst/flx/flx_color.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __FLX_COLOR_H__
diff --git a/gst/flx/flx_fmt.h b/gst/flx/flx_fmt.h
index ae0e268b6..fbe850bc1 100644
--- a/gst/flx/flx_fmt.h
+++ b/gst/flx/flx_fmt.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/flx/gstflxdec.c b/gst/flx/gstflxdec.c
index bd169528a..35e934edb 100644
--- a/gst/flx/gstflxdec.c
+++ b/gst/flx/gstflxdec.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-flxdec
@@ -587,6 +587,13 @@ gst_flxdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
 
           res = gst_pad_push (flxdec->srcpad, out);
           break;
+        default:
+          /* check if we have the complete frame */
+          if (avail < flxfh.size)
+            goto need_more_data;
+
+          gst_adapter_flush (flxdec->adapter, flxfh.size);
+          break;
       }
 
       if (chunk)
diff --git a/gst/flx/gstflxdec.h b/gst/flx/gstflxdec.h
index 55f5b7f40..3f9a0aabe 100644
--- a/gst/flx/gstflxdec.h
+++ b/gst/flx/gstflxdec.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_FLX_DECODER_H__
diff --git a/gst/goom/Makefile.in b/gst/goom/Makefile.in
index 9a311172f..6928396b7 100644
--- a/gst/goom/Makefile.in
+++ b/gst/goom/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -53,14 +80,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/goom
-DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp README
 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-gcc-inline-assembly.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 \
@@ -155,10 +182,23 @@ libgstgoom_la_OBJECTS = $(am_libgstgoom_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstgoom_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstgoom_la_CFLAGS) $(CFLAGS) \
 	$(libgstgoom_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -171,20 +211,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstgoom_la_SOURCES)
 DIST_SOURCES = $(am__libgstgoom_la_SOURCES_DIST)
 am__can_run_installinfo = \
@@ -192,6 +228,23 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -360,6 +413,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -589,6 +643,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -615,12 +670,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstgoom.la: $(libgstgoom_la_OBJECTS) $(libgstgoom_la_DEPENDENCIES) $(EXTRA_libgstgoom_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstgoom_la_LINK) -rpath $(plugindir) $(libgstgoom_la_OBJECTS) $(libgstgoom_la_LIBADD) $(LIBS)
 
@@ -810,26 +868,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -841,15 +888,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -858,6 +901,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -1002,19 +1060,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 .NOTPARALLEL:
diff --git a/gst/goom/config_param.c b/gst/goom/config_param.c
index feb501558..cd1965d71 100644
--- a/gst/goom/config_param.c
+++ b/gst/goom/config_param.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "goom_config_param.h"
diff --git a/gst/goom/convolve_fx.c b/gst/goom/convolve_fx.c
index 457b5eb2c..980e113a5 100644
--- a/gst/goom/convolve_fx.c
+++ b/gst/goom/convolve_fx.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include "goom_fx.h"
 #include "goom_plugin_info.h"
diff --git a/gst/goom/drawmethods.c b/gst/goom/drawmethods.c
index cd8163aa9..97f0cf139 100644
--- a/gst/goom/drawmethods.c
+++ b/gst/goom/drawmethods.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include "drawmethods.h"
 
diff --git a/gst/goom/drawmethods.h b/gst/goom/drawmethods.h
index cdf3d4786..3f8627424 100644
--- a/gst/goom/drawmethods.h
+++ b/gst/goom/drawmethods.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef _DRAWMETHODS_H
 #define _DRAWMETHODS_H
diff --git a/gst/goom/filters.c b/gst/goom/filters.c
index 8c6dbb103..aa04960c6 100644
--- a/gst/goom/filters.c
+++ b/gst/goom/filters.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 // --- CHUI EN TRAIN DE SUPPRIMER LES EXTERN RESOLX ET C_RESOLY ---
 
diff --git a/gst/goom/flying_stars_fx.c b/gst/goom/flying_stars_fx.c
index a0ad8b797..de35e7242 100644
--- a/gst/goom/flying_stars_fx.c
+++ b/gst/goom/flying_stars_fx.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include "goom_fx.h"
 #include "goom_plugin_info.h"
diff --git a/gst/goom/goom.h b/gst/goom/goom.h
index ccfc3f2f3..02a0936e7 100644
--- a/gst/goom/goom.h
+++ b/gst/goom/goom.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef _GOOMCORE_H
 #define _GOOMCORE_H
diff --git a/gst/goom/goom_config.h b/gst/goom/goom_config.h
index 8daa1d6d8..7264bfe4e 100644
--- a/gst/goom/goom_config.h
+++ b/gst/goom/goom_config.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include <glib.h>
 
diff --git a/gst/goom/goom_config_param.h b/gst/goom/goom_config_param.h
index 15fd22f18..ba08da95c 100644
--- a/gst/goom/goom_config_param.h
+++ b/gst/goom/goom_config_param.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef _CONFIG_PARAM_H
 #define _CONFIG_PARAM_H
diff --git a/gst/goom/goom_core.c b/gst/goom/goom_core.c
index 7c2aef1b9..6f6597ff5 100644
--- a/gst/goom/goom_core.c
+++ b/gst/goom/goom_core.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/goom/goom_filters.h b/gst/goom/goom_filters.h
index 5c6545a02..13096e270 100644
--- a/gst/goom/goom_filters.h
+++ b/gst/goom/goom_filters.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef FILTERS_H
 #define FILTERS_H
diff --git a/gst/goom/goom_fx.h b/gst/goom/goom_fx.h
index b239a3811..7c82d6cfe 100644
--- a/gst/goom/goom_fx.h
+++ b/gst/goom/goom_fx.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef _GOOM_FX_H
 #define _GOOM_FX_H
diff --git a/gst/goom/goom_graphic.h b/gst/goom/goom_graphic.h
index 7632205b4..54dde3765 100644
--- a/gst/goom/goom_graphic.h
+++ b/gst/goom/goom_graphic.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef GRAPHIC_H
 #define GRAPHIC_H
diff --git a/gst/goom/goom_plugin_info.h b/gst/goom/goom_plugin_info.h
index 294afe84f..da0e96e58 100644
--- a/gst/goom/goom_plugin_info.h
+++ b/gst/goom/goom_plugin_info.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef _PLUGIN_INFO_H
 #define _PLUGIN_INFO_H
diff --git a/gst/goom/goom_tools.c b/gst/goom/goom_tools.c
index 4f9a6b2bc..01758fd98 100644
--- a/gst/goom/goom_tools.c
+++ b/gst/goom/goom_tools.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include "goom_tools.h"
 #include <stdlib.h>
diff --git a/gst/goom/goom_tools.h b/gst/goom/goom_tools.h
index caaa219e9..34f5240fc 100644
--- a/gst/goom/goom_tools.h
+++ b/gst/goom/goom_tools.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef _GOOMTOOLS_H
 #define _GOOMTOOLS_H
diff --git a/gst/goom/goom_typedefs.h b/gst/goom/goom_typedefs.h
index 7188b4b82..d3a33a999 100644
--- a/gst/goom/goom_typedefs.h
+++ b/gst/goom/goom_typedefs.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef _GOOM_TYPEDEFS_H
 #define _GOOM_TYPEDEFS_H
diff --git a/gst/goom/goom_visual_fx.h b/gst/goom/goom_visual_fx.h
index 6f6f964ac..0bb5a49c2 100644
--- a/gst/goom/goom_visual_fx.h
+++ b/gst/goom/goom_visual_fx.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef _VISUAL_FX_H
 #define _VISUAL_FX_H
diff --git a/gst/goom/graphic.c b/gst/goom/graphic.c
index 64c022370..9f3044829 100644
--- a/gst/goom/graphic.c
+++ b/gst/goom/graphic.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include "goom_graphic.h"
 
diff --git a/gst/goom/gstgoom.c b/gst/goom/gstgoom.c
index 171ac07a9..48864c77e 100644
--- a/gst/goom/gstgoom.c
+++ b/gst/goom/gstgoom.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -545,7 +545,7 @@ gst_goom_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
     GST_DEBUG_OBJECT (goom, "processing buffer");
 
     /* get timestamp of the current adapter byte */
-    timestamp = gst_adapter_prev_timestamp (goom->adapter, &dist);
+    timestamp = gst_adapter_prev_pts (goom->adapter, &dist);
     if (GST_CLOCK_TIME_IS_VALID (timestamp)) {
       /* convert bytes to time */
       dist /= goom->bps;
diff --git a/gst/goom/gstgoom.h b/gst/goom/gstgoom.h
index 16e745d93..331e6ab5c 100644
--- a/gst/goom/gstgoom.h
+++ b/gst/goom/gstgoom.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_GOOM_H__
diff --git a/gst/goom/lines.c b/gst/goom/lines.c
index 096240cda..a7c1eda91 100644
--- a/gst/goom/lines.c
+++ b/gst/goom/lines.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "lines.h"
diff --git a/gst/goom/lines.h b/gst/goom/lines.h
index 6c2b47cd3..4cd50d877 100644
--- a/gst/goom/lines.h
+++ b/gst/goom/lines.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _LINES_H
diff --git a/gst/goom/mathtools.c b/gst/goom/mathtools.c
index 84d5a964e..dd190bf60 100644
--- a/gst/goom/mathtools.c
+++ b/gst/goom/mathtools.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "mathtools.h"
diff --git a/gst/goom/mathtools.h b/gst/goom/mathtools.h
index baf79b018..5340dab74 100644
--- a/gst/goom/mathtools.h
+++ b/gst/goom/mathtools.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
  #ifndef MATHTOOLS_H
diff --git a/gst/goom/motif_goom1.h b/gst/goom/motif_goom1.h
index ba5a7d45e..82f381bdb 100644
--- a/gst/goom/motif_goom1.h
+++ b/gst/goom/motif_goom1.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 static Motif CONV_MOTIF1 = {
 	{15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
diff --git a/gst/goom/motif_goom2.h b/gst/goom/motif_goom2.h
index 1ef1cbe1b..2de92afa2 100644
--- a/gst/goom/motif_goom2.h
+++ b/gst/goom/motif_goom2.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 static Motif CONV_MOTIF2 = {
 	{15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
diff --git a/gst/goom/plugin_info.c b/gst/goom/plugin_info.c
index b50c9dd9a..0952dcafb 100644
--- a/gst/goom/plugin_info.c
+++ b/gst/goom/plugin_info.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
diff --git a/gst/goom/ppc_drawings.h b/gst/goom/ppc_drawings.h
index 8dd158d58..d35adf650 100644
--- a/gst/goom/ppc_drawings.h
+++ b/gst/goom/ppc_drawings.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* Generic PowerPC Code */
diff --git a/gst/goom/ppc_drawings.s b/gst/goom/ppc_drawings.s
index 4e100b755..943cce7fd 100644
--- a/gst/goom/ppc_drawings.s
+++ b/gst/goom/ppc_drawings.s
@@ -12,8 +12,8 @@
 ;
 ; 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.
+; Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+; Boston, MA 02110-1301, USA.
 
 ; Change log :
 ; 30 May 2003 : File creation
diff --git a/gst/goom/ppc_zoom_ultimate.h b/gst/goom/ppc_zoom_ultimate.h
index 6c6a4ccca..cd2c8a268 100644
--- a/gst/goom/ppc_zoom_ultimate.h
+++ b/gst/goom/ppc_zoom_ultimate.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* Generic PowerPC Code */
diff --git a/gst/goom/ppc_zoom_ultimate.s b/gst/goom/ppc_zoom_ultimate.s
index 10c25a5a3..c37ec503e 100644
--- a/gst/goom/ppc_zoom_ultimate.s
+++ b/gst/goom/ppc_zoom_ultimate.s
@@ -12,8 +12,8 @@
 ;
 ; 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.
+; Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+; Boston, MA 02110-1301, USA.
 
 ; Change log :
 ; 21 Dec 2003 : Use of altivec is now determined with a parameter
diff --git a/gst/goom/sound_tester.c b/gst/goom/sound_tester.c
index c6e161035..d02f0b51a 100644
--- a/gst/goom/sound_tester.c
+++ b/gst/goom/sound_tester.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include "sound_tester.h"
 
diff --git a/gst/goom/sound_tester.h b/gst/goom/sound_tester.h
index a79bf2c5c..2651d5f9d 100644
--- a/gst/goom/sound_tester.h
+++ b/gst/goom/sound_tester.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef _SOUND_TESTER_H
 #define _SOUND_TESTER_H
diff --git a/gst/goom/surf3d.c b/gst/goom/surf3d.c
index 588a5535f..847284b37 100644
--- a/gst/goom/surf3d.c
+++ b/gst/goom/surf3d.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include "surf3d.h"
 #include "goom_plugin_info.h"
diff --git a/gst/goom/surf3d.h b/gst/goom/surf3d.h
index 83caa33d9..f8a2180d9 100644
--- a/gst/goom/surf3d.h
+++ b/gst/goom/surf3d.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef _SURF3D_H
 #define _SURF3D_H
diff --git a/gst/goom/tentacle3d.c b/gst/goom/tentacle3d.c
index 4c0d1438d..2abe42fc2 100644
--- a/gst/goom/tentacle3d.c
+++ b/gst/goom/tentacle3d.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include <stdlib.h>
 
diff --git a/gst/goom/tentacle3d.h b/gst/goom/tentacle3d.h
index 3696dd8d4..9f3ba9234 100644
--- a/gst/goom/tentacle3d.h
+++ b/gst/goom/tentacle3d.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef _TENTACLE3D_H
 #define _TENTACLE3D_H
diff --git a/gst/goom/v3d.c b/gst/goom/v3d.c
index f37141eda..7df4f1388 100644
--- a/gst/goom/v3d.c
+++ b/gst/goom/v3d.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include "v3d.h"
 
diff --git a/gst/goom/v3d.h b/gst/goom/v3d.h
index 4257ccae6..fd5f93923 100644
--- a/gst/goom/v3d.h
+++ b/gst/goom/v3d.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef _V3D_H
 #define _V3D_H
diff --git a/gst/goom2k1/Makefile.am b/gst/goom2k1/Makefile.am
index 5ff22ba5b..b32753f74 100644
--- a/gst/goom2k1/Makefile.am
+++ b/gst/goom2k1/Makefile.am
@@ -7,7 +7,21 @@ noinst_HEADERS = gstgoom.h filters.h goom_core.h goom_tools.h graphic.h lines.h
 
 libgstgoom2k1_la_SOURCES = gstgoom.c goom_core.c $(GOOM_FILTER_FILES) graphic.c lines.c
 
-libgstgoom2k1_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GOOM_FILTER_CFLAGS)
+libgstgoom2k1_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GOOM_FILTER_CFLAGS) \
+	-Dgst_goom_get_type=gst_goom2k1_get_type		\
+	-Dgoom_init=goom2k1_init				\
+	-Dgoom_close=goom2k1_close -Dgoom_update=goom2k1_update	\
+	-Dgoom_set_resolution=goom2k1_set_resolution		\
+	-Dgoom_lines=goom2k1_lines				\
+	-DBLACK=GOOM2K1_BLACK -DWHITE=GOOM2K1_WHITE		\
+	-DRED=GOOM2K1_RED -DBLUE=GOOM2K1_BLUE			\
+	-DGREEN=GOOM2K1_GREEN -DYELLOW=GOOM2K1_YELLOW		\
+	-DORANGE=GOOM2K1_ORANGE -DVIOLET=GOOM2K1_VIOLET		\
+	-DzoomFilterFastRGB=zoomFilterFastRGB2k1		\
+	-DpointFilter=pointFilter2k1				\
+	-DzoomFilterDestroy=zoomFilterDestroy2k1		\
+	-DzoomFilterNew=zoomFilterNew2k1
+
 libgstgoom2k1_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
 libgstgoom2k1_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstgoom2k1_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
diff --git a/gst/goom2k1/Makefile.in b/gst/goom2k1/Makefile.in
index f640fd183..e67317073 100644
--- a/gst/goom2k1/Makefile.in
+++ b/gst/goom2k1/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/goom2k1
-DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 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-gcc-inline-assembly.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 \
@@ -138,10 +164,23 @@ libgstgoom2k1_la_OBJECTS = $(am_libgstgoom2k1_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstgoom2k1_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) \
 	$(libgstgoom2k1_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -154,20 +193,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstgoom2k1_la_SOURCES)
 DIST_SOURCES = $(libgstgoom2k1_la_SOURCES)
 am__can_run_installinfo = \
@@ -176,6 +211,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -344,6 +396,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -509,7 +562,21 @@ GOOM_FILTER_FILES = filters.c
 GOOM_FILTER_CFLAGS = -UMMX -UUSE_ASM
 noinst_HEADERS = gstgoom.h filters.h goom_core.h goom_tools.h graphic.h lines.h 
 libgstgoom2k1_la_SOURCES = gstgoom.c goom_core.c $(GOOM_FILTER_FILES) graphic.c lines.c
-libgstgoom2k1_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GOOM_FILTER_CFLAGS)
+libgstgoom2k1_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GOOM_FILTER_CFLAGS) \
+	-Dgst_goom_get_type=gst_goom2k1_get_type		\
+	-Dgoom_init=goom2k1_init				\
+	-Dgoom_close=goom2k1_close -Dgoom_update=goom2k1_update	\
+	-Dgoom_set_resolution=goom2k1_set_resolution		\
+	-Dgoom_lines=goom2k1_lines				\
+	-DBLACK=GOOM2K1_BLACK -DWHITE=GOOM2K1_WHITE		\
+	-DRED=GOOM2K1_RED -DBLUE=GOOM2K1_BLUE			\
+	-DGREEN=GOOM2K1_GREEN -DYELLOW=GOOM2K1_YELLOW		\
+	-DORANGE=GOOM2K1_ORANGE -DVIOLET=GOOM2K1_VIOLET		\
+	-DzoomFilterFastRGB=zoomFilterFastRGB2k1		\
+	-DpointFilter=pointFilter2k1				\
+	-DzoomFilterDestroy=zoomFilterDestroy2k1		\
+	-DzoomFilterNew=zoomFilterNew2k1
+
 libgstgoom2k1_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
 libgstgoom2k1_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstgoom2k1_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
@@ -548,6 +615,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -574,12 +642,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstgoom2k1.la: $(libgstgoom2k1_la_OBJECTS) $(libgstgoom2k1_la_DEPENDENCIES) $(EXTRA_libgstgoom2k1_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstgoom2k1_la_LINK) -rpath $(plugindir) $(libgstgoom2k1_la_OBJECTS) $(libgstgoom2k1_la_LIBADD) $(LIBS)
 
@@ -657,26 +728,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -688,15 +748,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -705,6 +761,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -849,19 +920,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/goom2k1/gstgoom.c b/gst/goom2k1/gstgoom.c
index f09d0d4bd..e124edcd7 100644
--- a/gst/goom2k1/gstgoom.c
+++ b/gst/goom2k1/gstgoom.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -541,7 +541,7 @@ gst_goom_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
     GST_DEBUG_OBJECT (goom, "processing buffer");
 
     /* get timestamp of the current adapter byte */
-    timestamp = gst_adapter_prev_timestamp (goom->adapter, &dist);
+    timestamp = gst_adapter_prev_pts (goom->adapter, &dist);
     if (GST_CLOCK_TIME_IS_VALID (timestamp)) {
       /* convert bytes to time */
       dist /= goom->bps;
diff --git a/gst/goom2k1/gstgoom.h b/gst/goom2k1/gstgoom.h
index 79b3b99a1..d225a8e2a 100644
--- a/gst/goom2k1/gstgoom.h
+++ b/gst/goom2k1/gstgoom.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_GOOM_H__
diff --git a/gst/icydemux/Makefile.in b/gst/icydemux/Makefile.in
index cbcc63274..21870f2b1 100644
--- a/gst/icydemux/Makefile.in
+++ b/gst/icydemux/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/icydemux
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -136,10 +162,23 @@ libgsticydemux_la_OBJECTS = $(am_libgsticydemux_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgsticydemux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgsticydemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgsticydemux_la_CFLAGS) $(CFLAGS) \
 	$(libgsticydemux_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -152,20 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgsticydemux_la_SOURCES)
 DIST_SOURCES = $(libgsticydemux_la_SOURCES)
 am__can_run_installinfo = \
@@ -174,6 +209,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -342,6 +394,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -543,6 +596,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -569,12 +623,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgsticydemux.la: $(libgsticydemux_la_OBJECTS) $(libgsticydemux_la_DEPENDENCIES) $(EXTRA_libgsticydemux_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgsticydemux_la_LINK) -rpath $(plugindir) $(libgsticydemux_la_OBJECTS) $(libgsticydemux_la_LIBADD) $(LIBS)
 
@@ -620,26 +677,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -651,15 +697,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -668,6 +710,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -812,19 +869,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/icydemux/gsticydemux.c b/gst/icydemux/gsticydemux.c
index d60de27b8..40afd0b72 100644
--- a/gst/icydemux/gsticydemux.c
+++ b/gst/icydemux/gsticydemux.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -207,6 +207,28 @@ gst_icydemux_dispose (GObject * object)
   G_OBJECT_CLASS (parent_class)->dispose (object);
 }
 
+typedef struct
+{
+  GstCaps *caps;
+  GstPad *pad;
+} CopyStickyEventsData;
+
+static gboolean
+copy_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data)
+{
+  CopyStickyEventsData *data = user_data;
+
+  if (GST_EVENT_TYPE (*event) >= GST_EVENT_CAPS && data->caps) {
+    gst_pad_set_caps (data->pad, data->caps);
+    data->caps = NULL;
+  }
+
+  if (GST_EVENT_TYPE (*event) != GST_EVENT_CAPS)
+    gst_pad_push_event (data->pad, gst_event_ref (*event));
+
+  return TRUE;
+}
+
 static gboolean
 gst_icydemux_add_srcpad (GstICYDemux * icydemux, GstCaps * new_caps)
 {
@@ -225,6 +247,8 @@ gst_icydemux_add_srcpad (GstICYDemux * icydemux, GstCaps * new_caps)
   }
 
   if (icydemux->srcpad == NULL) {
+    CopyStickyEventsData data;
+
     icydemux->srcpad =
         gst_pad_new_from_template (gst_element_class_get_pad_template
         (GST_ELEMENT_GET_CLASS (icydemux), "src"), "src");
@@ -233,10 +257,12 @@ gst_icydemux_add_srcpad (GstICYDemux * icydemux, GstCaps * new_caps)
     gst_pad_use_fixed_caps (icydemux->srcpad);
     gst_pad_set_active (icydemux->srcpad, TRUE);
 
-    if (icydemux->src_caps) {
-      if (!gst_pad_set_caps (icydemux->srcpad, icydemux->src_caps))
-        GST_WARNING_OBJECT (icydemux, "Failed to set caps on src pad");
-    }
+    data.pad = icydemux->srcpad;
+    data.caps = icydemux->src_caps;
+    gst_pad_sticky_events_foreach (icydemux->sinkpad, copy_sticky_events,
+        &data);
+    if (data.caps)
+      gst_pad_set_caps (data.pad, data.caps);
 
     GST_DEBUG_OBJECT (icydemux, "Adding src pad with caps %" GST_PTR_FORMAT,
         icydemux->src_caps);
@@ -383,8 +409,9 @@ gst_icydemux_handle_event (GstPad * pad, GstObject * parent, GstEvent * event)
 
         return gst_pad_event_default (pad, parent, event);
       default:
-        icydemux->cached_events = g_list_append (icydemux->cached_events,
-            event);
+        if (!GST_EVENT_IS_STICKY (event))
+          icydemux->cached_events =
+              g_list_append (icydemux->cached_events, event);
         return TRUE;
     }
   } else {
@@ -532,7 +559,12 @@ gst_icydemux_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
   while (size) {
     if (icydemux->remaining) {
       chunk = (size <= icydemux->remaining) ? size : icydemux->remaining;
-      sub = gst_buffer_copy_region (buf, GST_BUFFER_COPY_ALL, offset, chunk);
+      if (offset == 0 && chunk == size) {
+        sub = buf;
+        buf = NULL;
+      } else {
+        sub = gst_buffer_copy_region (buf, GST_BUFFER_COPY_ALL, offset, chunk);
+      }
       offset += chunk;
       icydemux->remaining -= chunk;
       size -= chunk;
@@ -576,7 +608,8 @@ gst_icydemux_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
   }
 
 done:
-  gst_buffer_unref (buf);
+  if (buf)
+    gst_buffer_unref (buf);
 
   return ret;
 
diff --git a/gst/icydemux/gsticydemux.h b/gst/icydemux/gsticydemux.h
index d48339af2..3f05218ad 100644
--- a/gst/icydemux/gsticydemux.h
+++ b/gst/icydemux/gsticydemux.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_ICYDEMUX_H__
diff --git a/gst/id3demux/Makefile.in b/gst/id3demux/Makefile.in
index 3a99c96be..9cfd22e80 100644
--- a/gst/id3demux/Makefile.in
+++ b/gst/id3demux/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/id3demux
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -135,10 +161,23 @@ libgstid3demux_la_OBJECTS = $(am_libgstid3demux_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstid3demux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstid3demux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstid3demux_la_CFLAGS) $(CFLAGS) \
 	$(libgstid3demux_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstid3demux_la_SOURCES)
 DIST_SOURCES = $(libgstid3demux_la_SOURCES)
 am__can_run_installinfo = \
@@ -173,6 +208,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -341,6 +393,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -544,6 +597,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -570,12 +624,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstid3demux.la: $(libgstid3demux_la_OBJECTS) $(libgstid3demux_la_DEPENDENCIES) $(EXTRA_libgstid3demux_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstid3demux_la_LINK) -rpath $(plugindir) $(libgstid3demux_la_OBJECTS) $(libgstid3demux_la_LIBADD) $(LIBS)
 
@@ -621,26 +678,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -652,15 +698,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -669,6 +711,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -813,19 +870,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/id3demux/gstid3demux.c b/gst/id3demux/gstid3demux.c
index 801781643..a55832a52 100644
--- a/gst/id3demux/gstid3demux.c
+++ b/gst/id3demux/gstid3demux.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/id3demux/gstid3demux.h b/gst/id3demux/gstid3demux.h
index a875502b2..9561dfdf2 100644
--- a/gst/id3demux/gstid3demux.h
+++ b/gst/id3demux/gstid3demux.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_ID3DEMUX_H__
diff --git a/gst/imagefreeze/Makefile.in b/gst/imagefreeze/Makefile.in
index ad7b15ba3..2fa0722ff 100644
--- a/gst/imagefreeze/Makefile.in
+++ b/gst/imagefreeze/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/imagefreeze
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -135,10 +161,23 @@ libgstimagefreeze_la_OBJECTS = $(am_libgstimagefreeze_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstimagefreeze_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstimagefreeze_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstimagefreeze_la_CFLAGS) $(CFLAGS) \
 	$(libgstimagefreeze_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstimagefreeze_la_SOURCES)
 DIST_SOURCES = $(libgstimagefreeze_la_SOURCES)
 am__can_run_installinfo = \
@@ -173,6 +208,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -341,6 +393,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -542,6 +595,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -568,12 +622,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstimagefreeze.la: $(libgstimagefreeze_la_OBJECTS) $(libgstimagefreeze_la_DEPENDENCIES) $(EXTRA_libgstimagefreeze_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstimagefreeze_la_LINK) -rpath $(plugindir) $(libgstimagefreeze_la_OBJECTS) $(libgstimagefreeze_la_LIBADD) $(LIBS)
 
@@ -619,26 +676,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -650,15 +696,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -667,6 +709,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -811,19 +868,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/imagefreeze/gstimagefreeze.c b/gst/imagefreeze/gstimagefreeze.c
index 7c56d0e54..63fe84f5a 100644
--- a/gst/imagefreeze/gstimagefreeze.c
+++ b/gst/imagefreeze/gstimagefreeze.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/imagefreeze/gstimagefreeze.h b/gst/imagefreeze/gstimagefreeze.h
index 4a00d1cda..e03528ada 100644
--- a/gst/imagefreeze/gstimagefreeze.h
+++ b/gst/imagefreeze/gstimagefreeze.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_IMAGE_FREEZE_H__
diff --git a/gst/interleave/Makefile.in b/gst/interleave/Makefile.in
index 3c10731ea..bc6c4bf99 100644
--- a/gst/interleave/Makefile.in
+++ b/gst/interleave/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/interleave
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -137,10 +163,23 @@ libgstinterleave_la_OBJECTS = $(am_libgstinterleave_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstinterleave_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstinterleave_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstinterleave_la_CFLAGS) $(CFLAGS) \
 	$(libgstinterleave_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -153,20 +192,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstinterleave_la_SOURCES)
 DIST_SOURCES = $(libgstinterleave_la_SOURCES)
 am__can_run_installinfo = \
@@ -175,6 +210,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -343,6 +395,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -544,6 +597,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -570,12 +624,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstinterleave.la: $(libgstinterleave_la_OBJECTS) $(libgstinterleave_la_DEPENDENCIES) $(EXTRA_libgstinterleave_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstinterleave_la_LINK) -rpath $(plugindir) $(libgstinterleave_la_OBJECTS) $(libgstinterleave_la_LIBADD) $(LIBS)
 
@@ -637,26 +694,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -668,15 +714,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -685,6 +727,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -829,19 +886,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/interleave/deinterleave.c b/gst/interleave/deinterleave.c
index a98774867..507423122 100644
--- a/gst/interleave/deinterleave.c
+++ b/gst/interleave/deinterleave.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* TODO: 
@@ -215,21 +215,42 @@ gst_deinterleave_init (GstDeinterleave * self)
   gst_element_add_pad (GST_ELEMENT (self), self->sink);
 }
 
+typedef struct
+{
+  GstCaps *caps;
+  GstPad *pad;
+} CopyStickyEventsData;
+
+static gboolean
+copy_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data)
+{
+  CopyStickyEventsData *data = user_data;
+
+  if (GST_EVENT_TYPE (*event) >= GST_EVENT_CAPS && data->caps) {
+    gst_pad_set_caps (data->pad, data->caps);
+    data->caps = NULL;
+  }
+
+  if (GST_EVENT_TYPE (*event) != GST_EVENT_CAPS)
+    gst_pad_push_event (data->pad, gst_event_ref (*event));
+
+  return TRUE;
+}
+
 static void
 gst_deinterleave_add_new_pads (GstDeinterleave * self, GstCaps * caps)
 {
   GstPad *pad;
-
   guint i;
 
   for (i = 0; i < GST_AUDIO_INFO_CHANNELS (&self->audio_info); i++) {
     gchar *name = g_strdup_printf ("src_%u", i);
-
     GstCaps *srccaps;
     GstAudioInfo info;
     GstAudioFormat format = GST_AUDIO_INFO_FORMAT (&self->audio_info);
     gint rate = GST_AUDIO_INFO_RATE (&self->audio_info);
     GstAudioChannelPosition position = GST_AUDIO_CHANNEL_POSITION_MONO;
+    CopyStickyEventsData data;
 
     /* Set channel position if we know it */
     if (self->keep_positions)
@@ -247,7 +268,12 @@ gst_deinterleave_add_new_pads (GstDeinterleave * self, GstCaps * caps)
     gst_pad_set_query_function (pad,
         GST_DEBUG_FUNCPTR (gst_deinterleave_src_query));
     gst_pad_set_active (pad, TRUE);
-    gst_pad_set_caps (pad, srccaps);
+
+    data.pad = pad;
+    data.caps = srccaps;
+    gst_pad_sticky_events_foreach (self->sink, copy_sticky_events, &data);
+    if (data.caps)
+      gst_pad_set_caps (pad, data.caps);
     gst_element_add_pad (GST_ELEMENT (self), pad);
     self->srcpads = g_list_prepend (self->srcpads, gst_object_ref (pad));
 
@@ -266,9 +292,9 @@ gst_deinterleave_set_pads_caps (GstDeinterleave * self, GstCaps * caps)
 
   for (l = self->srcpads, i = 0; l; l = l->next, i++) {
     GstPad *pad = GST_PAD (l->data);
-
     GstCaps *srccaps;
     GstAudioInfo info;
+
     gst_audio_info_from_caps (&info, caps);
     if (self->keep_positions)
       GST_AUDIO_INFO_POSITION (&info, 0) =
@@ -430,7 +456,6 @@ static void
 __remove_channels (GstCaps * caps)
 {
   GstStructure *s;
-
   gint i, size;
 
   size = gst_caps_get_size (caps);
@@ -445,7 +470,6 @@ static void
 __set_channels (GstCaps * caps, gint channels)
 {
   GstStructure *s;
-
   gint i, size;
 
   size = gst_caps_get_size (caps);
@@ -463,9 +487,7 @@ gst_deinterleave_sink_getcaps (GstPad * pad, GstObject * parent,
     GstCaps * filter)
 {
   GstDeinterleave *self = GST_DEINTERLEAVE (parent);
-
   GstCaps *ret;
-
   GList *l;
 
   GST_OBJECT_LOCK (self);
@@ -479,7 +501,6 @@ gst_deinterleave_sink_getcaps (GstPad * pad, GstObject * parent,
   ret = gst_caps_new_any ();
   for (l = GST_ELEMENT (self)->pads; l != NULL; l = l->next) {
     GstPad *ourpad = GST_PAD (l->data);
-
     GstCaps *peercaps = NULL, *ourcaps;
 
     ourcaps = gst_caps_copy (gst_pad_get_pad_template_caps (ourpad));
@@ -503,7 +524,6 @@ gst_deinterleave_sink_getcaps (GstPad * pad, GstObject * parent,
      * otherwise assume that the peer accepts everything */
     if (peercaps) {
       GstCaps *intersection;
-
       GstCaps *oldret = ret;
 
       __remove_channels (peercaps);
@@ -533,7 +553,6 @@ static gboolean
 gst_deinterleave_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   GstDeinterleave *self = GST_DEINTERLEAVE (parent);
-
   gboolean ret;
 
   GST_DEBUG ("Got %s event on pad %s:%s", GST_EVENT_TYPE_NAME (event),
@@ -560,13 +579,14 @@ gst_deinterleave_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
     }
 
     default:
-      if (self->srcpads) {
-        ret = gst_pad_event_default (pad, parent, event);
-      } else {
+      if (!self->srcpads && !GST_EVENT_IS_STICKY (event)) {
+        /* Sticky events are copied when creating a new pad */
         GST_OBJECT_LOCK (self);
         self->pending_events = g_list_append (self->pending_events, event);
         GST_OBJECT_UNLOCK (self);
         ret = TRUE;
+      } else {
+        ret = gst_pad_event_default (pad, parent, event);
       }
       break;
   }
@@ -578,14 +598,12 @@ static gboolean
 gst_deinterleave_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
 {
   GstDeinterleave *self = GST_DEINTERLEAVE (parent);
-
   gboolean res;
 
   res = gst_pad_query_default (pad, parent, query);
 
   if (res && GST_QUERY_TYPE (query) == GST_QUERY_DURATION) {
     GstFormat format;
-
     gint64 dur;
 
     gst_query_parse_duration (query, &format, &dur);
@@ -598,7 +616,6 @@ gst_deinterleave_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
           dur / GST_AUDIO_INFO_CHANNELS (&self->audio_info));
   } else if (res && GST_QUERY_TYPE (query) == GST_QUERY_POSITION) {
     GstFormat format;
-
     gint64 pos;
 
     gst_query_parse_position (query, &format, &pos);
@@ -657,49 +674,39 @@ static GstFlowReturn
 gst_deinterleave_process (GstDeinterleave * self, GstBuffer * buf)
 {
   GstFlowReturn ret = GST_FLOW_OK;
-
   guint channels = GST_AUDIO_INFO_CHANNELS (&self->audio_info);
-
   guint pads_pushed = 0, buffers_allocated = 0;
-
   guint nframes =
       gst_buffer_get_size (buf) / channels /
       (GST_AUDIO_INFO_WIDTH (&self->audio_info) / 8);
-
   guint bufsize = nframes * (GST_AUDIO_INFO_WIDTH (&self->audio_info) / 8);
-
   guint i;
-
   GList *srcs;
-
   GstBuffer **buffers_out = g_new0 (GstBuffer *, channels);
-
   guint8 *in, *out;
-
   GstMapInfo read_info;
-  gst_buffer_map (buf, &read_info, GST_MAP_READ);
+  GList *pending_events, *l;
 
   /* Send any pending events to all src pads */
   GST_OBJECT_LOCK (self);
-  if (self->pending_events) {
-    GList *events;
+  pending_events = self->pending_events;
+  self->pending_events = NULL;
+  GST_OBJECT_UNLOCK (self);
 
+  if (pending_events) {
     GstEvent *event;
 
     GST_DEBUG_OBJECT (self, "Sending pending events to all src pads");
-
-    for (events = self->pending_events; events != NULL; events = events->next) {
-      event = GST_EVENT (events->data);
-
+    for (l = pending_events; l; l = l->next) {
+      event = l->data;
       for (srcs = self->srcpads; srcs != NULL; srcs = srcs->next)
         gst_pad_push_event (GST_PAD (srcs->data), gst_event_ref (event));
       gst_event_unref (event);
     }
-
-    g_list_free (self->pending_events);
-    self->pending_events = NULL;
+    g_list_free (pending_events);
   }
-  GST_OBJECT_UNLOCK (self);
+
+  gst_buffer_map (buf, &read_info, GST_MAP_READ);
 
   /* Allocate buffers */
   for (srcs = self->srcpads, i = 0; srcs; srcs = srcs->next, i++) {
@@ -732,16 +739,12 @@ gst_deinterleave_process (GstDeinterleave * self, GstBuffer * buf)
     GstPad *pad = (GstPad *) srcs->data;
     GstMapInfo write_info;
 
-
     in = (guint8 *) read_info.data;
     in += i * (GST_AUDIO_INFO_WIDTH (&self->audio_info) / 8);
     if (buffers_out[i]) {
       gst_buffer_map (buffers_out[i], &write_info, GST_MAP_WRITE);
-
       out = (guint8 *) write_info.data;
-
       self->func (out, in, channels, nframes);
-
       gst_buffer_unmap (buffers_out[i], &write_info);
 
       ret = gst_pad_push (pad, buffers_out[i]);
@@ -801,7 +804,6 @@ static GstFlowReturn
 gst_deinterleave_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 {
   GstDeinterleave *self = GST_DEINTERLEAVE (parent);
-
   GstFlowReturn ret;
 
   g_return_val_if_fail (self->func != NULL, GST_FLOW_NOT_NEGOTIATED);
diff --git a/gst/interleave/deinterleave.h b/gst/interleave/deinterleave.h
index 959fc0649..07c188574 100644
--- a/gst/interleave/deinterleave.h
+++ b/gst/interleave/deinterleave.h
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __DEINTERLEAVE_H__
diff --git a/gst/interleave/interleave.c b/gst/interleave/interleave.c
index 4c46a094f..474e6e8a1 100644
--- a/gst/interleave/interleave.c
+++ b/gst/interleave/interleave.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* TODO:
@@ -296,6 +296,24 @@ gst_interleave_set_channel_positions (GstInterleave * self, GstStructure * s)
   gst_structure_set (s, "channel-mask", GST_TYPE_BITMASK, channel_mask, NULL);
 }
 
+static void
+gst_interleave_send_stream_start (GstInterleave * self)
+{
+  GST_OBJECT_LOCK (self);
+  if (self->send_stream_start) {
+    gchar s_id[32];
+
+    self->send_stream_start = FALSE;
+    GST_OBJECT_UNLOCK (self);
+
+    /* stream-start (FIXME: create id based on input ids) */
+    g_snprintf (s_id, sizeof (s_id), "interleave-%08x", g_random_int ());
+    gst_pad_push_event (self->src, gst_event_new_stream_start (s_id));
+  } else {
+    GST_OBJECT_UNLOCK (self);
+  }
+}
+
 static void
 gst_interleave_class_init (GstInterleaveClass * klass)
 {
@@ -386,7 +404,6 @@ gst_interleave_init (GstInterleave * self)
   gst_pad_set_event_function (self->src,
       GST_DEBUG_FUNCPTR (gst_interleave_src_event));
 
-  gst_pad_set_active (self->src, TRUE);
   gst_element_add_pad (GST_ELEMENT (self), self->src);
 
   self->collect = gst_collect_pads_new ();
@@ -508,8 +525,7 @@ gst_interleave_request_new_pad (GstElement * element, GstPadTemplate * templ,
     gst_structure_set (s, "channels", G_TYPE_INT, self->channels, NULL);
     gst_interleave_set_channel_positions (self, s);
 
-    /* FIXME: send caps event after stream-start event */
-    gst_pad_set_active (self->src, TRUE);
+    gst_interleave_send_stream_start (self);
     gst_pad_set_caps (self->src, srccaps);
     gst_caps_unref (srccaps);
 
@@ -575,7 +591,7 @@ gst_interleave_release_pad (GstElement * element, GstPad * pad)
       gst_structure_set (s, "channels", G_TYPE_INT, self->channels, NULL);
       gst_interleave_set_channel_positions (self, s);
 
-      gst_pad_set_active (self->src, TRUE);
+      gst_interleave_send_stream_start (self);
       gst_pad_set_caps (self->src, srccaps);
       gst_caps_unref (srccaps);
     } else {
@@ -762,7 +778,7 @@ gst_interleave_sink_setcaps (GstInterleave * self, GstPad * pad,
     gst_structure_set (s, "channels", G_TYPE_INT, self->channels, NULL);
     gst_interleave_set_channel_positions (self, s);
 
-    gst_pad_set_active (self->src, TRUE);
+    gst_interleave_send_stream_start (self);
     res = gst_pad_set_caps (self->src, srccaps);
     gst_caps_unref (srccaps);
 
@@ -1189,18 +1205,6 @@ gst_interleave_collected (GstCollectPads * pads, GstInterleave * self)
   GstMapInfo write_info;
   GstClockTime timestamp = -1;
 
-  /* FIXME: send caps and tags after stream-start */
-#if 0
-  if (self->send_stream_start) {
-    gchar s_id[32];
-
-    /* stream-start (FIXME: create id based on input ids) */
-    g_snprintf (s_id, sizeof (s_id), "interleave-%08x", g_random_int ());
-    gst_pad_push_event (self->src, gst_event_new_stream_start (s_id));
-    self->send_stream_start = FALSE;
-  }
-#endif
-
   size = gst_collect_pads_available (pads);
   if (size == 0)
     goto eos;
diff --git a/gst/interleave/interleave.h b/gst/interleave/interleave.h
index 1e01d3ae4..87a8eedb1 100644
--- a/gst/interleave/interleave.h
+++ b/gst/interleave/interleave.h
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __INTERLEAVE_H__
diff --git a/gst/interleave/plugin.c b/gst/interleave/plugin.c
index 60b6afaf1..9eb72905a 100644
--- a/gst/interleave/plugin.c
+++ b/gst/interleave/plugin.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/interleave/plugin.h b/gst/interleave/plugin.h
index 3e96a7e11..795682760 100644
--- a/gst/interleave/plugin.h
+++ b/gst/interleave/plugin.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/isomp4/Makefile.am b/gst/isomp4/Makefile.am
index 3e806f958..09887126a 100644
--- a/gst/isomp4/Makefile.am
+++ b/gst/isomp4/Makefile.am
@@ -10,7 +10,7 @@ libgstisomp4_la_LIBADD = \
     -lgstrtp-@GST_API_VERSION@ \
     -lgsttag-@GST_API_VERSION@ \
     -lgstpbutils-@GST_API_VERSION@ \
-    $(GST_BASE_LIBS) $(GST_LIBS) $(ZLIB_LIBS)
+    $(GST_BASE_LIBS) $(GST_LIBS) $(ZLIB_LIBS) $(LIBM)
 libgstisomp4_la_LDFLAGS = ${GST_PLUGIN_LDFLAGS}
 libgstisomp4_la_SOURCES = isomp4-plugin.c gstrtpxqtdepay.c \
 	qtdemux.c qtdemux_types.c qtdemux_dump.c qtdemux_lang.c \
diff --git a/gst/isomp4/Makefile.in b/gst/isomp4/Makefile.in
index 0af9c6d73..3eef74c95 100644
--- a/gst/isomp4/Makefile.in
+++ b/gst/isomp4/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/isomp4
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -130,7 +156,7 @@ LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgstisomp4_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1)
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libgstisomp4_la_OBJECTS = libgstisomp4_la-isomp4-plugin.lo \
 	libgstisomp4_la-gstrtpxqtdepay.lo libgstisomp4_la-qtdemux.lo \
 	libgstisomp4_la-qtdemux_types.lo \
@@ -144,10 +170,23 @@ libgstisomp4_la_OBJECTS = $(am_libgstisomp4_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstisomp4_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstisomp4_la_CFLAGS) $(CFLAGS) \
 	$(libgstisomp4_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -160,20 +199,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstisomp4_la_SOURCES)
 DIST_SOURCES = $(libgstisomp4_la_SOURCES)
 am__can_run_installinfo = \
@@ -182,6 +217,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -350,6 +402,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -520,7 +573,7 @@ libgstisomp4_la_LIBADD = \
     -lgstrtp-@GST_API_VERSION@ \
     -lgsttag-@GST_API_VERSION@ \
     -lgstpbutils-@GST_API_VERSION@ \
-    $(GST_BASE_LIBS) $(GST_LIBS) $(ZLIB_LIBS)
+    $(GST_BASE_LIBS) $(GST_LIBS) $(ZLIB_LIBS) $(LIBM)
 
 libgstisomp4_la_LDFLAGS = ${GST_PLUGIN_LDFLAGS}
 libgstisomp4_la_SOURCES = isomp4-plugin.c gstrtpxqtdepay.c \
@@ -586,6 +639,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -612,12 +666,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstisomp4.la: $(libgstisomp4_la_OBJECTS) $(libgstisomp4_la_DEPENDENCIES) $(EXTRA_libgstisomp4_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstisomp4_la_LINK) -rpath $(plugindir) $(libgstisomp4_la_OBJECTS) $(libgstisomp4_la_LIBADD) $(LIBS)
 
@@ -759,26 +816,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -790,15 +836,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -807,6 +849,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -951,19 +1008,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/isomp4/atoms.c b/gst/isomp4/atoms.c
index 5f02bdb1f..7b9af627e 100644
--- a/gst/isomp4/atoms.c
+++ b/gst/isomp4/atoms.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/isomp4/atoms.h b/gst/isomp4/atoms.h
index 0998c7364..d25684795 100644
--- a/gst/isomp4/atoms.h
+++ b/gst/isomp4/atoms.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
@@ -953,7 +953,7 @@ void atom_moov_add_3gp_tag           (AtomMOOV * moov, guint32 fourcc, guint8 *
 
 void atom_moov_add_xmp_tags          (AtomMOOV * moov, GstBuffer * xmp);
 
-#define GST_QT_MUX_DEFAULT_TAG_LANGUAGE   "eng"
+#define GST_QT_MUX_DEFAULT_TAG_LANGUAGE   "und" /* undefined/unknown */
 guint16  language_code               (const char * lang);
 
 #endif /* __ATOMS_H__ */
diff --git a/gst/isomp4/atomsrecovery.c b/gst/isomp4/atomsrecovery.c
index ce6533606..e3459c91d 100644
--- a/gst/isomp4/atomsrecovery.c
+++ b/gst/isomp4/atomsrecovery.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/isomp4/atomsrecovery.h b/gst/isomp4/atomsrecovery.h
index 4dffc48d3..808d428b3 100644
--- a/gst/isomp4/atomsrecovery.h
+++ b/gst/isomp4/atomsrecovery.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/isomp4/descriptors.c b/gst/isomp4/descriptors.c
index e7d5a5d42..73d54e857 100644
--- a/gst/isomp4/descriptors.c
+++ b/gst/isomp4/descriptors.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/isomp4/descriptors.h b/gst/isomp4/descriptors.h
index cc633a305..b47252319 100644
--- a/gst/isomp4/descriptors.h
+++ b/gst/isomp4/descriptors.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/isomp4/fourcc.h b/gst/isomp4/fourcc.h
index 295d17e91..bcb182e52 100644
--- a/gst/isomp4/fourcc.h
+++ b/gst/isomp4/fourcc.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
  /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/isomp4/ftypcc.h b/gst/isomp4/ftypcc.h
index 3d31b6dd0..b8b2c5e67 100644
--- a/gst/isomp4/ftypcc.h
+++ b/gst/isomp4/ftypcc.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/isomp4/gstqtmoovrecover.c b/gst/isomp4/gstqtmoovrecover.c
index 07fd35a6f..70c7466f0 100644
--- a/gst/isomp4/gstqtmoovrecover.c
+++ b/gst/isomp4/gstqtmoovrecover.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/isomp4/gstqtmoovrecover.h b/gst/isomp4/gstqtmoovrecover.h
index c37692179..b86c2233e 100644
--- a/gst/isomp4/gstqtmoovrecover.h
+++ b/gst/isomp4/gstqtmoovrecover.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/isomp4/gstqtmux-doc.c b/gst/isomp4/gstqtmux-doc.c
index 59807ab74..4c8919726 100644
--- a/gst/isomp4/gstqtmux-doc.c
+++ b/gst/isomp4/gstqtmux-doc.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/isomp4/gstqtmux-doc.h b/gst/isomp4/gstqtmux-doc.h
index 48b5d8c41..bb8129450 100644
--- a/gst/isomp4/gstqtmux-doc.h
+++ b/gst/isomp4/gstqtmux-doc.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c
index 17019839a..fa9ac9edb 100644
--- a/gst/isomp4/gstqtmux.c
+++ b/gst/isomp4/gstqtmux.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
@@ -82,18 +82,6 @@
  * <link linkend="GstQTMux--streamable">streamable</link> allows foregoing to add
  * index metadata (at the end of file).
  *
- * <link linkend="GstQTMux--dts-method">dts-method</link> allows selecting a
- * method for managing input timestamps (stay tuned for 0.11 to have this
- * automagically settled).  The default delta/duration method should handle nice
- * (aka perfect streams) just fine, but may experience problems otherwise
- * (e.g. input stream with re-ordered B-frames and/or with frame dropping).
- * The re-ordering approach re-assigns incoming timestamps in ascending order
- * to incoming buffers and offers an alternative in such cases.  In cases where
- * that might fail, the remaining method can be tried, which is exact and
- * according to specs, but might experience playback on not so spec-wise players.
- * Note that this latter approach also requires one to enable
- * <link linkend="GstQTMux--presentation-timestamp">presentation-timestamp</link>.
- *
  * <refsect2>
  * <title>Example pipelines</title>
  * |[
@@ -119,7 +107,6 @@
 #include <gst/base/gstcollectpads.h>
 #include <gst/audio/audio.h>
 #include <gst/video/video.h>
-#include <gst/tag/xmpwriter.h>
 #include <gst/tag/tag.h>
 
 #include <sys/types.h>
@@ -144,6 +131,7 @@
 GST_DEBUG_CATEGORY_STATIC (gst_qt_mux_debug);
 #define GST_CAT_DEFAULT gst_qt_mux_debug
 
+#ifndef GST_REMOVE_DEPRECATED
 enum
 {
   DTS_METHOD_DD,
@@ -173,6 +161,7 @@ gst_qt_mux_dts_method_get_type (void)
 
 #define GST_TYPE_QT_MUX_DTS_METHOD \
   (gst_qt_mux_dts_method_get_type ())
+#endif
 
 /* QTMux signals and args */
 enum
@@ -191,7 +180,9 @@ enum
   PROP_MOOV_RECOV_FILE,
   PROP_FRAGMENT_DURATION,
   PROP_STREAMABLE,
+#ifndef GST_REMOVE_DEPRECATED
   PROP_DTS_METHOD,
+#endif
   PROP_DO_CTTS,
 };
 
@@ -207,7 +198,9 @@ enum
 #define DEFAULT_MOOV_RECOV_FILE         NULL
 #define DEFAULT_FRAGMENT_DURATION       0
 #define DEFAULT_STREAMABLE              FALSE
+#ifndef GST_REMOVE_DEPRECATED
 #define DEFAULT_DTS_METHOD              DTS_METHOD_REORDER
+#endif
 
 
 static void gst_qt_mux_finalize (GObject * object);
@@ -312,11 +305,14 @@ gst_qt_mux_class_init (GstQTMuxClass * klass)
           "Calculate and include presentation/composition time "
           "(in addition to decoding time)", DEFAULT_DO_CTTS,
           G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
+#ifndef GST_REMOVE_DEPRECATED
   g_object_class_install_property (gobject_class, PROP_DTS_METHOD,
       g_param_spec_enum ("dts-method", "dts-method",
-          "Method to determine DTS time",
+          "(DEPRECATED) Method to determine DTS time",
           GST_TYPE_QT_MUX_DTS_METHOD, DEFAULT_DTS_METHOD,
-          G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
+          G_PARAM_DEPRECATED | G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
+          G_PARAM_STATIC_STRINGS));
+#endif
   g_object_class_install_property (gobject_class, PROP_FAST_START,
       g_param_spec_boolean ("faststart", "Format file to faststart",
           "If the file should be formatted for faststart (headers first)",
@@ -357,8 +353,6 @@ gst_qt_mux_class_init (GstQTMuxClass * klass)
 static void
 gst_qt_mux_pad_reset (GstQTPad * qtpad)
 {
-  gint i;
-
   qtpad->fourcc = 0;
   qtpad->is_out_of_order = FALSE;
   qtpad->have_dts = FALSE;
@@ -369,18 +363,11 @@ gst_qt_mux_pad_reset (GstQTPad * qtpad)
   qtpad->prepare_buf_func = NULL;
   qtpad->avg_bitrate = 0;
   qtpad->max_bitrate = 0;
-  qtpad->ts_n_entries = 0;
   qtpad->total_duration = 0;
   qtpad->total_bytes = 0;
 
   qtpad->buf_head = 0;
   qtpad->buf_tail = 0;
-  for (i = 0; i < G_N_ELEMENTS (qtpad->buf_entries); i++) {
-    if (qtpad->buf_entries[i]) {
-      gst_buffer_unref (qtpad->buf_entries[i]);
-      qtpad->buf_entries[i] = NULL;
-    }
-  }
 
   if (qtpad->last_buf)
     gst_buffer_replace (&qtpad->last_buf, NULL);
@@ -2097,22 +2084,6 @@ init:
   return ret;
 }
 
-/* sigh, tiny list helpers to re-order stuff */
-static void
-gst_qt_mux_push_ts (GstQTMux * qtmux, GstQTPad * pad, GstClockTime ts)
-{
-  gint i;
-
-  for (i = 0; (i < QTMUX_NO_OF_TS) && (i < pad->ts_n_entries); i++) {
-    if (ts > pad->ts_entries[i])
-      break;
-  }
-  memmove (&pad->ts_entries[i + 1], &pad->ts_entries[i],
-      sizeof (GstClockTime) * (pad->ts_n_entries - i));
-  pad->ts_entries[i] = ts;
-  pad->ts_n_entries++;
-}
-
 static void
 check_and_subtract_ts (GstQTMux * qtmux, GstClockTime * ts_a, GstClockTime ts_b)
 {
@@ -2127,57 +2098,6 @@ check_and_subtract_ts (GstQTMux * qtmux, GstClockTime * ts_a, GstClockTime ts_b)
   }
 }
 
-/* subtract ts from all buffers enqueued on the pad */
-static void
-gst_qt_mux_subtract_ts (GstQTMux * qtmux, GstQTPad * pad, GstClockTime ts)
-{
-  gint i;
-
-  for (i = 0; (i < QTMUX_NO_OF_TS) && (i < pad->ts_n_entries); i++) {
-    check_and_subtract_ts (qtmux, &pad->ts_entries[i], ts);
-  }
-  for (i = 0; i < G_N_ELEMENTS (pad->buf_entries); i++) {
-    if (pad->buf_entries[i]) {
-      check_and_subtract_ts (qtmux, &GST_BUFFER_TIMESTAMP (pad->buf_entries[i]),
-          ts);
-      check_and_subtract_ts (qtmux,
-          &GST_BUFFER_OFFSET_END (pad->buf_entries[i]), ts);
-    }
-  }
-}
-
-/* takes ownership of @buf */
-static GstBuffer *
-gst_qt_mux_get_asc_buffer_ts (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf)
-{
-  const gint wrap = G_N_ELEMENTS (pad->buf_entries);
-  GstClockTime ts;
-
-  /* store buffer and ts, latter ordered */
-  if (buf) {
-    pad->buf_entries[pad->buf_tail++] = buf;
-    pad->buf_tail %= wrap;
-    gst_qt_mux_push_ts (qtmux, pad, GST_BUFFER_TIMESTAMP (buf));
-  }
-
-  if (pad->ts_n_entries && (!buf || pad->ts_n_entries >= QTMUX_NO_OF_TS)) {
-    ts = pad->ts_entries[--pad->ts_n_entries];
-    buf = pad->buf_entries[pad->buf_head];
-    pad->buf_entries[pad->buf_head++] = NULL;
-    pad->buf_head %= wrap;
-    buf = gst_buffer_make_writable (buf);
-    /* track original ts (= pts ?) for later */
-    GST_BUFFER_OFFSET_END (buf) = GST_BUFFER_TIMESTAMP (buf);
-    GST_BUFFER_TIMESTAMP (buf) = ts;
-    GST_DEBUG_OBJECT (qtmux, "next buffer uses reordered ts %" GST_TIME_FORMAT,
-        GST_TIME_ARGS (ts));
-  } else {
-    buf = NULL;
-  }
-
-  return buf;
-}
-
 /*
  * Here we push the buffer and update the tables in the track atoms
  */
@@ -2191,7 +2111,6 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf)
   gint64 last_dts, scaled_duration;
   gint64 pts_offset = 0;
   gboolean sync = FALSE, do_pts = FALSE;
-  gboolean drain = (buf == NULL);
   GstFlowReturn ret = GST_FLOW_OK;
 
   if (!pad->fourcc)
@@ -2205,20 +2124,11 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf)
   if (G_LIKELY (buf != NULL && GST_CLOCK_TIME_IS_VALID (pad->first_ts) &&
           pad->first_ts != 0)) {
     buf = gst_buffer_make_writable (buf);
-    check_and_subtract_ts (qtmux, &GST_BUFFER_TIMESTAMP (buf), pad->first_ts);
+    check_and_subtract_ts (qtmux, &GST_BUFFER_DTS (buf), pad->first_ts);
+    check_and_subtract_ts (qtmux, &GST_BUFFER_PTS (buf), pad->first_ts);
   }
-  /* when we obtain the first_ts we subtract from all stored buffers we have,
-   * after that we can subtract on input */
 
-again:
   last_buf = pad->last_buf;
-  if (qtmux->dts_method == DTS_METHOD_REORDER) {
-    buf = gst_qt_mux_get_asc_buffer_ts (qtmux, pad, buf);
-    if (!buf && !last_buf) {
-      GST_DEBUG_OBJECT (qtmux, "no reordered buffer");
-      return GST_FLOW_OK;
-    }
-  }
 
   if (last_buf == NULL) {
 #ifndef GST_DISABLE_GST_DEBUG
@@ -2237,58 +2147,19 @@ again:
   } else
     gst_buffer_ref (last_buf);
 
-  /* nasty heuristic mess to guestimate dealing with DTS/PTS,
-   * while also trying to stay close to input ts to preserve sync,
-   * so in DTS_METHOD_DD:
-   * - prefer using input ts where possible
-   * - if those detected out-of-order (*), mark as out-of-order
-   * - if in out-of-order, then
-   *   - if duration available, use that as delta
-   *     Also mind to preserve sync between streams, and adding
-   *     durations might drift, so try to resync when we expect
-   *     input ts == (sum of durations), which is at some keyframe input frame.
-   *   - if no duration available, we are actually in serious trouble and need
-   *     to hack around that, so we fail.
-   * To remedy failure, alternatively, in DTS_METHOD_REORDER:
-   * - collect some buffers and re-order timestamp,
-   *   then process the oldest buffer with smallest timestamps.
-   *   This should typically compensate for some codec's handywork with ts.
-   * ... but in case this makes ts end up where not expected, in DTS_METHOD_ASC:
-   * - keep each ts with its buffer and still keep a list of most recent X ts,
-   *   use the (ascending) minimum of those as DTS (and the difference as ts delta),
-   *   and use this DTS as a basis to obtain a (positive) CTS offset.
-   *   This should yield exact PTS == buffer ts, but it seems not all players
-   *   out there are aware of ctts pts ...
-   *
-   * 0.11 Phew, can we (pretty) please please sort out DTS/PTS on buffers ...
-   */
-  if (G_LIKELY (buf) && !pad->is_out_of_order) {
-    if (G_LIKELY (GST_BUFFER_TIMESTAMP_IS_VALID (last_buf) &&
-            GST_BUFFER_TIMESTAMP_IS_VALID (buf))) {
-      if ((GST_BUFFER_TIMESTAMP (buf) < GST_BUFFER_TIMESTAMP (last_buf))) {
-        GST_DEBUG_OBJECT (qtmux, "detected out-of-order input");
-        pad->is_out_of_order = TRUE;
-      }
-    } else {
-      /* this is pretty bad */
-      GST_WARNING_OBJECT (qtmux, "missing input timestamp");
-      /* fall back to durations */
-      pad->is_out_of_order = TRUE;
-    }
-  }
-
-  /* would have to be some unusual input, but not impossible */
-  if (G_UNLIKELY (qtmux->dts_method == DTS_METHOD_REORDER &&
-          pad->is_out_of_order)) {
-    goto no_order;
-  }
-
   /* if this is the first buffer, store the timestamp */
   if (G_UNLIKELY (pad->first_ts == GST_CLOCK_TIME_NONE) && last_buf) {
-    if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_TIMESTAMP (last_buf))) {
-      pad->first_ts = GST_BUFFER_TIMESTAMP (last_buf);
+    if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_PTS (last_buf))) {
+      pad->first_ts = GST_BUFFER_PTS (last_buf);
+      GST_DEBUG ("setting first_ts to %" G_GUINT64_FORMAT, pad->first_ts);
+      check_and_subtract_ts (qtmux, &GST_BUFFER_DTS (last_buf), pad->first_ts);
+      check_and_subtract_ts (qtmux, &GST_BUFFER_PTS (last_buf), pad->first_ts);
+      if (buf) {
+        check_and_subtract_ts (qtmux, &GST_BUFFER_DTS (buf), pad->first_ts);
+        check_and_subtract_ts (qtmux, &GST_BUFFER_PTS (buf), pad->first_ts);
+      }
     } else {
-      GST_DEBUG_OBJECT (qtmux, "First buffer for pad %s has no timestamp, "
+      GST_ERROR_OBJECT (qtmux, "First buffer for pad %s has no timestamp, "
           "using 0 as first timestamp", GST_PAD_NAME (pad->collect.pad));
       pad->first_ts = 0;
     }
@@ -2296,75 +2167,30 @@ again:
         GST_TIME_FORMAT, GST_PAD_NAME (pad->collect.pad),
         GST_TIME_ARGS (pad->first_ts));
 
-    gst_qt_mux_subtract_ts (qtmux, pad, pad->first_ts);
-
-    GST_BUFFER_TIMESTAMP (last_buf) = 0;
-    check_and_subtract_ts (qtmux, &GST_BUFFER_OFFSET_END (last_buf),
-        pad->first_ts);
-    if (buf) {
-      check_and_subtract_ts (qtmux, &GST_BUFFER_TIMESTAMP (buf), pad->first_ts);
-      check_and_subtract_ts (qtmux, &GST_BUFFER_OFFSET_END (buf),
-          pad->first_ts);
-    }
   }
 
-  /* fall back to duration if last buffer or
-   * out-of-order (determined previously), otherwise use input ts */
-  if (buf == NULL ||
-      (pad->is_out_of_order && qtmux->dts_method == DTS_METHOD_DD)) {
-    if (!GST_BUFFER_DURATION_IS_VALID (last_buf)) {
-      /* be forgiving for some possibly last upstream flushed buffer */
-      if (buf)
-        goto no_time;
-      GST_WARNING_OBJECT (qtmux, "no duration for last buffer");
-      /* iso spec recommends some small value, try 0 */
-      duration = 0;
-    } else {
-      duration = GST_BUFFER_DURATION (last_buf);
-      /* avoid drift in sum timestamps,
-       * so use input timestamp for suitable keyframe */
-      if (buf && !GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT) &&
-          GST_BUFFER_TIMESTAMP (buf) >= pad->last_dts) {
-        GST_DEBUG_OBJECT (qtmux, "resyncing out-of-order input to ts; "
-            "replacing %" GST_TIME_FORMAT " by %" GST_TIME_FORMAT,
-            GST_TIME_ARGS (pad->last_dts + duration),
-            GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
-        duration = GST_BUFFER_TIMESTAMP (buf) - pad->last_dts;
-      }
-    }
-  } else if (qtmux->dts_method != DTS_METHOD_ASC) {
-    duration = GST_BUFFER_TIMESTAMP (buf) - GST_BUFFER_TIMESTAMP (last_buf);
-  } else {
-    GstClockTime ts;
-
-    g_assert (qtmux->dts_method == DTS_METHOD_ASC);
-    if (!qtmux->guess_pts)
-      goto need_pts;
-
-    /* add timestamp to queue; keeps in descending order */
-    gst_qt_mux_push_ts (qtmux, pad, GST_BUFFER_TIMESTAMP (last_buf));
-    /* chuck out smallest/last one if we have enough */
-    if (G_LIKELY (pad->ts_n_entries > QTMUX_NO_OF_TS))
-      pad->ts_n_entries--;
-    /* peek the now smallest timestamp */
-    ts = pad->ts_entries[pad->ts_n_entries - 1];
-    /* these tails are expected to be (strictly) ascending with
-     * large enough history */
-    GST_DEBUG_OBJECT (qtmux, "ASC method; base timestamp %" GST_TIME_FORMAT,
-        GST_TIME_ARGS (ts));
-    if (ts >= pad->last_dts) {
-      duration = ts - pad->last_dts;
-    } else {
-      /* fallback to previous value, negative ct offset might handle */
-      GST_WARNING_OBJECT (qtmux, "unexpected decrease in timestamp");
-      duration = 0;
-    }
-    /* arrange for small non-zero duration/delta << expected frame time */
-    ts = gst_util_uint64_scale (10, GST_SECOND,
-        atom_trak_get_timescale (pad->trak));
-    duration = MAX (duration, ts);
+  if (last_buf && buf && GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DTS (buf)) &&
+      GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DTS (last_buf)) &&
+      GST_BUFFER_DTS (buf) < GST_BUFFER_DTS (last_buf)) {
+    GST_ERROR ("decreasing DTS value %" GST_TIME_FORMAT " < %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (GST_BUFFER_DTS (buf)),
+        GST_TIME_ARGS (GST_BUFFER_DTS (last_buf)));
+    GST_BUFFER_DTS (buf) = GST_BUFFER_DTS (last_buf);
   }
 
+  /* duration actually means time delta between samples, so we calculate
+   * the duration based on the difference in DTS or PTS, falling back
+   * to DURATION if the other two don't exist, such as with the last
+   * sample before EOS. */
+  if (last_buf && buf && GST_BUFFER_DTS_IS_VALID (buf)
+      && GST_BUFFER_DTS_IS_VALID (last_buf))
+    duration = GST_BUFFER_DTS (buf) - GST_BUFFER_DTS (last_buf);
+  else if (last_buf && buf && GST_BUFFER_PTS_IS_VALID (buf)
+      && GST_BUFFER_PTS_IS_VALID (last_buf))
+    duration = GST_BUFFER_PTS (buf) - GST_BUFFER_PTS (last_buf);
+  else
+    duration = GST_BUFFER_DURATION (last_buf);
+
   /* for computing the avg bitrate */
   if (G_LIKELY (last_buf)) {
     pad->total_bytes += gst_buffer_get_size (last_buf);
@@ -2402,7 +2228,12 @@ again:
     sample_size = gst_buffer_get_size (last_buf);
     if (pad->have_dts) {
       gint64 scaled_dts;
-      pad->last_dts = GST_BUFFER_OFFSET_END (last_buf);
+      if (pad->last_buf) {
+        pad->last_dts = GST_BUFFER_DTS (pad->last_buf);
+      } else {
+        pad->last_dts = GST_BUFFER_DTS (last_buf) +
+            GST_BUFFER_DURATION (last_buf);
+      }
       if ((gint64) (pad->last_dts) < 0) {
         scaled_dts = -gst_util_uint64_scale_round (-pad->last_dts,
             atom_trak_get_timescale (pad->trak), GST_SECOND);
@@ -2440,27 +2271,25 @@ again:
     sync = TRUE;
   }
 
-  /* optionally calculate ctts entry values
-   * (if composition-time expected different from decoding-time) */
-  /* really not recommended:
-   * - decoder typically takes care of dts/pts issues
-   * - in case of out-of-order, dts may only be determined as above
-   *   (e.g. sum of duration), which may be totally different from
-   *   buffer timestamps in case of multiple segment, non-perfect streams
-   *  (and just perhaps maybe with some luck segment_to_running_time
-   *   or segment_to_media_time might get near to it) */
-  if ((pad->have_dts || qtmux->guess_pts)) {
-    guint64 pts;
-
-    pts = qtmux->dts_method == DTS_METHOD_REORDER ?
-        GST_BUFFER_OFFSET_END (last_buf) : GST_BUFFER_TIMESTAMP (last_buf);
-    pts = gst_util_uint64_scale_round (pts,
+  if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DTS (last_buf))) {
+    do_pts = TRUE;
+    last_dts = gst_util_uint64_scale_round (GST_BUFFER_DTS (last_buf),
         atom_trak_get_timescale (pad->trak), GST_SECOND);
-    pts_offset = (gint64) (pts - last_dts);
+    pts_offset =
+        (gint64) (gst_util_uint64_scale_round (GST_BUFFER_PTS (last_buf),
+            atom_trak_get_timescale (pad->trak), GST_SECOND) - last_dts);
+
+  } else {
+    pts_offset = 0;
     do_pts = TRUE;
-    GST_LOG_OBJECT (qtmux, "Adding ctts entry for pad %s: %" G_GINT64_FORMAT,
-        GST_PAD_NAME (pad->collect.pad), pts_offset);
+    last_dts = gst_util_uint64_scale_round (GST_BUFFER_PTS (last_buf),
+        atom_trak_get_timescale (pad->trak), GST_SECOND);
   }
+  GST_DEBUG ("dts: %" GST_TIME_FORMAT " pts: %" GST_TIME_FORMAT
+      " timebase_dts: %d pts_offset: %d",
+      GST_TIME_ARGS (GST_BUFFER_DTS (last_buf)),
+      GST_TIME_ARGS (GST_BUFFER_PTS (last_buf)),
+      (int) (last_dts), (int) (pts_offset));
 
   /*
    * Each buffer starts a new chunk, so we can assume the buffer
@@ -2501,11 +2330,6 @@ again:
   }
 
 exit:
-  if (G_UNLIKELY (drain && qtmux->dts_method == DTS_METHOD_REORDER &&
-          ret == GST_FLOW_OK)) {
-    buf = NULL;
-    goto again;
-  }
 
   return ret;
 
@@ -2517,25 +2341,6 @@ bail:
     gst_buffer_unref (last_buf);
     return GST_FLOW_ERROR;
   }
-no_time:
-  {
-    GST_ELEMENT_ERROR (qtmux, STREAM, MUX, (NULL),
-        ("Received buffer without timestamp/duration. "
-            "Using e.g. dts-method=reorder might help."));
-    goto bail;
-  }
-no_order:
-  {
-    GST_ELEMENT_ERROR (qtmux, STREAM, MUX, (NULL),
-        ("DTS method failed to re-order timestamps."));
-    goto bail;
-  }
-need_pts:
-  {
-    GST_ELEMENT_ERROR (qtmux, STREAM, MUX, (NULL),
-        ("Selected DTS method also needs PTS enabled."));
-    goto bail;
-  }
 fragmented_sample:
   {
     GST_ELEMENT_ERROR (qtmux, STREAM, MUX, (NULL),
@@ -2577,7 +2382,7 @@ gst_qt_mux_handle_buffer (GstCollectPads * pads, GstCollectData * cdata,
   /* clipping already converted to running time */
   if (best_pad != NULL) {
     g_assert (buf);
-    best_time = GST_BUFFER_TIMESTAMP (buf);
+    best_time = GST_BUFFER_PTS (buf);
     GST_LOG_OBJECT (qtmux, "selected pad %s with time %" GST_TIME_FORMAT,
         GST_PAD_NAME (best_pad->collect.pad), GST_TIME_ARGS (best_time));
     ret = gst_qt_mux_add_buffer (qtmux, best_pad, buf);
@@ -3124,6 +2929,7 @@ gst_qt_mux_video_sink_set_caps (GstPad * pad, GstCaps * caps)
     ext_atom = build_codec_data_extension (FOURCC_avcC, codec_data);
     if (ext_atom != NULL)
       ext_atom_list = g_list_prepend (ext_atom_list, ext_atom);
+    qtpad->have_dts = TRUE;
   } else if (strcmp (mimetype, "video/x-svq") == 0) {
     gint version = 0;
     const GstBuffer *seqh = NULL;
@@ -3480,9 +3286,11 @@ gst_qt_mux_get_property (GObject * object,
     case PROP_DO_CTTS:
       g_value_set_boolean (value, qtmux->guess_pts);
       break;
+#ifndef GST_REMOVE_DEPRECATED
     case PROP_DTS_METHOD:
       g_value_set_enum (value, qtmux->dts_method);
       break;
+#endif
     case PROP_FAST_START:
       g_value_set_boolean (value, qtmux->fast_start);
       break;
@@ -3535,9 +3343,11 @@ gst_qt_mux_set_property (GObject * object,
     case PROP_DO_CTTS:
       qtmux->guess_pts = g_value_get_boolean (value);
       break;
+#ifndef GST_REMOVE_DEPRECATED
     case PROP_DTS_METHOD:
       qtmux->dts_method = g_value_get_enum (value);
       break;
+#endif
     case PROP_FAST_START:
       qtmux->fast_start = g_value_get_boolean (value);
       break;
diff --git a/gst/isomp4/gstqtmux.h b/gst/isomp4/gstqtmux.h
index a0d2b5330..e61831d87 100644
--- a/gst/isomp4/gstqtmux.h
+++ b/gst/isomp4/gstqtmux.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
@@ -108,9 +108,6 @@ struct _GstQTPad
   /* store the first timestamp for comparing with other streams and
    * know if there are late streams */
   GstClockTime first_ts;
-  GstClockTime ts_entries[QTMUX_NO_OF_TS + 2];
-  guint ts_n_entries;
-  GstBuffer *buf_entries[QTMUX_NO_OF_TS + 2];
   guint buf_head;
   guint buf_tail;
 
@@ -186,7 +183,9 @@ struct _GstQTMux
   AtomsTreeFlavor flavor;
   gboolean fast_start;
   gboolean guess_pts;
+#ifndef GST_REMOVE_DEPRECATED
   gint dts_method;
+#endif
   gchar *fast_start_file_path;
   gchar *moov_recov_file_path;
   guint32 fragment_duration;
diff --git a/gst/isomp4/gstqtmuxmap.c b/gst/isomp4/gstqtmuxmap.c
index ef703054e..b739a7c8b 100644
--- a/gst/isomp4/gstqtmuxmap.c
+++ b/gst/isomp4/gstqtmuxmap.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/isomp4/gstqtmuxmap.h b/gst/isomp4/gstqtmuxmap.h
index f069a2f1d..1c5829c52 100644
--- a/gst/isomp4/gstqtmuxmap.h
+++ b/gst/isomp4/gstqtmuxmap.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/isomp4/gstrtpxqtdepay.c b/gst/isomp4/gstrtpxqtdepay.c
index 5f02eafe9..54baf09ad 100644
--- a/gst/isomp4/gstrtpxqtdepay.c
+++ b/gst/isomp4/gstrtpxqtdepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/gst/isomp4/gstrtpxqtdepay.h b/gst/isomp4/gstrtpxqtdepay.h
index a26ad6512..ca4e41a47 100644
--- a/gst/isomp4/gstrtpxqtdepay.h
+++ b/gst/isomp4/gstrtpxqtdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_XQT_DEPAY_H__
diff --git a/gst/isomp4/isomp4-plugin.c b/gst/isomp4/isomp4-plugin.c
index b0fe32662..27af5d91e 100644
--- a/gst/isomp4/isomp4-plugin.c
+++ b/gst/isomp4/isomp4-plugin.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/isomp4/properties.c b/gst/isomp4/properties.c
index 8dafb2e21..cb43e295e 100644
--- a/gst/isomp4/properties.c
+++ b/gst/isomp4/properties.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/isomp4/properties.h b/gst/isomp4/properties.h
index ad67e0da0..443288c54 100644
--- a/gst/isomp4/properties.h
+++ b/gst/isomp4/properties.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/isomp4/qtatomparser.h b/gst/isomp4/qtatomparser.h
index 06bb3447b..89bab50d8 100644
--- a/gst/isomp4/qtatomparser.h
+++ b/gst/isomp4/qtatomparser.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef QT_ATOM_PARSER_H
diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c
index 256d8e093..ca5f9d5a7 100644
--- a/gst/isomp4/qtdemux.c
+++ b/gst/isomp4/qtdemux.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -70,6 +70,9 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include <math.h>
+#include <gst/math-compat.h>
+
 #ifdef HAVE_ZLIB
 # include <zlib.h>
 #endif
@@ -200,6 +203,9 @@ struct _QtDemuxStream
   GstCaps *caps;
   guint32 fourcc;
 
+  gboolean new_caps;
+  gboolean new_stream;          /* signals that a stream_start is required */
+
   /* if the stream has a redirect URI in its headers, we store it here */
   gchar *redirect_uri;
 
@@ -219,6 +225,8 @@ struct _QtDemuxStream
   gboolean all_keyframe;        /* TRUE when all samples are keyframes (no stss) */
   guint32 min_duration;         /* duration in timescale of first sample, used for figuring out
                                    the framerate, in timescale units */
+  guint32 offset_in_sample;
+  guint32 max_buffer_size;
 
   /* if we use chunks or samples */
   gboolean sampled;
@@ -413,6 +421,9 @@ static GstFlowReturn gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent,
     GstBuffer * inbuf);
 static gboolean gst_qtdemux_handle_sink_event (GstPad * pad, GstObject * parent,
     GstEvent * event);
+static gboolean gst_qtdemux_setcaps (GstQTDemux * qtdemux, GstCaps * caps);
+static gboolean gst_qtdemux_configure_stream (GstQTDemux * qtdemux,
+    QtDemuxStream * stream);
 
 static gboolean qtdemux_parse_moov (GstQTDemux * qtdemux,
     const guint8 * buffer, guint length);
@@ -438,6 +449,12 @@ static GstCaps *qtdemux_generic_caps (GstQTDemux * qtdemux,
 static gboolean qtdemux_parse_samples (GstQTDemux * qtdemux,
     QtDemuxStream * stream, guint32 n);
 static GstFlowReturn qtdemux_expose_streams (GstQTDemux * qtdemux);
+static void gst_qtdemux_stream_free (GstQTDemux * qtdemux,
+    QtDemuxStream * stream);
+static void gst_qtdemux_stream_clear (QtDemuxStream * stream);
+static GstFlowReturn qtdemux_prepare_streams (GstQTDemux * qtdemux);
+static void qtdemux_do_allocation (GstQTDemux * qtdemux,
+    QtDemuxStream * stream);
 
 static void
 gst_qtdemux_class_init (GstQTDemuxClass * klass)
@@ -500,6 +517,12 @@ gst_qtdemux_init (GstQTDemux * qtdemux)
   qtdemux->got_moov = FALSE;
   qtdemux->mdatoffset = GST_CLOCK_TIME_NONE;
   qtdemux->mdatbuffer = NULL;
+  qtdemux->fragment_start = -1;
+  qtdemux->media_caps = NULL;
+  qtdemux->exposed = FALSE;
+  qtdemux->mss_mode = FALSE;
+  qtdemux->pending_newsegment = NULL;
+  qtdemux->upstream_newsegment = FALSE;
   gst_segment_init (&qtdemux->segment, GST_FORMAT_TIME);
 
   GST_OBJECT_FLAG_SET (qtdemux, GST_ELEMENT_FLAG_INDEXABLE);
@@ -728,7 +751,6 @@ gst_qtdemux_handle_src_query (GstPad * pad, GstObject * parent,
         res = gst_pad_query_default (pad, parent, query);
         if (!res) {
           gint64 duration = -1;
-
           gst_qtdemux_get_duration (qtdemux, &duration);
           if (duration > 0) {
             gst_query_set_duration (query, GST_FORMAT_TIME, duration);
@@ -760,29 +782,60 @@ gst_qtdemux_handle_src_query (GstPad * pad, GstObject * parent,
       GstFormat fmt;
       gboolean seekable;
 
-      gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL);
-      if (fmt == GST_FORMAT_TIME) {
-        gint64 duration = -1;
-
-        gst_qtdemux_get_duration (qtdemux, &duration);
-        seekable = TRUE;
-        if (!qtdemux->pullbased) {
-          GstQuery *q;
-
-          /* we might be able with help from upstream */
-          seekable = FALSE;
-          q = gst_query_new_seeking (GST_FORMAT_BYTES);
-          if (gst_pad_peer_query (qtdemux->sinkpad, q)) {
-            gst_query_parse_seeking (q, &fmt, &seekable, NULL, NULL);
-            GST_LOG_OBJECT (qtdemux, "upstream BYTE seekable %d", seekable);
+      /* try upstream first */
+      res = gst_pad_query_default (pad, parent, query);
+
+      if (!res) {
+        gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL);
+        if (fmt == GST_FORMAT_TIME) {
+          gint64 duration = -1;
+
+          gst_qtdemux_get_duration (qtdemux, &duration);
+          seekable = TRUE;
+          if (!qtdemux->pullbased) {
+            GstQuery *q;
+
+            /* we might be able with help from upstream */
+            seekable = FALSE;
+            q = gst_query_new_seeking (GST_FORMAT_BYTES);
+            if (gst_pad_peer_query (qtdemux->sinkpad, q)) {
+              gst_query_parse_seeking (q, &fmt, &seekable, NULL, NULL);
+              GST_LOG_OBJECT (qtdemux, "upstream BYTE seekable %d", seekable);
+            }
+            gst_query_unref (q);
           }
-          gst_query_unref (q);
+          gst_query_set_seeking (query, GST_FORMAT_TIME, seekable, 0, duration);
+          res = TRUE;
         }
-        gst_query_set_seeking (query, GST_FORMAT_TIME, seekable, 0, duration);
-        res = TRUE;
       }
       break;
     }
+    case GST_QUERY_SEGMENT:
+    {
+      GstFormat format;
+      gint64 start, stop;
+
+      format = qtdemux->segment.format;
+
+      start =
+          gst_segment_to_stream_time (&qtdemux->segment, format,
+          qtdemux->segment.start);
+      if ((stop = qtdemux->segment.stop) == -1)
+        stop = qtdemux->segment.duration;
+      else
+        stop = gst_segment_to_stream_time (&qtdemux->segment, format, stop);
+
+      if (qtdemux->segment.rate < 0.0) {
+        gint64 tmp;
+        tmp = stop;
+        stop = start;
+        start = tmp;
+      }
+
+      gst_query_set_segment (query, qtdemux->segment.rate, format, start, stop);
+      res = TRUE;
+      break;
+    }
     default:
       res = gst_pad_query_default (pad, parent, query);
       break;
@@ -830,6 +883,7 @@ gst_qtdemux_push_event (GstQTDemux * qtdemux, GstEvent * event)
   for (n = 0; n < qtdemux->n_streams; n++) {
     GstPad *pad;
     QtDemuxStream *stream = qtdemux->streams[n];
+    GST_DEBUG_OBJECT (qtdemux, "pushing on pad %i", n);
 
     if ((pad = stream->pad)) {
       has_valid_stream = TRUE;
@@ -860,6 +914,7 @@ gst_qtdemux_push_pending_newsegment (GstQTDemux * qtdemux)
   if (qtdemux->pending_newsegment) {
     gst_qtdemux_push_event (qtdemux, qtdemux->pending_newsegment);
     qtdemux->pending_newsegment = NULL;
+    qtdemux->upstream_newsegment = FALSE;
   }
 }
 
@@ -1089,6 +1144,7 @@ gst_qtdemux_move_stream (GstQTDemux * qtdemux, QtDemuxStream * str,
 
   /* position changed, we have a discont */
   str->sample_index = index;
+  str->offset_in_sample = 0;
   /* Each time we move in the stream we store the position where we are
    * starting from */
   str->from_sample = index;
@@ -1327,6 +1383,7 @@ gst_qtdemux_perform_seek (GstQTDemux * qtdemux, GstSegment * segment)
 
     stream->time_position = desired_offset;
     stream->sample_index = -1;
+    stream->offset_in_sample = 0;
     stream->segment_index = -1;
     stream->last_ret = GST_FLOW_OK;
     stream->sent_eos = FALSE;
@@ -1478,6 +1535,14 @@ gst_qtdemux_handle_src_event (GstPad * pad, GstObject * parent,
 #ifndef GST_DISABLE_GST_DEBUG
       GstClockTime ts = gst_util_get_timestamp ();
 #endif
+
+      if (qtdemux->mss_mode || qtdemux->fragmented) {
+        /* seek should be handled by upstream, we might need to re-download fragments */
+        GST_DEBUG_OBJECT (qtdemux,
+            "leting upstream handle seek for smoothstreaming");
+        goto upstream;
+      }
+
       /* Build complete index for seeking;
        * if not a fragmented file at least */
       if (!qtdemux->fragmented)
@@ -1510,6 +1575,7 @@ gst_qtdemux_handle_src_event (GstPad * pad, GstObject * parent,
       gst_event_unref (event);
       break;
     default:
+    upstream:
       res = gst_pad_event_default (pad, parent, event);
       break;
   }
@@ -1599,6 +1665,184 @@ gst_qtdemux_find_sample (GstQTDemux * qtdemux, gint64 byte_pos, gboolean fw,
     *_index = index;
 }
 
+static QtDemuxStream *
+_create_stream (void)
+{
+  QtDemuxStream *stream;
+
+  stream = g_new0 (QtDemuxStream, 1);
+  /* new streams always need a discont */
+  stream->discont = TRUE;
+  /* we enable clipping for raw audio/video streams */
+  stream->need_clip = FALSE;
+  stream->need_process = FALSE;
+  stream->segment_index = -1;
+  stream->time_position = 0;
+  stream->sample_index = -1;
+  stream->offset_in_sample = 0;
+  stream->last_ret = GST_FLOW_OK;
+  stream->new_stream = TRUE;
+  return stream;
+}
+
+static gboolean
+gst_qtdemux_setcaps (GstQTDemux * demux, GstCaps * caps)
+{
+  GstStructure *structure;
+  const gchar *variant;
+  const GstCaps *mediacaps = NULL;
+
+  GST_DEBUG_OBJECT (demux, "Sink set caps: %" GST_PTR_FORMAT, caps);
+
+  structure = gst_caps_get_structure (caps, 0);
+  variant = gst_structure_get_string (structure, "variant");
+
+  if (variant && strcmp (variant, "mss-fragmented") == 0) {
+    QtDemuxStream *stream;
+    const GValue *value;
+
+    demux->fragmented = TRUE;
+    demux->mss_mode = TRUE;
+
+    if (demux->n_streams > 1) {
+      /* can't do this, we can only renegotiate for another mss format */
+      return FALSE;
+    }
+
+    value = gst_structure_get_value (structure, "media-caps");
+    /* create stream */
+    if (value) {
+      const GValue *timescale_v;
+
+      /* TODO update when stream changes during playback */
+
+      if (demux->n_streams == 0) {
+        stream = _create_stream ();
+        demux->streams[demux->n_streams] = stream;
+        demux->n_streams = 1;
+      } else {
+        stream = demux->streams[0];
+      }
+
+      timescale_v = gst_structure_get_value (structure, "timescale");
+      if (timescale_v) {
+        stream->timescale = g_value_get_uint64 (timescale_v);
+      } else {
+        /* default mss timescale */
+        stream->timescale = 10000000;
+      }
+      demux->timescale = stream->timescale;
+
+      mediacaps = gst_value_get_caps (value);
+      if (!stream->caps || !gst_caps_is_equal_fixed (mediacaps, stream->caps)) {
+        GST_DEBUG_OBJECT (demux, "We have a new caps %" GST_PTR_FORMAT,
+            mediacaps);
+        stream->new_caps = TRUE;
+      }
+      gst_caps_replace (&stream->caps, (GstCaps *) mediacaps);
+      structure = gst_caps_get_structure (mediacaps, 0);
+      if (g_str_has_prefix (gst_structure_get_name (structure), "video")) {
+        stream->subtype = FOURCC_vide;
+
+        gst_structure_get_int (structure, "width", &stream->width);
+        gst_structure_get_int (structure, "height", &stream->height);
+        gst_structure_get_fraction (structure, "framerate", &stream->fps_n,
+            &stream->fps_d);
+      } else if (g_str_has_prefix (gst_structure_get_name (structure), "audio")) {
+        gint rate = 0;
+        stream->subtype = FOURCC_soun;
+        gst_structure_get_int (structure, "channels", &stream->n_channels);
+        gst_structure_get_int (structure, "rate", &rate);
+        stream->rate = rate;
+      }
+    }
+    gst_caps_replace (&demux->media_caps, (GstCaps *) mediacaps);
+  }
+
+  return TRUE;
+}
+
+static void
+gst_qtdemux_reset (GstQTDemux * qtdemux, gboolean hard)
+{
+  gint n;
+
+  GST_DEBUG_OBJECT (qtdemux, "Resetting demux");
+  gst_pad_stop_task (qtdemux->sinkpad);
+
+  if (hard || qtdemux->mss_mode) {
+    qtdemux->state = QTDEMUX_STATE_INITIAL;
+    qtdemux->neededbytes = 16;
+    qtdemux->todrop = 0;
+    qtdemux->pullbased = FALSE;
+    qtdemux->posted_redirect = FALSE;
+    qtdemux->first_mdat = -1;
+    qtdemux->header_size = 0;
+    qtdemux->mdatoffset = GST_CLOCK_TIME_NONE;
+    if (qtdemux->mdatbuffer)
+      gst_buffer_unref (qtdemux->mdatbuffer);
+    qtdemux->mdatbuffer = NULL;
+    qtdemux->mdatleft = 0;
+    if (qtdemux->comp_brands)
+      gst_buffer_unref (qtdemux->comp_brands);
+    qtdemux->comp_brands = NULL;
+    if (qtdemux->moov_node)
+      g_node_destroy (qtdemux->moov_node);
+    qtdemux->moov_node = NULL;
+    qtdemux->moov_node_compressed = NULL;
+    if (qtdemux->tag_list)
+      gst_mini_object_unref (GST_MINI_OBJECT_CAST (qtdemux->tag_list));
+    qtdemux->tag_list = NULL;
+#if 0
+    if (qtdemux->element_index)
+      gst_object_unref (qtdemux->element_index);
+    qtdemux->element_index = NULL;
+#endif
+    qtdemux->major_brand = 0;
+    gst_segment_init (&qtdemux->segment, GST_FORMAT_TIME);
+    if (qtdemux->pending_newsegment)
+      gst_object_unref (qtdemux->pending_newsegment);
+    qtdemux->pending_newsegment = NULL;
+    qtdemux->upstream_newsegment = TRUE;
+    qtdemux->requested_seek_time = GST_CLOCK_TIME_NONE;
+    qtdemux->seek_offset = 0;
+    qtdemux->upstream_seekable = FALSE;
+    qtdemux->upstream_size = 0;
+
+    qtdemux->fragment_start = -1;
+    qtdemux->duration = 0;
+    qtdemux->mfra_offset = 0;
+    qtdemux->moof_offset = 0;
+  }
+  qtdemux->offset = 0;
+  gst_adapter_clear (qtdemux->adapter);
+
+  if (hard) {
+    for (n = 0; n < qtdemux->n_streams; n++) {
+      gst_qtdemux_stream_free (qtdemux, qtdemux->streams[n]);
+      qtdemux->streams[n] = NULL;
+    }
+    qtdemux->n_streams = 0;
+    qtdemux->n_video_streams = 0;
+    qtdemux->n_audio_streams = 0;
+    qtdemux->n_sub_streams = 0;
+    qtdemux->exposed = FALSE;
+    qtdemux->fragmented = FALSE;
+    qtdemux->mss_mode = FALSE;
+    gst_caps_replace (&qtdemux->media_caps, NULL);
+    qtdemux->timescale = 0;
+    qtdemux->got_moov = FALSE;
+  } else if (qtdemux->mss_mode) {
+    for (n = 0; n < qtdemux->n_streams; n++)
+      gst_qtdemux_stream_clear (qtdemux->streams[n]);
+  } else {
+    for (n = 0; n < qtdemux->n_streams; n++) {
+      qtdemux->streams[n]->last_ret = GST_FLOW_OK;
+      qtdemux->streams[n]->sent_eos = FALSE;
+    }
+  }
+}
+
 static gboolean
 gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent,
     GstEvent * event)
@@ -1621,10 +1865,21 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent,
       GST_DEBUG_OBJECT (demux, "received newsegment %" GST_SEGMENT_FORMAT,
           &segment);
 
+      if (segment.format == GST_FORMAT_TIME) {
+        GST_DEBUG_OBJECT (demux, "new pending_newsegment");
+        gst_event_replace (&demux->pending_newsegment, event);
+        demux->upstream_newsegment = TRUE;
+      } else {
+        GST_DEBUG_OBJECT (demux, "Not storing upstream newsegment, "
+            "not in time format");
+      }
+
       /* chain will send initial newsegment after pads have been added */
       if (demux->state != QTDEMUX_STATE_MOVIE || !demux->n_streams) {
-        GST_DEBUG_OBJECT (demux, "still starting, eating event");
-        goto exit;
+        if (!demux->mss_mode) {
+          GST_DEBUG_OBJECT (demux, "still starting, eating event");
+          goto exit;
+        }
       }
 
       /* we only expect a BYTE segment, e.g. following a seek */
@@ -1658,6 +1913,17 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent,
            * but make sure in other rare cases */
           segment.stop = MAX (segment.stop, segment.start);
         }
+      } else if (segment.format == GST_FORMAT_TIME) {
+        /* NOP */
+#if 0
+        gst_qtdemux_push_event (demux, gst_event_ref (event));
+        gst_event_new_new_segment_full (segment.update, segment.rate,
+            segment.arate, GST_FORMAT_TIME, segment.start, segment.stop,
+            segment.start);
+        gst_adapter_clear (demux->adapter);
+        demux->neededbytes = 16;
+        goto exit;
+#endif
       } else {
         GST_DEBUG_OBJECT (demux, "unsupported segment format, ignoring");
         goto exit;
@@ -1684,7 +1950,11 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent,
         demux->neededbytes = demux->todrop + stream->samples[idx].size;
       } else {
         /* set up for EOS */
-        demux->neededbytes = -1;
+        if (demux->mss_mode) {
+          demux->neededbytes = 16;
+        } else {
+          demux->neededbytes = -1;
+        }
         demux->todrop = 0;
       }
     exit:
@@ -1695,21 +1965,7 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent,
     }
     case GST_EVENT_FLUSH_STOP:
     {
-      gint i;
-      GstClockTime dur;
-
-      /* clean up, force EOS if no more info follows */
-      gst_adapter_clear (demux->adapter);
-      demux->offset = 0;
-      demux->neededbytes = -1;
-      /* reset flow return, e.g. following seek */
-      for (i = 0; i < demux->n_streams; i++) {
-        demux->streams[i]->last_ret = GST_FLOW_OK;
-        demux->streams[i]->sent_eos = FALSE;
-      }
-      dur = demux->segment.duration;
-      gst_segment_init (&demux->segment, GST_FORMAT_TIME);
-      demux->segment.duration = dur;
+      gst_qtdemux_reset (demux, FALSE);
       break;
     }
     case GST_EVENT_EOS:
@@ -1728,6 +1984,16 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent,
           gst_qtdemux_post_no_playable_stream_error (demux);
       }
       break;
+    case GST_EVENT_CAPS:{
+      GstCaps *caps = NULL;
+
+      gst_event_parse_caps (event, &caps);
+      gst_qtdemux_setcaps (demux, caps);
+      res = TRUE;
+      gst_event_unref (event);
+      goto drop;
+      break;
+    }
     default:
       break;
   }
@@ -1797,7 +2063,7 @@ gst_qtdemux_stbl_free (QtDemuxStream * stream)
 }
 
 static void
-gst_qtdemux_stream_free (GstQTDemux * qtdemux, QtDemuxStream * stream)
+gst_qtdemux_stream_clear (QtDemuxStream * stream)
 {
   if (stream->allocator)
     gst_object_unref (stream->allocator);
@@ -1805,17 +2071,36 @@ gst_qtdemux_stream_free (GstQTDemux * qtdemux, QtDemuxStream * stream)
     gst_buffer_unref (GST_BUFFER_CAST (stream->buffers->data));
     stream->buffers = g_slist_delete_link (stream->buffers, stream->buffers);
   }
-  if (stream->pad)
-    gst_element_remove_pad (GST_ELEMENT_CAST (qtdemux), stream->pad);
   g_free (stream->samples);
-  if (stream->caps)
-    gst_caps_unref (stream->caps);
+  stream->samples = NULL;
   g_free (stream->segments);
+  stream->segments = NULL;
   if (stream->pending_tags)
     gst_tag_list_unref (stream->pending_tags);
+  stream->pending_tags = NULL;
   g_free (stream->redirect_uri);
+  stream->redirect_uri = NULL;
   /* free stbl sub-atoms */
   gst_qtdemux_stbl_free (stream);
+
+  stream->last_ret = GST_FLOW_OK;
+  stream->sent_eos = FALSE;
+  stream->segment_index = -1;
+  stream->time_position = 0;
+  stream->sample_index = -1;
+  stream->stbl_index = -1;
+  stream->n_samples = 0;
+}
+
+static void
+gst_qtdemux_stream_free (GstQTDemux * qtdemux, QtDemuxStream * stream)
+{
+  gst_qtdemux_stream_clear (stream);
+  if (stream->caps)
+    gst_caps_unref (stream->caps);
+  stream->caps = NULL;
+  if (stream->pad)
+    gst_element_remove_pad (GST_ELEMENT_CAST (qtdemux), stream->pad);
   g_free (stream);
 }
 
@@ -1836,47 +2121,7 @@ gst_qtdemux_change_state (GstElement * element, GstStateChange transition)
 
   switch (transition) {
     case GST_STATE_CHANGE_PAUSED_TO_READY:{
-      gint n;
-
-      qtdemux->state = QTDEMUX_STATE_INITIAL;
-      qtdemux->neededbytes = 16;
-      qtdemux->todrop = 0;
-      qtdemux->pullbased = FALSE;
-      qtdemux->posted_redirect = FALSE;
-      qtdemux->offset = 0;
-      qtdemux->first_mdat = -1;
-      qtdemux->header_size = 0;
-      qtdemux->got_moov = FALSE;
-      qtdemux->mdatoffset = GST_CLOCK_TIME_NONE;
-      if (qtdemux->mdatbuffer)
-        gst_buffer_unref (qtdemux->mdatbuffer);
-      qtdemux->mdatbuffer = NULL;
-      if (qtdemux->comp_brands)
-        gst_buffer_unref (qtdemux->comp_brands);
-      qtdemux->comp_brands = NULL;
-      if (qtdemux->tag_list)
-        gst_tag_list_unref (qtdemux->tag_list);
-      qtdemux->tag_list = NULL;
-#if 0
-      if (qtdemux->element_index)
-        gst_object_unref (qtdemux->element_index);
-      qtdemux->element_index = NULL;
-#endif
-      gst_adapter_clear (qtdemux->adapter);
-      for (n = 0; n < qtdemux->n_streams; n++) {
-        gst_qtdemux_stream_free (qtdemux, qtdemux->streams[n]);
-        qtdemux->streams[n] = NULL;
-      }
-      qtdemux->major_brand = 0;
-      qtdemux->n_streams = 0;
-      qtdemux->n_video_streams = 0;
-      qtdemux->n_audio_streams = 0;
-      qtdemux->n_sub_streams = 0;
-      gst_segment_init (&qtdemux->segment, GST_FORMAT_TIME);
-      qtdemux->requested_seek_time = GST_CLOCK_TIME_NONE;
-      qtdemux->seek_offset = 0;
-      qtdemux->upstream_seekable = FALSE;
-      qtdemux->upstream_size = 0;
+      gst_qtdemux_reset (qtdemux, TRUE);
       break;
     }
     default:
@@ -1930,6 +2175,10 @@ qtdemux_parse_uuid (GstQTDemux * qtdemux, const guint8 * buffer, gint length)
     0x9C, 0x71, 0x99, 0x94,
     0x91, 0xE3, 0xAF, 0xAC
   };
+  static guint8 playready_uuid[] = {
+    0xd0, 0x8a, 0x4f, 0x18, 0x10, 0xf3, 0x4a, 0x82,
+    0xb6, 0xc8, 0x32, 0xd8, 0xab, 0xa1, 0x83, 0xd3
+  };
   guint offset;
 
   /* counts as header data */
@@ -1953,8 +2202,27 @@ qtdemux_parse_uuid (GstQTDemux * qtdemux, const guint8 * buffer, gint length)
 
     qtdemux_handle_xmp_taglist (qtdemux, taglist);
 
+  } else if (memcmp (buffer + offset, playready_uuid, 16) == 0) {
+    int len;
+    const gunichar2 *s_utf16;
+    char *contents;
+
+    len = GST_READ_UINT16_LE (buffer + offset + 0x30);
+    s_utf16 = (const gunichar2 *) (buffer + offset + 0x32);
+    contents = g_utf16_to_utf8 (s_utf16, len / 2, NULL, NULL, NULL);
+    GST_ERROR_OBJECT (qtdemux, "contents: %s", contents);
+
+    g_free (contents);
+
+    GST_ELEMENT_ERROR (qtdemux, STREAM, DECRYPT,
+        (_("Cannot play stream because it is encrypted with PlayReady DRM.")),
+        (NULL));
   } else {
-    GST_DEBUG_OBJECT (qtdemux, "Ignoring unknown uuid");
+    GST_DEBUG_OBJECT (qtdemux, "Ignoring unknown uuid: %08x-%08x-%08x-%08x",
+        GST_READ_UINT32_LE (buffer + offset),
+        GST_READ_UINT32_LE (buffer + offset + 4),
+        GST_READ_UINT32_LE (buffer + offset + 8),
+        GST_READ_UINT32_LE (buffer + offset + 12));
   }
 }
 
@@ -2205,15 +2473,21 @@ qtdemux_parse_trun (GstQTDemux * qtdemux, GstByteReader * trun,
   if (stream->samples == NULL)
     goto out_of_memory;
 
-  if (G_UNLIKELY (stream->n_samples == 0)) {
-    /* the timestamp of the first sample is also provided by the tfra entry
-     * but we shouldn't rely on it as it is at the end of files */
-    timestamp = 0;
+  if (qtdemux->fragment_start != -1) {
+    timestamp = gst_util_uint64_scale_int (qtdemux->fragment_start,
+        stream->timescale, GST_SECOND);
+    qtdemux->fragment_start = -1;
   } else {
-    /* subsequent fragments extend stream */
-    timestamp =
-        stream->samples[stream->n_samples - 1].timestamp +
-        stream->samples[stream->n_samples - 1].duration;
+    if (G_UNLIKELY (stream->n_samples == 0)) {
+      /* the timestamp of the first sample is also provided by the tfra entry
+       * but we shouldn't rely on it as it is at the end of files */
+      timestamp = 0;
+    } else {
+      /* subsequent fragments extend stream */
+      timestamp =
+          stream->samples[stream->n_samples - 1].timestamp +
+          stream->samples[stream->n_samples - 1].duration;
+    }
   }
   sample = stream->samples + stream->n_samples;
   for (i = 0; i < samples_count; i++) {
@@ -2313,6 +2587,10 @@ qtdemux_find_stream (GstQTDemux * qtdemux, guint32 id)
     if (stream->track_id == id)
       return stream;
   }
+  if (qtdemux->mss_mode) {
+    /* mss should have only 1 stream anyway */
+    return qtdemux->streams[0];
+  }
 
   return NULL;
 }
@@ -2441,19 +2719,18 @@ qtdemux_parse_moof (GstQTDemux * qtdemux, const guint8 * buffer, guint length,
         &tfdt_data);
     if (tfdt_node) {
       guint64 decode_time = 0;
+      GstClockTime decode_time_ts;
+
       qtdemux_parse_tfdt (qtdemux, &tfdt_data, &decode_time);
-      /* If there is a new segment pending, update the time/position */
-      if (qtdemux->pending_newsegment) {
-        GstSegment segment;
-
-        gst_segment_init (&segment, GST_FORMAT_TIME);
-        segment.time = gst_util_uint64_scale (decode_time,
-            GST_SECOND, stream->timescale);
-        gst_event_replace (&qtdemux->pending_newsegment,
-            gst_event_new_segment (&segment));
-        /* ref added when replaced, release the original _new one */
-        gst_event_unref (qtdemux->pending_newsegment);
-      }
+
+      /* FIXME, we can use decode_time to interpolate timestamps
+       * in case the input timestamps are missing */
+      decode_time_ts = gst_util_uint64_scale (decode_time, GST_SECOND,
+          stream->timescale);
+
+      GST_DEBUG_OBJECT (qtdemux, "decode time %" G_GUINT64_FORMAT
+          " (%" GST_TIME_FORMAT ")", decode_time,
+          GST_TIME_ARGS (decode_time_ts));
     }
 
     if (G_UNLIKELY (!stream)) {
@@ -2767,12 +3044,12 @@ gst_qtdemux_loop_state_header (GstQTDemux * qtdemux)
             /* Ok, we've found that special case. Allocate a new buffer with
              * that free atom actually present. */
             GstBuffer *newmoov = gst_buffer_new_and_alloc (length);
-            gst_buffer_copy_into (newmoov, moov, 0, 0, map.size);
+            gst_buffer_fill (newmoov, 0, map.data, map.size);
+            gst_buffer_memset (newmoov, map.size, 0, final_length - 8);
             gst_buffer_unmap (moov, &map);
-            gst_buffer_map (newmoov, &map, GST_MAP_WRITE);
-            memset (map.data + length - final_length + 8, 0, final_length - 8);
             gst_buffer_unref (moov);
             moov = newmoov;
+            gst_buffer_map (moov, &map, GST_MAP_READ);
           }
         }
       }
@@ -2853,8 +3130,9 @@ gst_qtdemux_loop_state_header (GstQTDemux * qtdemux)
   }
 
 beach:
-  if (ret == GST_FLOW_EOS && qtdemux->got_moov) {
+  if (ret == GST_FLOW_EOS && (qtdemux->got_moov || qtdemux->media_caps)) {
     /* digested all data, show what we have */
+    qtdemux_prepare_streams (qtdemux);
     ret = qtdemux_expose_streams (qtdemux);
 
     qtdemux->state = QTDEMUX_STATE_MOVIE;
@@ -3134,6 +3412,7 @@ gst_qtdemux_activate_segment (GstQTDemux * qtdemux, QtDemuxStream * stream,
   stream->segment.start = start;
   stream->segment.stop = stop;
   stream->segment.time = time;
+  stream->segment.position = start;
 
   /* now prepare and send the segment */
   if (stream->pad) {
@@ -3302,6 +3581,7 @@ gst_qtdemux_advance_sample (GstQTDemux * qtdemux, QtDemuxStream * stream)
 
   /* move to next sample */
   stream->sample_index++;
+  stream->offset_in_sample = 0;
 
   /* get current segment */
   segment = &stream->segments[stream->segment_index];
@@ -3590,17 +3870,23 @@ gst_qtdemux_process_buffer (GstQTDemux * qtdemux, QtDemuxStream * stream,
     stream->need_process = FALSE;
   }
 
-  if (G_UNLIKELY (stream->subtype != FOURCC_text)) {
+  if (G_UNLIKELY (stream->subtype != FOURCC_text
+          && stream->subtype != FOURCC_sbtl)) {
     return buf;
   }
 
   gst_buffer_map (buf, &map, GST_MAP_READ);
 
-  if (G_LIKELY (map.size >= 2)) {
-    nsize = GST_READ_UINT16_BE (map.data);
-    nsize = MIN (nsize, map.size - 2);
+  /* empty buffer is sent to terminate previous subtitle */
+  if (map.size <= 2) {
+    gst_buffer_unmap (buf, &map);
+    gst_buffer_unref (buf);
+    return NULL;
   }
 
+  nsize = GST_READ_UINT16_BE (map.data);
+  nsize = MIN (nsize, map.size - 2);
+
   GST_LOG_OBJECT (qtdemux, "3GPP timed text subtitle: %d/%" G_GSIZE_FORMAT "",
       nsize, map.size);
 
@@ -3612,8 +3898,9 @@ gst_qtdemux_process_buffer (GstQTDemux * qtdemux, QtDemuxStream * stream,
     gst_buffer_unref (buf);
     buf = _gst_buffer_new_wrapped (str, strlen (str), g_free);
   } else {
-    /* may be 0-size subtitle, which is also sent to keep pipeline going */
-    gst_buffer_resize (buf, 2, nsize);
+    /* this should not really happen unless the subtitle is corrupted */
+    gst_buffer_unref (buf);
+    buf = NULL;
   }
 
   /* FIXME ? convert optional subsequent style info to markup */
@@ -3625,7 +3912,7 @@ gst_qtdemux_process_buffer (GstQTDemux * qtdemux, QtDemuxStream * stream,
  * Also checks for additional actions and custom processing that may
  * need to be done first.
  */
-static gboolean
+static GstFlowReturn
 gst_qtdemux_decorate_and_push_buffer (GstQTDemux * qtdemux,
     QtDemuxStream * stream, GstBuffer * buf,
     guint64 dts, guint64 pts, guint64 duration, gboolean keyframe,
@@ -3689,6 +3976,10 @@ gst_qtdemux_decorate_and_push_buffer (GstQTDemux * qtdemux,
   if (G_UNLIKELY (stream->need_process))
     buf = gst_qtdemux_process_buffer (qtdemux, stream, buf);
 
+  if (!buf) {
+    goto exit;
+  }
+
   GST_BUFFER_DTS (buf) = dts;
   GST_BUFFER_PTS (buf) = pts;
   GST_BUFFER_DURATION (buf) = duration;
@@ -3743,6 +4034,11 @@ gst_qtdemux_decorate_and_push_buffer (GstQTDemux * qtdemux,
 
   ret = gst_pad_push (stream->pad, buf);
 
+  if (GST_CLOCK_TIME_IS_VALID (pts) && GST_CLOCK_TIME_IS_VALID (duration)) {
+    /* mark position in stream, we'll need this to know when to send GAP event */
+    stream->segment.position = pts + duration;
+  }
+
 exit:
   return ret;
 }
@@ -3759,7 +4055,8 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux)
   guint64 pts = GST_CLOCK_TIME_NONE;
   guint64 duration = 0;
   gboolean keyframe = FALSE;
-  guint size = 0;
+  guint sample_size = 0;
+  guint size;
   gint index;
   gint i;
 
@@ -3794,27 +4091,59 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux)
     goto eos;
   }
 
+  /* gap events for subtitle streams */
+  for (i = 0; i < qtdemux->n_streams; i++) {
+    stream = qtdemux->streams[i];
+    if (stream->subtype == FOURCC_subp || stream->subtype == FOURCC_text
+        || stream->subtype == FOURCC_sbtl) {
+      /* send one second gap events until the stream catches up */
+      /* gaps can only be sent after segment is activated (segment.stop is no longer -1) */
+      while (GST_CLOCK_TIME_IS_VALID (stream->segment.stop) &&
+          GST_CLOCK_TIME_IS_VALID (stream->segment.position) &&
+          stream->segment.position + GST_SECOND < min_time) {
+        GstEvent *gap =
+            gst_event_new_gap (stream->segment.position, GST_SECOND);
+        gst_pad_push_event (stream->pad, gap);
+        stream->segment.position += GST_SECOND;
+      }
+    }
+  }
+
   stream = qtdemux->streams[index];
+  if (stream->new_caps) {
+    gst_qtdemux_configure_stream (qtdemux, stream);
+    qtdemux_do_allocation (qtdemux, stream);
+  }
 
   /* fetch info for the current sample of this stream */
   if (G_UNLIKELY (!gst_qtdemux_prepare_current_sample (qtdemux, stream, &offset,
-              &size, &dts, &pts, &duration, &keyframe)))
+              &sample_size, &dts, &pts, &duration, &keyframe)))
     goto eos_stream;
 
-  GST_LOG_OBJECT (qtdemux,
+  GST_DEBUG_OBJECT (qtdemux,
       "pushing from stream %d, offset %" G_GUINT64_FORMAT
       ", size %d, dts=%" GST_TIME_FORMAT ", pts=%" GST_TIME_FORMAT
-      ", duration %" GST_TIME_FORMAT, index, offset, size,
+      ", duration %" GST_TIME_FORMAT, index, offset, sample_size,
       GST_TIME_ARGS (dts), GST_TIME_ARGS (pts), GST_TIME_ARGS (duration));
 
   /* hmm, empty sample, skip and move to next sample */
-  if (G_UNLIKELY (size <= 0))
+  if (G_UNLIKELY (sample_size <= 0))
     goto next;
 
   /* last pushed sample was out of boundary, goto next sample */
   if (G_UNLIKELY (stream->last_ret == GST_FLOW_EOS))
     goto next;
 
+  if (stream->max_buffer_size == 0 || sample_size <= stream->max_buffer_size) {
+    size = sample_size;
+  } else {
+    GST_DEBUG_OBJECT (qtdemux,
+        "size %d larger than stream max_buffer_size %d, trimming",
+        sample_size, stream->max_buffer_size);
+    size =
+        MIN (sample_size - stream->offset_in_sample, stream->max_buffer_size);
+  }
+
   GST_LOG_OBJECT (qtdemux, "reading %d bytes @ %" G_GUINT64_FORMAT, size,
       offset);
 
@@ -3823,13 +4152,43 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux)
     buf = gst_buffer_new_allocate (stream->allocator, size, &stream->params);
   }
 
-  ret = gst_qtdemux_pull_atom (qtdemux, offset, size, &buf);
+  ret = gst_qtdemux_pull_atom (qtdemux, offset + stream->offset_in_sample,
+      size, &buf);
   if (G_UNLIKELY (ret != GST_FLOW_OK))
     goto beach;
 
+  if (size != sample_size) {
+    pts += gst_util_uint64_scale_int (GST_SECOND,
+        stream->offset_in_sample / stream->bytes_per_frame, stream->timescale);
+    dts += gst_util_uint64_scale_int (GST_SECOND,
+        stream->offset_in_sample / stream->bytes_per_frame, stream->timescale);
+    duration = gst_util_uint64_scale_int (GST_SECOND,
+        size / stream->bytes_per_frame, stream->timescale);
+  }
+
   ret = gst_qtdemux_decorate_and_push_buffer (qtdemux, stream, buf,
       dts, pts, duration, keyframe, min_time, offset);
 
+  if (size != sample_size) {
+    QtDemuxSample *sample = &stream->samples[stream->sample_index];
+    QtDemuxSegment *segment = &stream->segments[stream->segment_index];
+
+    GstClockTime time_position = gst_util_uint64_scale (sample->timestamp +
+        stream->offset_in_sample / stream->bytes_per_frame, GST_SECOND,
+        stream->timescale);
+    if (time_position >= segment->media_start) {
+      /* inside the segment, update time_position, looks very familiar to
+       * GStreamer segments, doesn't it? */
+      stream->time_position = (time_position - segment->media_start) +
+          segment->time;
+    } else {
+      /* not yet in segment, time does not yet increment. This means
+       * that we are still prerolling keyframes to the decoder so it can
+       * decode the first sample of the segment. */
+      stream->time_position = segment->time;
+    }
+  }
+
   /* combine flows */
   ret = gst_qtdemux_combine_flows (qtdemux, stream, ret);
   /* ignore unlinked, we will not push on the pad anymore and we will EOS when
@@ -3837,6 +4196,12 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux)
   if (ret == GST_FLOW_EOS)
     ret = GST_FLOW_OK;
 
+  stream->offset_in_sample += size;
+  if (stream->offset_in_sample >= sample_size) {
+    gst_qtdemux_advance_sample (qtdemux, stream);
+  }
+  goto beach;
+
 next:
   gst_qtdemux_advance_sample (qtdemux, stream);
 
@@ -3977,8 +4342,10 @@ next_entry_size (GstQTDemux * demux)
   for (i = 0; i < demux->n_streams; i++) {
     stream = demux->streams[i];
 
-    if (stream->sample_index == -1)
+    if (stream->sample_index == -1) {
       stream->sample_index = 0;
+      stream->offset_in_sample = 0;
+    }
 
     if (stream->sample_index >= stream->n_samples) {
       GST_LOG_OBJECT (demux, "stream %d samples exhausted", i);
@@ -4100,14 +4467,24 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf)
 {
   GstQTDemux *demux;
   GstFlowReturn ret = GST_FLOW_OK;
+  GstClockTime timestamp;
 
   demux = GST_QTDEMUX (parent);
 
+  timestamp = GST_BUFFER_TIMESTAMP (inbuf);
+
+  if (G_UNLIKELY (GST_CLOCK_TIME_IS_VALID (timestamp))) {
+    demux->fragment_start = timestamp;
+    GST_DEBUG_OBJECT (demux, "got fragment_start %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (timestamp));
+  }
+
   gst_adapter_push (demux->adapter, inbuf);
 
   /* we never really mean to buffer that much */
-  if (demux->neededbytes == -1)
+  if (demux->neededbytes == -1) {
     goto eos;
+  }
 
   GST_DEBUG_OBJECT (demux,
       "pushing in inbuf %p, neededbytes:%u, available:%" G_GSIZE_FORMAT, inbuf,
@@ -4234,30 +4611,50 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf)
         if (fourcc == FOURCC_moov) {
           /* in usual fragmented setup we could try to scan for more
            * and end up at the the moov (after mdat) again */
-          if (demux->got_moov && demux->n_streams > 0) {
+          if (demux->got_moov && demux->n_streams > 0 && !demux->fragmented) {
             GST_DEBUG_OBJECT (demux,
                 "Skipping moov atom as we have one already");
           } else {
             GST_DEBUG_OBJECT (demux, "Parsing [moov]");
 
-            demux->got_moov = TRUE;
-
-            /* prepare newsegment to send when streaming actually starts */
-            if (!demux->pending_newsegment)
-              demux->pending_newsegment =
-                  gst_event_new_segment (&demux->segment);
+            if (demux->got_moov && demux->fragmented) {
+              GST_DEBUG_OBJECT (demux,
+                  "Got a second moov, clean up data from old one");
+              if (demux->moov_node)
+                g_node_destroy (demux->moov_node);
+              demux->moov_node = NULL;
+              demux->moov_node_compressed = NULL;
+            } else {
+              /* prepare newsegment to send when streaming actually starts */
+              if (!demux->pending_newsegment)
+                demux->pending_newsegment =
+                    gst_event_new_segment (&demux->segment);
+            }
 
             qtdemux_parse_moov (demux, data, demux->neededbytes);
             qtdemux_node_dump (demux, demux->moov_node);
             qtdemux_parse_tree (demux);
-            qtdemux_expose_streams (demux);
+            qtdemux_prepare_streams (demux);
+            if (!demux->got_moov)
+              qtdemux_expose_streams (demux);
+            else {
+              gint n;
+
+              for (n = 0; n < demux->n_streams; n++) {
+                QtDemuxStream *stream = demux->streams[n];
+
+                gst_qtdemux_configure_stream (demux, stream);
+              }
+            }
+
+            demux->got_moov = TRUE;
 
             g_node_destroy (demux->moov_node);
             demux->moov_node = NULL;
             GST_DEBUG_OBJECT (demux, "Finished parsing the header");
           }
         } else if (fourcc == FOURCC_moof) {
-          if (demux->got_moov && demux->fragmented) {
+          if ((demux->got_moov || demux->media_caps) && demux->fragmented) {
             GST_DEBUG_OBJECT (demux, "Parsing [moof]");
             if (!qtdemux_parse_moof (demux, data, demux->neededbytes,
                     demux->offset, NULL)) {
@@ -4265,6 +4662,16 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf)
               ret = GST_FLOW_ERROR;
               goto done;
             }
+            /* in MSS we need to expose the pads after the first moof as we won't get a moov */
+            if (demux->mss_mode && !demux->exposed) {
+              if (!demux->pending_newsegment) {
+                GstSegment segment;
+                gst_segment_init (&segment, GST_FORMAT_TIME);
+                GST_DEBUG_OBJECT (demux, "new pending_newsegment");
+                demux->pending_newsegment = gst_event_new_segment (&segment);
+              }
+              qtdemux_expose_streams (demux);
+            }
           } else {
             GST_DEBUG_OBJECT (demux, "Discarding [moof]");
           }
@@ -4390,8 +4797,7 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf)
         /* initial newsegment sent here after having added pads,
          * possible others in sink_event */
         if (G_UNLIKELY (demux->pending_newsegment)) {
-          gst_qtdemux_push_event (demux, demux->pending_newsegment);
-          demux->pending_newsegment = NULL;
+          gst_qtdemux_push_pending_newsegment (demux);
           /* clear to send tags on all streams */
           for (i = 0; i < demux->n_streams; i++) {
             gst_qtdemux_push_tags (demux, demux->streams[i]);
@@ -4416,6 +4822,10 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf)
         if (G_UNLIKELY (stream == NULL || i == demux->n_streams))
           goto unknown_stream;
 
+        if (stream->new_caps) {
+          gst_qtdemux_configure_stream (demux, stream);
+        }
+
         /* Put data in a buffer, set timestamps, caps, ... */
         outbuf = gst_adapter_take_buffer (demux->adapter, demux->neededbytes);
         GST_DEBUG_OBJECT (demux, "stream : %" GST_FOURCC_FORMAT,
@@ -4437,6 +4847,7 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf)
         ret = gst_qtdemux_combine_flows (demux, stream, ret);
 
         stream->sample_index++;
+        stream->offset_in_sample = 0;
 
         /* update current offset and figure out size of next buffer */
         GST_LOG_OBJECT (demux, "increasing offset %" G_GUINT64_FORMAT " by %u",
@@ -4887,6 +5298,9 @@ qtdemux_parse_node (GstQTDemux * qtdemux, GNode * node, const guint8 * buffer,
         guint32 version;
         int tlen;
 
+        /* codec_data is contained inside these atoms, which all have
+         * the same format. */
+
         GST_DEBUG_OBJECT (qtdemux, "parsing in %" GST_FOURCC_FORMAT,
             GST_FOURCC_ARGS (fourcc));
         version = QT_UINT32 (buffer + 16);
@@ -4955,6 +5369,11 @@ qtdemux_parse_node (GstQTDemux * qtdemux, GNode * node, const guint8 * buffer,
         qtdemux_parse_container (qtdemux, node, buffer + 0x34, end);
         break;
       }
+      case FOURCC_uuid:
+      {
+        qtdemux_parse_uuid (qtdemux, buffer, end - buffer);
+        break;
+      }
       default:
         if (!strcmp (type->name, "unknown"))
           GST_MEMDUMP ("Unknown tag", buffer + 4, end - buffer - 4);
@@ -5067,6 +5486,14 @@ qtdemux_tree_get_sibling_by_type (GNode * node, guint32 fourcc)
 static void
 qtdemux_do_allocation (GstQTDemux * qtdemux, QtDemuxStream * stream)
 {
+/* FIXME: This can only reliably work if demuxers have a
+ * separate streaming thread per srcpad. This should be
+ * done in a demuxer base class, which integrates parts
+ * of multiqueue
+ *
+ * https://bugzilla.gnome.org/show_bug.cgi?id=701856
+ */
+#if 0
   GstQuery *query;
 
   query = gst_query_new_allocation (stream->caps, FALSE);
@@ -5090,22 +5517,13 @@ qtdemux_do_allocation (GstQTDemux * qtdemux, QtDemuxStream * stream)
     stream->use_allocator = FALSE;
   }
   gst_query_unref (query);
+#endif
 }
 
 static gboolean
-gst_qtdemux_add_stream (GstQTDemux * qtdemux,
-    QtDemuxStream * stream, GstTagList * list)
+gst_qtdemux_configure_stream (GstQTDemux * qtdemux, QtDemuxStream * stream)
 {
-  /* consistent default for push based mode */
-  gst_segment_init (&stream->segment, GST_FORMAT_TIME);
-
   if (stream->subtype == FOURCC_vide) {
-    gchar *name = g_strdup_printf ("video_%u", qtdemux->n_video_streams);
-
-    stream->pad =
-        gst_pad_new_from_static_template (&gst_qtdemux_videosrc_template, name);
-    g_free (name);
-
     /* fps is calculated base on the duration of the first frames since
      * qt does not have a fixed framerate. */
     if ((stream->n_samples == 1) && (stream->min_duration == 0)) {
@@ -5113,11 +5531,19 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux,
       stream->fps_n = 0;
       stream->fps_d = 1;
     } else {
-      stream->fps_n = stream->timescale;
-      if (stream->min_duration == 0)
-        stream->fps_d = 1;
+      /* we might need to scale the timescale to get precise framerate */
+      const int required_scale = rint (log (10000) / 2.303);    /* divide to get log10 */
+      int current_scale = rint (log (stream->timescale) / 2.303);
+      int factor = pow (10.0, MAX (0, required_scale - current_scale));
+
+      stream->fps_n = stream->timescale * factor;
+
+      if (stream->duration == 0)
+        stream->fps_d = factor;
       else
-        stream->fps_d = stream->min_duration;
+        stream->fps_d =
+            gst_util_uint64_scale_int_round (stream->duration, factor,
+            stream->n_samples);
     }
 
     if (stream->caps) {
@@ -5125,6 +5551,8 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux,
       gint depth, palette_count;
       const guint32 *palette_data = NULL;
 
+      stream->caps = gst_caps_make_writable (stream->caps);
+
       gst_caps_set_simple (stream->caps,
           "width", G_TYPE_INT, stream->width,
           "height", G_TYPE_INT, stream->height,
@@ -5214,18 +5642,15 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux,
         stream->pad = NULL;
       }
     }
-    qtdemux->n_video_streams++;
   } else if (stream->subtype == FOURCC_soun) {
-    gchar *name = g_strdup_printf ("audio_%u", qtdemux->n_audio_streams);
-
-    stream->pad =
-        gst_pad_new_from_static_template (&gst_qtdemux_audiosrc_template, name);
-    g_free (name);
     if (stream->caps) {
-      gst_caps_set_simple (stream->caps,
-          "rate", G_TYPE_INT, (int) stream->rate,
-          "channels", G_TYPE_INT, stream->n_channels, NULL);
-
+      stream->caps = gst_caps_make_writable (stream->caps);
+      if (stream->rate > 0)
+        gst_caps_set_simple (stream->caps,
+            "rate", G_TYPE_INT, (int) stream->rate, NULL);
+      if (stream->n_channels > 0)
+        gst_caps_set_simple (stream->caps,
+            "channels", G_TYPE_INT, stream->n_channels, NULL);
       if (stream->n_channels > 2) {
         /* FIXME: Need to parse the 'chan' atom to get channel layouts
          * correctly; this is just the minimum we can do - assume
@@ -5234,15 +5659,67 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux,
             "channel-mask", GST_TYPE_BITMASK, G_GUINT64_CONSTANT (0), NULL);
       }
     }
+  }
+
+  if (stream->pad) {
+    GST_PAD_ELEMENT_PRIVATE (stream->pad) = stream;
+    gst_pad_set_event_function (stream->pad, gst_qtdemux_handle_src_event);
+    gst_pad_set_query_function (stream->pad, gst_qtdemux_handle_src_query);
+    gst_pad_set_active (stream->pad, TRUE);
+
+    gst_pad_use_fixed_caps (stream->pad);
+
+    GST_DEBUG_OBJECT (qtdemux, "setting caps %" GST_PTR_FORMAT, stream->caps);
+    if (stream->new_stream) {
+      gchar *stream_id;
+
+      stream->new_stream = FALSE;
+      stream_id =
+          gst_pad_create_stream_id_printf (stream->pad,
+          GST_ELEMENT_CAST (qtdemux), "%03u", stream->track_id);
+      gst_pad_push_event (stream->pad, gst_event_new_stream_start (stream_id));
+      g_free (stream_id);
+    }
+    gst_pad_set_caps (stream->pad, stream->caps);
+    stream->new_caps = FALSE;
+  }
+  return TRUE;
+}
+
+static gboolean
+gst_qtdemux_add_stream (GstQTDemux * qtdemux,
+    QtDemuxStream * stream, GstTagList * list)
+{
+  /* consistent default for push based mode */
+  gst_segment_init (&stream->segment, GST_FORMAT_TIME);
+
+  if (stream->subtype == FOURCC_vide) {
+    gchar *name = g_strdup_printf ("video_%u", qtdemux->n_video_streams);
+
+    stream->pad =
+        gst_pad_new_from_static_template (&gst_qtdemux_videosrc_template, name);
+    g_free (name);
+
+    gst_qtdemux_configure_stream (qtdemux, stream);
+    qtdemux->n_video_streams++;
+  } else if (stream->subtype == FOURCC_soun) {
+    gchar *name = g_strdup_printf ("audio_%u", qtdemux->n_audio_streams);
+
+    stream->pad =
+        gst_pad_new_from_static_template (&gst_qtdemux_audiosrc_template, name);
+    g_free (name);
+    gst_qtdemux_configure_stream (qtdemux, stream);
     qtdemux->n_audio_streams++;
   } else if (stream->subtype == FOURCC_strm) {
     GST_DEBUG_OBJECT (qtdemux, "stream type, not creating pad");
-  } else if (stream->subtype == FOURCC_subp || stream->subtype == FOURCC_text) {
+  } else if (stream->subtype == FOURCC_subp || stream->subtype == FOURCC_text
+      || stream->subtype == FOURCC_sbtl) {
     gchar *name = g_strdup_printf ("subtitle_%u", qtdemux->n_sub_streams);
 
     stream->pad =
         gst_pad_new_from_static_template (&gst_qtdemux_subsrc_template, name);
     g_free (name);
+    gst_qtdemux_configure_stream (qtdemux, stream);
     qtdemux->n_sub_streams++;
   } else if (stream->caps) {
     gchar *name = g_strdup_printf ("video_%u", qtdemux->n_video_streams);
@@ -5250,6 +5727,7 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux,
     stream->pad =
         gst_pad_new_from_static_template (&gst_qtdemux_videosrc_template, name);
     g_free (name);
+    gst_qtdemux_configure_stream (qtdemux, stream);
     qtdemux->n_video_streams++;
   } else {
     GST_DEBUG_OBJECT (qtdemux, "unknown stream type");
@@ -5257,23 +5735,6 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux,
   }
 
   if (stream->pad) {
-    gchar *stream_id;
-
-    GST_PAD_ELEMENT_PRIVATE (stream->pad) = stream;
-
-    gst_pad_use_fixed_caps (stream->pad);
-    gst_pad_set_event_function (stream->pad, gst_qtdemux_handle_src_event);
-    gst_pad_set_query_function (stream->pad, gst_qtdemux_handle_src_query);
-    gst_pad_set_active (stream->pad, TRUE);
-
-    GST_DEBUG_OBJECT (qtdemux, "setting caps %" GST_PTR_FORMAT, stream->caps);
-    stream_id =
-        gst_pad_create_stream_id_printf (stream->pad,
-        GST_ELEMENT_CAST (qtdemux), "%u", stream->track_id);
-    gst_pad_push_event (stream->pad, gst_event_new_stream_start (stream_id));
-    g_free (stream_id);
-    gst_pad_set_caps (stream->pad, stream->caps);
-
     GST_DEBUG_OBJECT (qtdemux, "adding pad %s %p to qtdemux %p",
         GST_OBJECT_NAME (stream->pad), stream->pad, qtdemux);
     gst_element_add_pad (GST_ELEMENT_CAST (qtdemux), stream->pad);
@@ -5283,8 +5744,6 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux,
     stream->pending_tags = list;
     /* global tags go on each pad anyway */
     stream->send_global_tags = TRUE;
-
-    qtdemux_do_allocation (qtdemux, stream);
   }
 done:
   return TRUE;
@@ -5429,6 +5888,7 @@ static gboolean
 qtdemux_stbl_init (GstQTDemux * qtdemux, QtDemuxStream * stream, GNode * stbl)
 {
   stream->stbl_index = -1;      /* no samples have yet been parsed */
+  stream->sample_index = -1;
 
   /* time-to-sample atom */
   if (!qtdemux_tree_get_child_by_type_full (stbl, FOURCC_stts, &stream->stts))
@@ -5769,7 +6229,8 @@ qtdemux_parse_samples (GstQTDemux * qtdemux, QtDemuxStream * stream, guint32 n)
 
         for (k = stream->stsc_sample_index; k < samples_per_chunk; k++) {
           GST_LOG_OBJECT (qtdemux, "Creating entry %d with offset %"
-              G_GUINT64_FORMAT, (guint) (cur - samples), stream->chunk_offset);
+              G_GUINT64_FORMAT "and size %d",
+              (guint) (cur - samples), stream->chunk_offset, cur->size);
 
           cur->offset = chunk_offset;
           chunk_offset += cur->size;
@@ -6448,7 +6909,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
   GNode *wave;
   GNode *esds;
   GNode *pasp;
-  QtDemuxStream *stream;
+  QtDemuxStream *stream = NULL;
   GstTagList *list = NULL;
   gchar *codec = NULL;
   const guint8 *stsd_data;
@@ -6458,17 +6919,9 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
   guint8 tkhd_version = 0;
   guint32 fourcc;
   guint value_size, len;
+  guint32 track_id;
 
-  stream = g_new0 (QtDemuxStream, 1);
-  /* new streams always need a discont */
-  stream->discont = TRUE;
-  /* we enable clipping for raw audio/video streams */
-  stream->need_clip = FALSE;
-  stream->need_process = FALSE;
-  stream->segment_index = -1;
-  stream->time_position = 0;
-  stream->sample_index = -1;
-  stream->last_ret = GST_FLOW_OK;
+  GST_DEBUG_OBJECT (qtdemux, "parse_trak");
 
   if (!qtdemux_tree_get_child_by_type_full (trak, FOURCC_tkhd, &tkhd)
       || !gst_byte_reader_get_uint8 (&tkhd, &tkhd_version)
@@ -6481,9 +6934,22 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
   /* pick between 64 or 32 bits */
   value_size = tkhd_version == 1 ? 8 : 4;
   if (!gst_byte_reader_skip (&tkhd, value_size * 2) ||
-      !gst_byte_reader_get_uint32_be (&tkhd, &stream->track_id))
+      !gst_byte_reader_get_uint32_be (&tkhd, &track_id))
     goto corrupt_file;
 
+  if (!qtdemux->got_moov) {
+    if (qtdemux_find_stream (qtdemux, track_id))
+      goto existing_stream;
+    stream = _create_stream ();
+    stream->track_id = track_id;
+  } else {
+    stream = qtdemux_find_stream (qtdemux, track_id);
+    if (!stream) {
+      GST_WARNING_OBJECT (qtdemux, "Stream not found, going to ignore it");
+      goto skip_track;
+    }
+  }
+
   GST_LOG_OBJECT (qtdemux, "track[tkhd] version/flags/id: 0x%02x/%06x/%u",
       tkhd_version, tkhd_flags, stream->track_id);
 
@@ -7057,6 +7523,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
     gboolean amrwb = FALSE;
 
     offset = 32;
+    /* sample description entry (16) + sound sample description v0 (20) */
     if (len < 36)
       goto corrupt_file;
 
@@ -7140,6 +7607,10 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
     }
 
     if (version == 0x00010000) {
+      /* sample description entry (16) + sound sample description v1 (20+16) */
+      if (len < 52)
+        goto corrupt_file;
+
       switch (fourcc) {
         case FOURCC_twos:
         case FOURCC_sowt:
@@ -7178,22 +7649,31 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
         guint64 val;
       } qtfp;
 
-      stream->samples_per_packet = QT_UINT32 (stsd_data + offset);
+      /* sample description entry (16) + sound sample description v2 (56) */
+      if (len < 72)
+        goto corrupt_file;
+
       qtfp.val = QT_UINT64 (stsd_data + offset + 4);
       stream->rate = qtfp.fp;
       stream->n_channels = QT_UINT32 (stsd_data + offset + 12);
 
-      GST_LOG_OBJECT (qtdemux, "samples/packet:   %d",
-          stream->samples_per_packet);
-      GST_LOG_OBJECT (qtdemux, "sample rate:      %g", stream->rate);
-      GST_LOG_OBJECT (qtdemux, "n_channels:       %d", stream->n_channels);
-
+      GST_LOG_OBJECT (qtdemux, "Sound sample description Version 2");
+      GST_LOG_OBJECT (qtdemux, "sample rate:        %g", stream->rate);
+      GST_LOG_OBJECT (qtdemux, "n_channels:         %d", stream->n_channels);
+      GST_LOG_OBJECT (qtdemux, "bits/channel:       %d",
+          QT_UINT32 (stsd_data + offset + 20));
+      GST_LOG_OBJECT (qtdemux, "format flags:       %X",
+          QT_UINT32 (stsd_data + offset + 24));
+      GST_LOG_OBJECT (qtdemux, "bytes/packet:       %d",
+          QT_UINT32 (stsd_data + offset + 28));
+      GST_LOG_OBJECT (qtdemux, "LPCM frames/packet: %d",
+          QT_UINT32 (stsd_data + offset + 32));
     } else {
       GST_WARNING_OBJECT (qtdemux, "unknown version %08x", version);
     }
 
-    stream->caps = qtdemux_audio_caps (qtdemux, stream, fourcc, NULL, 0,
-        &codec);
+    stream->caps = qtdemux_audio_caps (qtdemux, stream, fourcc,
+        stsd_data + 32, len - 16, &codec);
 
     switch (fourcc) {
       case FOURCC_in24:
@@ -7486,7 +7966,8 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
       goto unknown_stream;
     }
     stream->sampled = TRUE;
-  } else if (stream->subtype == FOURCC_subp || stream->subtype == FOURCC_text) {
+  } else if (stream->subtype == FOURCC_subp || stream->subtype == FOURCC_text
+      || stream->subtype == FOURCC_sbtl) {
 
     stream->sampled = TRUE;
 
@@ -7634,14 +8115,17 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
   if (qtdemux->n_streams >= GST_QTDEMUX_MAX_STREAMS)
     goto too_many_streams;
 
-  stream->pending_tags = list;
-  qtdemux->streams[qtdemux->n_streams] = stream;
-  qtdemux->n_streams++;
-  GST_DEBUG_OBJECT (qtdemux, "n_streams is now %d", qtdemux->n_streams);
+  if (!qtdemux->got_moov) {
+    stream->pending_tags = list;
+    qtdemux->streams[qtdemux->n_streams] = stream;
+    qtdemux->n_streams++;
+    GST_DEBUG_OBJECT (qtdemux, "n_streams is now %d", qtdemux->n_streams);
+  }
 
   return TRUE;
 
 /* ERRORS */
+skip_track:
 track_disabled:
   {
     GST_INFO_OBJECT (qtdemux, "skip disabled track");
@@ -7670,6 +8154,14 @@ segments_failed:
     g_free (stream);
     return FALSE;
   }
+existing_stream:
+  {
+    GST_INFO_OBJECT (qtdemux, "stream with track id %i already exists",
+        track_id);
+    if (stream)
+      g_free (stream);
+    return TRUE;
+  }
 unknown_stream:
   {
     GST_INFO_OBJECT (qtdemux, "unknown subtype %" GST_FOURCC_FORMAT,
@@ -7782,19 +8274,18 @@ gst_qtdemux_guess_bitrate (GstQTDemux * qtdemux)
 }
 
 static GstFlowReturn
-qtdemux_expose_streams (GstQTDemux * qtdemux)
+qtdemux_prepare_streams (GstQTDemux * qtdemux)
 {
   gint i;
   GstFlowReturn ret = GST_FLOW_OK;
 
-  GST_DEBUG_OBJECT (qtdemux, "exposing streams");
+  GST_DEBUG_OBJECT (qtdemux, "prepare streams");
 
   for (i = 0; ret == GST_FLOW_OK && i < qtdemux->n_streams; i++) {
     QtDemuxStream *stream = qtdemux->streams[i];
     guint32 sample_num = 0;
     guint samples = 20;
     GArray *durations;
-    GstTagList *list;
 
     GST_DEBUG_OBJECT (qtdemux, "stream %d, id %d, fourcc %" GST_FOURCC_FORMAT,
         i, stream->track_id, GST_FOURCC_ARGS (stream->fourcc));
@@ -7849,10 +8340,34 @@ qtdemux_expose_streams (GstQTDemux * qtdemux)
       stream->min_duration = g_array_index (durations, guint32, samples / 2);
       g_array_free (durations, TRUE);
     }
+  }
+
+  return ret;
+}
+
+static GstFlowReturn
+qtdemux_expose_streams (GstQTDemux * qtdemux)
+{
+  gint i;
+  GstFlowReturn ret = GST_FLOW_OK;
+  GSList *oldpads = NULL;
+  GSList *iter;
+
+  GST_DEBUG_OBJECT (qtdemux, "exposing streams");
+
+  for (i = 0; ret == GST_FLOW_OK && i < qtdemux->n_streams; i++) {
+    QtDemuxStream *stream = qtdemux->streams[i];
+    GstPad *oldpad = stream->pad;
+    GstTagList *list;
+
+    GST_DEBUG_OBJECT (qtdemux, "stream %d, id %d, fourcc %" GST_FOURCC_FORMAT,
+        i, stream->track_id, GST_FOURCC_ARGS (stream->fourcc));
 
     /* now we have all info and can expose */
     list = stream->pending_tags;
     stream->pending_tags = NULL;
+    if (oldpad)
+      oldpads = g_slist_prepend (oldpads, oldpad);
     gst_qtdemux_add_stream (qtdemux, stream, list);
   }
 
@@ -7860,6 +8375,15 @@ qtdemux_expose_streams (GstQTDemux * qtdemux)
 
   gst_element_no_more_pads (GST_ELEMENT_CAST (qtdemux));
 
+  for (iter = oldpads; iter; iter = g_slist_next (iter)) {
+    GstPad *oldpad = iter->data;
+
+    gst_pad_push_event (oldpad, gst_event_new_eos ());
+    gst_pad_set_active (oldpad, FALSE);
+    gst_element_remove_pad (GST_ELEMENT (qtdemux), oldpad);
+    gst_object_unref (oldpad);
+  }
+
   /* check if we should post a redirect in case there is a single trak
    * and it is a redirecting trak */
   if (qtdemux->n_streams == 1 && qtdemux->streams[0]->redirect_uri != NULL) {
@@ -7875,6 +8399,13 @@ qtdemux_expose_streams (GstQTDemux * qtdemux)
     qtdemux->posted_redirect = TRUE;
   }
 
+  for (i = 0; i < qtdemux->n_streams; i++) {
+    QtDemuxStream *stream = qtdemux->streams[i];
+
+    qtdemux_do_allocation (qtdemux, stream);
+  }
+
+  qtdemux->exposed = TRUE;
   return ret;
 }
 
@@ -8744,6 +9275,8 @@ qtdemux_parse_udta (GstQTDemux * qtdemux, GNode * udta)
   if (!qtdemux->tag_list) {
     qtdemux->tag_list = gst_tag_list_new_empty ();
     gst_tag_list_set_scope (qtdemux->tag_list, GST_TAG_SCOPE_GLOBAL);
+  } else {
+    qtdemux->tag_list = gst_tag_list_make_writable (qtdemux->tag_list);
   }
 
   i = 0;
@@ -9002,6 +9535,14 @@ qtdemux_parse_tree (GstQTDemux * qtdemux)
   GstDateTime *datetime = NULL;
   gint version;
 
+  /* make sure we have a usable taglist */
+  if (!qtdemux->tag_list) {
+    qtdemux->tag_list = gst_tag_list_new_empty ();
+    gst_tag_list_set_scope (qtdemux->tag_list, GST_TAG_SCOPE_GLOBAL);
+  } else {
+    qtdemux->tag_list = gst_tag_list_make_writable (qtdemux->tag_list);
+  }
+
   mvhd = qtdemux_tree_get_child_by_type (qtdemux->moov_node, FOURCC_mvhd);
   if (mvhd == NULL) {
     GST_LOG_OBJECT (qtdemux, "No mvhd node found, looking for redirects.");
@@ -9041,11 +9582,6 @@ qtdemux_parse_tree (GstQTDemux * qtdemux)
     }
   }
   if (datetime) {
-    if (!qtdemux->tag_list) {
-      qtdemux->tag_list = gst_tag_list_new_empty ();
-      gst_tag_list_set_scope (qtdemux->tag_list, GST_TAG_SCOPE_GLOBAL);
-    }
-
     /* Use KEEP as explicit tags should have a higher priority than mvhd tag */
     gst_tag_list_add (qtdemux->tag_list, GST_TAG_MERGE_KEEP, GST_TAG_DATE_TIME,
         datetime, NULL);
@@ -9476,7 +10012,8 @@ qtdemux_video_caps (GstQTDemux * qtdemux, QtDemuxStream * stream,
     case GST_MAKE_FOURCC ('U', '2', '6', '3'):
       _codec ("H.263");
       /* ffmpeg uses the height/width props, don't know why */
-      caps = gst_caps_new_empty_simple ("video/x-h263");
+      caps = gst_caps_new_simple ("video/x-h263",
+          "variant", G_TYPE_STRING, "itu", NULL);
       break;
     case GST_MAKE_FOURCC ('m', 'p', '4', 'v'):
     case GST_MAKE_FOURCC ('M', 'P', '4', 'V'):
@@ -9586,6 +10123,10 @@ qtdemux_video_caps (GstQTDemux * qtdemux, QtDemuxStream * stream,
       _codec ("VP3");
       caps = gst_caps_new_empty_simple ("video/x-vp3");
       break;
+    case GST_MAKE_FOURCC ('V', 'P', '6', 'F'):
+      _codec ("VP6 Flash");
+      caps = gst_caps_new_empty_simple ("video/x-vp6-flash");
+      break;
     case GST_MAKE_FOURCC ('X', 'i', 'T', 'h'):
       _codec ("Theora");
       caps = gst_caps_new_empty_simple ("video/x-theora");
@@ -9819,7 +10360,7 @@ qtdemux_audio_caps (GstQTDemux * qtdemux, QtDemuxStream * stream,
     case GST_MAKE_FOURCC ('Q', 'D', 'M', '2'):
       _codec ("QDesign Music v.2");
       /* FIXME: QDesign music version 2 (no constant) */
-      if (data) {
+      if (FALSE && data) {
         caps = gst_caps_new_simple ("audio/x-qdm2",
             "framesize", G_TYPE_INT, QT_UINT32 (data + 52),
             "bitrate", G_TYPE_INT, QT_UINT32 (data + 40),
@@ -9857,6 +10398,63 @@ qtdemux_audio_caps (GstQTDemux * qtdemux, QtDemuxStream * stream,
       _codec ("WMA");
       caps = gst_caps_new_empty_simple ("audio/x-wma");
       break;
+    case GST_MAKE_FOURCC ('l', 'p', 'c', 'm'):
+    {
+      guint32 flags = 0;
+      guint32 depth = 0;
+      guint32 width = 0;
+      GstAudioFormat format;
+      enum
+      {
+        FLAG_IS_FLOAT = 0x1,
+        FLAG_IS_BIG_ENDIAN = 0x2,
+        FLAG_IS_SIGNED = 0x4,
+        FLAG_IS_PACKED = 0x8,
+        FLAG_IS_ALIGNED_HIGH = 0x10,
+        FLAG_IS_NON_INTERLEAVED = 0x20
+      };
+      _codec ("Raw LPCM audio");
+
+      if (data && len >= 56) {
+        depth = QT_UINT32 (data + 40);
+        flags = QT_UINT32 (data + 44);
+        width = QT_UINT32 (data + 48) * 8 / stream->n_channels;
+      }
+      if ((flags & FLAG_IS_FLOAT) == 0) {
+        if (depth == 0)
+          depth = 16;
+        if (width == 0)
+          width = 16;
+        format = gst_audio_format_build_integer ((flags & FLAG_IS_SIGNED) ?
+            TRUE : FALSE, (flags & FLAG_IS_BIG_ENDIAN) ?
+            G_BIG_ENDIAN : G_LITTLE_ENDIAN, width, depth);
+        caps = gst_caps_new_simple ("audio/x-raw",
+            "format", G_TYPE_STRING, gst_audio_format_to_string (format),
+            "layout", G_TYPE_STRING, (flags & FLAG_IS_NON_INTERLEAVED) ?
+            "non-interleaved" : "interleaved", NULL);
+      } else {
+        if (depth == 0)
+          depth = 32;
+        if (width == 0)
+          width = 32;
+        if (width == 64) {
+          if (flags & FLAG_IS_BIG_ENDIAN)
+            format = GST_AUDIO_FORMAT_F64BE;
+          else
+            format = GST_AUDIO_FORMAT_F64LE;
+        } else {
+          if (flags & FLAG_IS_BIG_ENDIAN)
+            format = GST_AUDIO_FORMAT_F32BE;
+          else
+            format = GST_AUDIO_FORMAT_F32LE;
+        }
+        caps = gst_caps_new_simple ("audio/x-raw",
+            "format", G_TYPE_STRING, gst_audio_format_to_string (format),
+            "layout", G_TYPE_STRING, (flags & FLAG_IS_NON_INTERLEAVED) ?
+            "non-interleaved" : "interleaved", NULL);
+      }
+      break;
+    }
     case GST_MAKE_FOURCC ('q', 't', 'v', 'r'):
       /* ? */
     default:
@@ -9884,6 +10482,8 @@ qtdemux_audio_caps (GstQTDemux * qtdemux, QtDemuxStream * stream,
   name = gst_structure_get_name (s);
   if (g_str_has_prefix (name, "audio/x-raw")) {
     stream->need_clip = TRUE;
+    stream->max_buffer_size = 4096 * stream->bytes_per_frame;
+    GST_DEBUG ("setting max buffer size to %d", stream->max_buffer_size);
   }
   return caps;
 }
diff --git a/gst/isomp4/qtdemux.h b/gst/isomp4/qtdemux.h
index a9e50ab53..efc6ffa96 100644
--- a/gst/isomp4/qtdemux.h
+++ b/gst/isomp4/qtdemux.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -101,6 +101,7 @@ struct _GstQTDemux {
   /* configured playback region */
   GstSegment segment;
   GstEvent *pending_newsegment;
+  gboolean upstream_newsegment;
 
 #if 0
   /* gst index support */
@@ -113,6 +114,13 @@ struct _GstQTDemux {
 
   gboolean upstream_seekable;
   gint64 upstream_size;
+
+  /* MSS streams have a single media that is unspecified at the atoms, so
+   * upstream provides it at the caps */
+  GstCaps *media_caps;
+  gboolean exposed;
+  gboolean mss_mode; /* flag to indicate that we're working with a smoothstreaming fragment */
+  guint64 fragment_start;
 };
 
 struct _GstQTDemuxClass {
diff --git a/gst/isomp4/qtdemux_dump.c b/gst/isomp4/qtdemux_dump.c
index 952b0c78d..b62ef174b 100644
--- a/gst/isomp4/qtdemux_dump.c
+++ b/gst/isomp4/qtdemux_dump.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "qtdemux_types.h"
diff --git a/gst/isomp4/qtdemux_dump.h b/gst/isomp4/qtdemux_dump.h
index d5486eebf..0003ac135 100644
--- a/gst/isomp4/qtdemux_dump.h
+++ b/gst/isomp4/qtdemux_dump.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_QTDEMUX_DUMP_H__
diff --git a/gst/isomp4/qtdemux_fourcc.h b/gst/isomp4/qtdemux_fourcc.h
index b14f91a26..077b54b18 100644
--- a/gst/isomp4/qtdemux_fourcc.h
+++ b/gst/isomp4/qtdemux_fourcc.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_QTDEMUX_FOURCC_H__
@@ -65,6 +65,7 @@ G_BEGIN_DECLS
 #define FOURCC_vide     GST_MAKE_FOURCC('v','i','d','e')
 #define FOURCC_soun     GST_MAKE_FOURCC('s','o','u','n')
 #define FOURCC_subp     GST_MAKE_FOURCC('s','u','b','p')
+#define FOURCC_sbtl     GST_MAKE_FOURCC('s','b','t','l')
 #define FOURCC_strm     GST_MAKE_FOURCC('s','t','r','m')
 #define FOURCC_rtsp     GST_MAKE_FOURCC('r','t','s','p')
 #define FOURCC_co64     GST_MAKE_FOURCC('c','o','6','4')
diff --git a/gst/isomp4/qtdemux_lang.c b/gst/isomp4/qtdemux_lang.c
index 9a46d9075..0c7a5d9f5 100644
--- a/gst/isomp4/qtdemux_lang.c
+++ b/gst/isomp4/qtdemux_lang.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "qtdemux.h"
diff --git a/gst/isomp4/qtdemux_lang.h b/gst/isomp4/qtdemux_lang.h
index a5fdec0fd..707c5f721 100644
--- a/gst/isomp4/qtdemux_lang.h
+++ b/gst/isomp4/qtdemux_lang.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_QTDEMUX_LANG_H__
diff --git a/gst/isomp4/qtdemux_types.c b/gst/isomp4/qtdemux_types.c
index 65afc8e2a..c6767341b 100644
--- a/gst/isomp4/qtdemux_types.c
+++ b/gst/isomp4/qtdemux_types.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "qtdemux_types.h"
diff --git a/gst/isomp4/qtdemux_types.h b/gst/isomp4/qtdemux_types.h
index a22efb8bf..57ab4f096 100644
--- a/gst/isomp4/qtdemux_types.h
+++ b/gst/isomp4/qtdemux_types.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_QTDEMUX_TYPES_H__
diff --git a/gst/isomp4/qtpalette.h b/gst/isomp4/qtpalette.h
index 80ece2aea..a41e9911c 100644
--- a/gst/isomp4/qtpalette.h
+++ b/gst/isomp4/qtpalette.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/law/Makefile.in b/gst/law/Makefile.in
index 7d01bde71..fac35eb8d 100644
--- a/gst/law/Makefile.in
+++ b/gst/law/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/law
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -136,6 +162,7 @@ libgstalaw_la_OBJECTS = $(am_libgstalaw_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstalaw_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstalaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstalaw_la_CFLAGS) $(CFLAGS) \
@@ -150,6 +177,18 @@ libgstmulaw_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstmulaw_la_CFLAGS) $(CFLAGS) \
 	$(libgstmulaw_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -162,20 +201,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstalaw_la_SOURCES) $(libgstmulaw_la_SOURCES)
 DIST_SOURCES = $(libgstalaw_la_SOURCES) $(libgstmulaw_la_SOURCES)
 am__can_run_installinfo = \
@@ -184,6 +219,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -352,6 +404,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -562,6 +615,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -588,14 +642,18 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstalaw.la: $(libgstalaw_la_OBJECTS) $(libgstalaw_la_DEPENDENCIES) $(EXTRA_libgstalaw_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstalaw_la_LINK) -rpath $(plugindir) $(libgstalaw_la_OBJECTS) $(libgstalaw_la_LIBADD) $(LIBS)
+
 libgstmulaw.la: $(libgstmulaw_la_OBJECTS) $(libgstmulaw_la_DEPENDENCIES) $(EXTRA_libgstmulaw_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstmulaw_la_LINK) -rpath $(plugindir) $(libgstmulaw_la_OBJECTS) $(libgstmulaw_la_LIBADD) $(LIBS)
 
@@ -689,26 +747,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -720,15 +767,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -737,6 +780,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -881,19 +939,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/law/alaw-decode.c b/gst/law/alaw-decode.c
index 7b5d936ed..e08dc57b0 100644
--- a/gst/law/alaw-decode.c
+++ b/gst/law/alaw-decode.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-alawdec
diff --git a/gst/law/alaw-decode.h b/gst/law/alaw-decode.h
index b2d331d56..0680f5039 100644
--- a/gst/law/alaw-decode.h
+++ b/gst/law/alaw-decode.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_ALAW_DECODE_H__
diff --git a/gst/law/alaw-encode.c b/gst/law/alaw-encode.c
index d286ecf9a..6bcd35e96 100644
--- a/gst/law/alaw-encode.c
+++ b/gst/law/alaw-encode.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-alawenc
diff --git a/gst/law/alaw-encode.h b/gst/law/alaw-encode.h
index 3ca53a63f..16a61ddd5 100644
--- a/gst/law/alaw-encode.h
+++ b/gst/law/alaw-encode.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/law/alaw.c b/gst/law/alaw.c
index 047c0776f..64f7e069f 100644
--- a/gst/law/alaw.c
+++ b/gst/law/alaw.c
@@ -12,8 +12,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/law/mulaw-decode.c b/gst/law/mulaw-decode.c
index ba0d4f940..a26a34dfc 100644
--- a/gst/law/mulaw-decode.c
+++ b/gst/law/mulaw-decode.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-mulawdec
@@ -33,6 +33,11 @@
 extern GstStaticPadTemplate mulaw_dec_src_factory;
 extern GstStaticPadTemplate mulaw_dec_sink_factory;
 
+static gboolean gst_mulawdec_set_format (GstAudioDecoder * dec, GstCaps * caps);
+static GstFlowReturn gst_mulawdec_handle_frame (GstAudioDecoder * dec,
+    GstBuffer * buffer);
+
+
 /* Stereo signals and args */
 enum
 {
@@ -45,278 +50,113 @@ enum
   ARG_0
 };
 
-static GstStateChangeReturn
-gst_mulawdec_change_state (GstElement * element, GstStateChange transition);
-
-static gboolean gst_mulawdec_event (GstPad * pad, GstObject * parent,
-    GstEvent * event);
-static GstFlowReturn gst_mulawdec_chain (GstPad * pad, GstObject * parent,
-    GstBuffer * buffer);
-
 #define gst_mulawdec_parent_class parent_class
-G_DEFINE_TYPE (GstMuLawDec, gst_mulawdec, GST_TYPE_ELEMENT);
+G_DEFINE_TYPE (GstMuLawDec, gst_mulawdec, GST_TYPE_AUDIO_DECODER);
 
 static gboolean
-mulawdec_setcaps (GstMuLawDec * mulawdec, GstCaps * caps)
+gst_mulawdec_set_format (GstAudioDecoder * dec, GstCaps * caps)
 {
+  GstMuLawDec *mulawdec = GST_MULAWDEC (dec);
   GstStructure *structure;
   int rate, channels;
-  gboolean ret;
-  GstCaps *outcaps;
   GstAudioInfo info;
 
   structure = gst_caps_get_structure (caps, 0);
-  ret = gst_structure_get_int (structure, "rate", &rate);
-  ret = ret && gst_structure_get_int (structure, "channels", &channels);
-  if (!ret)
-    return FALSE;
-
-  gst_audio_info_init (&info);
-  gst_audio_info_set_format (&info, GST_AUDIO_FORMAT_S16, rate, channels, NULL);
-
-  outcaps = gst_audio_info_to_caps (&info);
-  ret = gst_pad_set_caps (mulawdec->srcpad, outcaps);
-  gst_caps_unref (outcaps);
-
-  if (ret) {
-    GST_DEBUG_OBJECT (mulawdec, "rate=%d, channels=%d", rate, channels);
-    mulawdec->info = info;
+  if (!structure) {
+    GST_ERROR ("failed to get structure from caps");
+    goto error_failed_get_structure;
   }
-  return ret;
-}
 
-static GstCaps *
-mulawdec_getcaps (GstPad * pad, GstCaps * filter)
-{
-  GstMuLawDec *mulawdec;
-  GstPad *otherpad;
-  GstCaps *othercaps, *result;
-  GstCaps *templ;
-  const gchar *name;
-  gint i;
-
-  mulawdec = GST_MULAWDEC (GST_PAD_PARENT (pad));
-
-  /* figure out the name of the caps we are going to return */
-  if (pad == mulawdec->srcpad) {
-    name = "audio/x-raw";
-    otherpad = mulawdec->sinkpad;
-  } else {
-    name = "audio/x-mulaw";
-    otherpad = mulawdec->srcpad;
-  }
-  /* get caps from the peer, this can return NULL when there is no peer */
-  othercaps = gst_pad_peer_query_caps (otherpad, NULL);
-
-  /* get the template caps to make sure we return something acceptable */
-  templ = gst_pad_get_pad_template_caps (pad);
-
-  if (othercaps) {
-    /* there was a peer */
-    othercaps = gst_caps_make_writable (othercaps);
-
-    /* go through the caps and remove the fields we don't want */
-    for (i = 0; i < gst_caps_get_size (othercaps); i++) {
-      GstStructure *structure;
-
-      structure = gst_caps_get_structure (othercaps, i);
-
-      /* adjust the name */
-      gst_structure_set_name (structure, name);
-
-      if (pad == mulawdec->sinkpad) {
-        /* remove the fields we don't want */
-        gst_structure_remove_fields (structure, "format", "layout", NULL);
-      } else {
-        /* add fixed fields */
-        gst_structure_set (structure, "format", G_TYPE_STRING,
-            GST_AUDIO_NE (S16), "layout", G_TYPE_STRING, "interleaved", NULL);
-      }
-    }
-    /* filter against the allowed caps of the pad to return our result */
-    result = gst_caps_intersect (othercaps, templ);
-    gst_caps_unref (othercaps);
-    gst_caps_unref (templ);
-  } else {
-    /* there was no peer, return the template caps */
-    result = templ;
+  if (!gst_structure_get_int (structure, "rate", &rate)) {
+    GST_ERROR ("failed to find field rate in input caps");
+    goto error_failed_find_rate;
   }
-  if (filter && result) {
-    GstCaps *temp;
 
-    temp = gst_caps_intersect (result, filter);
-    gst_caps_unref (result);
-    result = temp;
+  if (!gst_structure_get_int (structure, "channels", &channels)) {
+    GST_ERROR ("failed to find field channels in input caps");
+    goto error_failed_find_channel;
   }
-  return result;
-}
 
-static gboolean
-gst_mulawdec_query (GstPad * pad, GstObject * parent, GstQuery * query)
-{
-  gboolean res;
-
-  switch (GST_QUERY_TYPE (query)) {
-    case GST_QUERY_CAPS:
-    {
-      GstCaps *filter, *caps;
-
-      gst_query_parse_caps (query, &filter);
-      caps = mulawdec_getcaps (pad, filter);
-      gst_query_set_caps_result (query, caps);
-      gst_caps_unref (caps);
-
-      res = TRUE;
-      break;
-    }
-    default:
-      res = gst_pad_query_default (pad, parent, query);
-      break;
-  }
-  return res;
-}
-
-static void
-gst_mulawdec_class_init (GstMuLawDecClass * klass)
-{
-  GstElementClass *element_class = (GstElementClass *) klass;
-
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&mulaw_dec_src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&mulaw_dec_sink_factory));
-
-  gst_element_class_set_static_metadata (element_class, "Mu Law audio decoder",
-      "Codec/Decoder/Audio",
-      "Convert 8bit mu law to 16bit PCM",
-      "Zaheer Abbas Merali <zaheerabbas at merali dot org>");
+  gst_audio_info_init (&info);
+  gst_audio_info_set_format (&info, GST_AUDIO_FORMAT_S16, rate, channels, NULL);
 
-  element_class->change_state = GST_DEBUG_FUNCPTR (gst_mulawdec_change_state);
-}
+  GST_DEBUG_OBJECT (mulawdec, "rate=%d, channels=%d", rate, channels);
 
-static void
-gst_mulawdec_init (GstMuLawDec * mulawdec)
-{
-  mulawdec->sinkpad =
-      gst_pad_new_from_static_template (&mulaw_dec_sink_factory, "sink");
-  gst_pad_set_query_function (mulawdec->sinkpad, gst_mulawdec_query);
-  gst_pad_set_event_function (mulawdec->sinkpad, gst_mulawdec_event);
-  gst_pad_set_chain_function (mulawdec->sinkpad, gst_mulawdec_chain);
-  gst_element_add_pad (GST_ELEMENT (mulawdec), mulawdec->sinkpad);
-
-  mulawdec->srcpad =
-      gst_pad_new_from_static_template (&mulaw_dec_src_factory, "src");
-  gst_pad_set_query_function (mulawdec->srcpad, gst_mulawdec_query);
-  gst_element_add_pad (GST_ELEMENT (mulawdec), mulawdec->srcpad);
-}
+  return gst_audio_decoder_set_output_format (dec, &info);
 
-static gboolean
-gst_mulawdec_event (GstPad * pad, GstObject * parent, GstEvent * event)
-{
-  GstMuLawDec *mulawdec;
-  gboolean res;
-
-  mulawdec = GST_MULAWDEC (parent);
-
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_CAPS:
-    {
-      GstCaps *caps;
-
-      gst_event_parse_caps (event, &caps);
-      mulawdec_setcaps (mulawdec, caps);
-      gst_event_unref (event);
-
-      res = TRUE;
-      break;
-    }
-    default:
-      res = gst_pad_event_default (pad, parent, event);
-      break;
-  }
-  return res;
+error_failed_find_channel:
+error_failed_find_rate:
+error_failed_get_structure:
+  return FALSE;
 }
 
 static GstFlowReturn
-gst_mulawdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
+gst_mulawdec_handle_frame (GstAudioDecoder * dec, GstBuffer * buffer)
 {
-  GstMuLawDec *mulawdec;
   GstMapInfo inmap, outmap;
   gint16 *linear_data;
   guint8 *mulaw_data;
   gsize mulaw_size, linear_size;
   GstBuffer *outbuf;
-  GstFlowReturn ret;
 
-  mulawdec = GST_MULAWDEC (parent);
+  if (!buffer) {
+    return GST_FLOW_OK;
+  }
 
-  if (G_UNLIKELY (!GST_AUDIO_INFO_IS_VALID (&mulawdec->info)))
-    goto not_negotiated;
+  if (!gst_buffer_map (buffer, &inmap, GST_MAP_READ)) {
+    GST_ERROR ("failed to map input buffer");
+    goto error_failed_map_input_buffer;
+  }
 
-  gst_buffer_map (buffer, &inmap, GST_MAP_READ);
   mulaw_data = inmap.data;
   mulaw_size = inmap.size;
 
   linear_size = mulaw_size * 2;
 
-  outbuf = gst_buffer_new_allocate (NULL, linear_size, NULL);
-  gst_buffer_map (outbuf, &outmap, GST_MAP_WRITE);
-  linear_data = (gint16 *) outmap.data;
-
-  /* copy discont flag */
-  if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT))
-    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
-
-  GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (buffer);
-  if (GST_BUFFER_DURATION_IS_VALID (buffer)) {
-    GST_BUFFER_DURATION (outbuf) = GST_BUFFER_DURATION (buffer);
-  } else {
-    GST_BUFFER_DURATION (outbuf) = gst_util_uint64_scale_int (GST_SECOND,
-        linear_size, GST_AUDIO_INFO_RATE (&mulawdec->info) *
-        GST_AUDIO_INFO_BPF (&mulawdec->info));
+  outbuf = gst_audio_decoder_allocate_output_buffer (dec, linear_size);
+  if (!gst_buffer_map (outbuf, &outmap, GST_MAP_WRITE)) {
+    GST_ERROR ("failed to map input buffer");
+    goto error_failed_map_output_buffer;
   }
 
+  linear_data = (gint16 *) outmap.data;
+
   mulaw_decode (mulaw_data, linear_data, mulaw_size);
 
   gst_buffer_unmap (outbuf, &outmap);
   gst_buffer_unmap (buffer, &inmap);
-  gst_buffer_unref (buffer);
 
-  ret = gst_pad_push (mulawdec->srcpad, outbuf);
+  return gst_audio_decoder_finish_frame (dec, outbuf, -1);
 
-  return ret;
+error_failed_map_output_buffer:
+  gst_buffer_unref (outbuf);
 
-  /* ERRORS */
-not_negotiated:
-  {
-    GST_WARNING_OBJECT (mulawdec, "no input format set: not-negotiated");
-    gst_buffer_unref (buffer);
-    return GST_FLOW_NOT_NEGOTIATED;
-  }
+error_failed_map_input_buffer:
+  return GST_FLOW_ERROR;
 }
 
-static GstStateChangeReturn
-gst_mulawdec_change_state (GstElement * element, GstStateChange transition)
+static void
+gst_mulawdec_class_init (GstMuLawDecClass * klass)
 {
-  GstStateChangeReturn ret;
-  GstMuLawDec *dec = GST_MULAWDEC (element);
+  GstElementClass *element_class = (GstElementClass *) klass;
+  GstAudioDecoderClass *audiodec_class = GST_AUDIO_DECODER_CLASS (klass);
 
-  switch (transition) {
-    default:
-      break;
-  }
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&mulaw_dec_src_factory));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&mulaw_dec_sink_factory));
 
-  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
-  if (ret != GST_STATE_CHANGE_SUCCESS)
-    return ret;
 
-  switch (transition) {
-    case GST_STATE_CHANGE_PAUSED_TO_READY:
-      gst_audio_info_init (&dec->info);
-      break;
-    default:
-      break;
-  }
+  audiodec_class->set_format = GST_DEBUG_FUNCPTR (gst_mulawdec_set_format);
+  audiodec_class->handle_frame = GST_DEBUG_FUNCPTR (gst_mulawdec_handle_frame);
 
-  return ret;
+  gst_element_class_set_static_metadata (element_class, "Mu Law audio decoder",
+      "Codec/Decoder/Audio",
+      "Convert 8bit mu law to 16bit PCM",
+      "Zaheer Abbas Merali <zaheerabbas at merali dot org>");
+}
+
+static void
+gst_mulawdec_init (GstMuLawDec * mulawdec)
+{
 }
diff --git a/gst/law/mulaw-decode.h b/gst/law/mulaw-decode.h
index 03f0c1569..bed62fa09 100644
--- a/gst/law/mulaw-decode.h
+++ b/gst/law/mulaw-decode.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_MULAWDECODE_H__
@@ -22,9 +22,9 @@
 
 #include <gst/gst.h>
 #include <gst/audio/audio.h>
+#include <gst/audio/gstaudiodecoder.h>
 
 G_BEGIN_DECLS
-
 #define GST_TYPE_MULAWDEC \
   (gst_mulawdec_get_type())
 #define GST_MULAWDEC(obj) \
@@ -35,24 +35,20 @@ G_BEGIN_DECLS
   (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MULAWDEC))
 #define GST_IS_MULAWDEC_CLASS(klass) \
   (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MULAWDEC))
-
 typedef struct _GstMuLawDec GstMuLawDec;
 typedef struct _GstMuLawDecClass GstMuLawDecClass;
 
-struct _GstMuLawDec {
-  GstElement element;
-
-  GstPad *sinkpad,*srcpad;
-
-  GstAudioInfo info;
+struct _GstMuLawDec
+{
+  GstAudioDecoder element;
 };
 
-struct _GstMuLawDecClass {
-  GstElementClass parent_class;
+struct _GstMuLawDecClass
+{
+  GstAudioDecoderClass parent_class;
 };
 
-GType gst_mulawdec_get_type(void);
+GType gst_mulawdec_get_type (void);
 
 G_END_DECLS
-
 #endif /* __GST_STEREO_H__ */
diff --git a/gst/law/mulaw-encode.c b/gst/law/mulaw-encode.c
index b244c21c7..ed943af52 100644
--- a/gst/law/mulaw-encode.c
+++ b/gst/law/mulaw-encode.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-mulawenc
@@ -46,199 +46,88 @@ enum
   ARG_0
 };
 
-static gboolean gst_mulawenc_event (GstPad * pad, GstObject * parent,
-    GstEvent * event);
-static GstFlowReturn gst_mulawenc_chain (GstPad * pad, GstObject * parent,
+static gboolean gst_mulawenc_start (GstAudioEncoder * audioenc);
+static gboolean gst_mulawenc_set_format (GstAudioEncoder * enc,
+    GstAudioInfo * info);
+static GstFlowReturn gst_mulawenc_handle_frame (GstAudioEncoder * enc,
     GstBuffer * buffer);
+static void gst_mulawenc_set_tags (GstMuLawEnc * mulawenc);
+
 
 #define gst_mulawenc_parent_class parent_class
-G_DEFINE_TYPE (GstMuLawEnc, gst_mulawenc, GST_TYPE_ELEMENT);
+G_DEFINE_TYPE (GstMuLawEnc, gst_mulawenc, GST_TYPE_AUDIO_ENCODER);
 
 /*static guint gst_stereo_signals[LAST_SIGNAL] = { 0 }; */
 
-static GstCaps *
-mulawenc_getcaps (GstPad * pad, GstCaps * filter)
+static gboolean
+gst_mulawenc_start (GstAudioEncoder * audioenc)
 {
-  GstMuLawEnc *mulawenc;
-  GstPad *otherpad;
-  GstCaps *othercaps, *result;
-  GstCaps *templ;
-  const gchar *name;
-  gint i;
-
-  mulawenc = GST_MULAWENC (GST_PAD_PARENT (pad));
-
-  /* figure out the name of the caps we are going to return */
-  if (pad == mulawenc->srcpad) {
-    name = "audio/x-mulaw";
-    otherpad = mulawenc->sinkpad;
-  } else {
-    name = "audio/x-raw";
-    otherpad = mulawenc->srcpad;
-  }
-  /* get caps from the peer, this can return NULL when there is no peer */
-  othercaps = gst_pad_peer_query_caps (otherpad, NULL);
-
-  /* get the template caps to make sure we return something acceptable */
-  templ = gst_pad_get_pad_template_caps (pad);
-
-  if (othercaps) {
-    /* there was a peer */
-    othercaps = gst_caps_make_writable (othercaps);
-
-    /* go through the caps and remove the fields we don't want */
-    for (i = 0; i < gst_caps_get_size (othercaps); i++) {
-      GstStructure *structure;
-
-      structure = gst_caps_get_structure (othercaps, i);
-
-      /* adjust the name */
-      gst_structure_set_name (structure, name);
-
-      if (pad == mulawenc->srcpad) {
-        /* remove the fields we don't want */
-        gst_structure_remove_fields (structure, "format", NULL);
-      } else {
-        /* add fixed fields */
-        gst_structure_set (structure, "format", G_TYPE_STRING,
-            GST_AUDIO_NE (S16), NULL);
-      }
-    }
-    /* filter against the allowed caps of the pad to return our result */
-    result = gst_caps_intersect (othercaps, templ);
-    gst_caps_unref (othercaps);
-    gst_caps_unref (templ);
-  } else {
-    /* there was no peer, return the template caps */
-    result = templ;
-  }
-  if (filter && result) {
-    GstCaps *temp;
+  GstMuLawEnc *mulawenc = GST_MULAWENC (audioenc);
 
-    temp = gst_caps_intersect (result, filter);
-    gst_caps_unref (result);
-    result = temp;
-  }
+  mulawenc->channels = 0;
+  mulawenc->rate = 0;
 
-  return result;
+  return TRUE;
 }
 
-static gboolean
-gst_mulawenc_query (GstPad * pad, GstObject * parent, GstQuery * query)
+
+static void
+gst_mulawenc_set_tags (GstMuLawEnc * mulawenc)
 {
-  gboolean res;
-
-  switch (GST_QUERY_TYPE (query)) {
-    case GST_QUERY_CAPS:
-    {
-      GstCaps *filter, *caps;
-
-      gst_query_parse_caps (query, &filter);
-      caps = mulawenc_getcaps (pad, filter);
-      gst_query_set_caps_result (query, caps);
-      gst_caps_unref (caps);
-
-      res = TRUE;
-      break;
-    }
-    default:
-      res = gst_pad_query_default (pad, parent, query);
-      break;
-  }
-  return res;
+  GstTagList *taglist;
+  guint bitrate;
+
+  /* bitrate of mulaw is 8 bits/sample * sample rate * number of channels */
+  bitrate = 8 * mulawenc->rate * mulawenc->channels;
+
+  taglist = gst_tag_list_new_empty ();
+  gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE,
+      GST_TAG_MAXIMUM_BITRATE, bitrate, NULL);
+  gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE,
+      GST_TAG_MINIMUM_BITRATE, bitrate, NULL);
+  gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE,
+      GST_TAG_BITRATE, bitrate, NULL);
+
+  gst_audio_encoder_merge_tags (GST_AUDIO_ENCODER (mulawenc),
+      taglist, GST_TAG_MERGE_REPLACE);
+
+  gst_tag_list_unref (taglist);
 }
 
 
 static gboolean
-mulawenc_setcaps (GstMuLawEnc * mulawenc, GstCaps * caps)
+gst_mulawenc_set_format (GstAudioEncoder * audioenc, GstAudioInfo * info)
 {
-  GstStructure *structure;
   GstCaps *base_caps;
+  GstStructure *structure;
+  GstMuLawEnc *mulawenc = GST_MULAWENC (audioenc);
+  gboolean ret;
 
-  structure = gst_caps_get_structure (caps, 0);
-  gst_structure_get_int (structure, "channels", &mulawenc->channels);
-  gst_structure_get_int (structure, "rate", &mulawenc->rate);
+  mulawenc->rate = info->rate;
+  mulawenc->channels = info->channels;
 
-  base_caps = gst_pad_get_pad_template_caps (mulawenc->srcpad);
+  base_caps =
+      gst_pad_get_pad_template_caps (GST_AUDIO_ENCODER_SRC_PAD (audioenc));
+  g_assert (base_caps);
   base_caps = gst_caps_make_writable (base_caps);
+  g_assert (base_caps);
 
   structure = gst_caps_get_structure (base_caps, 0);
+  g_assert (structure);
   gst_structure_set (structure, "rate", G_TYPE_INT, mulawenc->rate, NULL);
   gst_structure_set (structure, "channels", G_TYPE_INT, mulawenc->channels,
       NULL);
 
-  gst_pad_set_caps (mulawenc->srcpad, base_caps);
+  gst_mulawenc_set_tags (mulawenc);
 
+  ret = gst_audio_encoder_set_output_format (audioenc, base_caps);
   gst_caps_unref (base_caps);
 
-  return TRUE;
-}
-
-static void
-gst_mulawenc_class_init (GstMuLawEncClass * klass)
-{
-  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
-
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&mulaw_enc_src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&mulaw_enc_sink_factory));
-
-  gst_element_class_set_static_metadata (element_class, "Mu Law audio encoder",
-      "Codec/Encoder/Audio",
-      "Convert 16bit PCM to 8bit mu law",
-      "Zaheer Abbas Merali <zaheerabbas at merali dot org>");
-}
-
-static void
-gst_mulawenc_init (GstMuLawEnc * mulawenc)
-{
-  mulawenc->sinkpad =
-      gst_pad_new_from_static_template (&mulaw_enc_sink_factory, "sink");
-  gst_pad_set_query_function (mulawenc->sinkpad, gst_mulawenc_query);
-  gst_pad_set_event_function (mulawenc->sinkpad, gst_mulawenc_event);
-  gst_pad_set_chain_function (mulawenc->sinkpad, gst_mulawenc_chain);
-  gst_element_add_pad (GST_ELEMENT (mulawenc), mulawenc->sinkpad);
-
-  mulawenc->srcpad =
-      gst_pad_new_from_static_template (&mulaw_enc_src_factory, "src");
-  gst_pad_set_query_function (mulawenc->srcpad, gst_mulawenc_query);
-  gst_element_add_pad (GST_ELEMENT (mulawenc), mulawenc->srcpad);
-
-  /* init rest */
-  mulawenc->channels = 0;
-  mulawenc->rate = 0;
-}
-
-static gboolean
-gst_mulawenc_event (GstPad * pad, GstObject * parent, GstEvent * event)
-{
-  GstMuLawEnc *mulawenc;
-  gboolean res;
-
-  mulawenc = GST_MULAWENC (parent);
-
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_CAPS:
-    {
-      GstCaps *caps;
-
-      gst_event_parse_caps (event, &caps);
-      mulawenc_setcaps (mulawenc, caps);
-      gst_event_unref (event);
-
-      res = TRUE;
-      break;
-    }
-    default:
-      res = gst_pad_event_default (pad, parent, event);
-      break;
-  }
-  return res;
+  return ret;
 }
 
 static GstFlowReturn
-gst_mulawenc_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
+gst_mulawenc_handle_frame (GstAudioEncoder * audioenc, GstBuffer * buffer)
 {
   GstMuLawEnc *mulawenc;
   GstMapInfo inmap, outmap;
@@ -248,9 +137,13 @@ gst_mulawenc_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
   guint mulaw_size;
   GstBuffer *outbuf;
   GstFlowReturn ret;
-  GstClockTime timestamp, duration;
 
-  mulawenc = GST_MULAWENC (parent);
+  if (!buffer) {
+    ret = GST_FLOW_OK;
+    goto done;
+  }
+
+  mulawenc = GST_MULAWENC (audioenc);
 
   if (!mulawenc->rate || !mulawenc->channels)
     goto not_negotiated;
@@ -261,33 +154,19 @@ gst_mulawenc_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 
   mulaw_size = linear_size / 2;
 
-  timestamp = GST_BUFFER_TIMESTAMP (buffer);
-  duration = GST_BUFFER_DURATION (buffer);
+  outbuf = gst_audio_encoder_allocate_output_buffer (audioenc, mulaw_size);
 
-  outbuf = gst_buffer_new_allocate (NULL, mulaw_size, NULL);
-
-  if (duration == -1) {
-    duration = gst_util_uint64_scale_int (mulaw_size,
-        GST_SECOND, mulawenc->rate * mulawenc->channels);
-  }
+  g_assert (outbuf);
 
   gst_buffer_map (outbuf, &outmap, GST_MAP_WRITE);
   mulaw_data = outmap.data;
 
-  /* copy discont flag */
-  if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT))
-    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
-
-  GST_BUFFER_TIMESTAMP (outbuf) = timestamp;
-  GST_BUFFER_DURATION (outbuf) = duration;
-
   mulaw_encode (linear_data, mulaw_data, mulaw_size);
 
   gst_buffer_unmap (outbuf, &outmap);
   gst_buffer_unmap (buffer, &inmap);
-  gst_buffer_unref (buffer);
 
-  ret = gst_pad_push (mulawenc->srcpad, outbuf);
+  ret = gst_audio_encoder_finish_frame (audioenc, outbuf, -1);
 
 done:
 
@@ -297,7 +176,36 @@ not_negotiated:
   {
     GST_DEBUG_OBJECT (mulawenc, "no format negotiated");
     ret = GST_FLOW_NOT_NEGOTIATED;
-    gst_buffer_unref (buffer);
     goto done;
   }
 }
+
+
+
+static void
+gst_mulawenc_class_init (GstMuLawEncClass * klass)
+{
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+  GstAudioEncoderClass *audio_encoder_class = GST_AUDIO_ENCODER_CLASS (klass);
+
+  audio_encoder_class->start = GST_DEBUG_FUNCPTR (gst_mulawenc_start);
+  audio_encoder_class->set_format = GST_DEBUG_FUNCPTR (gst_mulawenc_set_format);
+  audio_encoder_class->handle_frame =
+      GST_DEBUG_FUNCPTR (gst_mulawenc_handle_frame);
+
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&mulaw_enc_src_factory));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&mulaw_enc_sink_factory));
+
+  gst_element_class_set_static_metadata (element_class, "Mu Law audio encoder",
+      "Codec/Encoder/Audio",
+      "Convert 16bit PCM to 8bit mu law",
+      "Zaheer Abbas Merali <zaheerabbas at merali dot org>");
+}
+
+static void
+gst_mulawenc_init (GstMuLawEnc * mulawenc)
+{
+
+}
diff --git a/gst/law/mulaw-encode.h b/gst/law/mulaw-encode.h
index f428c3c50..c5ade39c1 100644
--- a/gst/law/mulaw-encode.h
+++ b/gst/law/mulaw-encode.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -22,9 +22,9 @@
 #define __GST_MULAWENCODE_H__
 
 #include <gst/gst.h>
+#include <gst/audio/gstaudioencoder.h>
 
 G_BEGIN_DECLS
-
 #define GST_TYPE_MULAWENC \
   (gst_mulawenc_get_type())
 #define GST_MULAWENC(obj) \
@@ -35,25 +35,23 @@ G_BEGIN_DECLS
   (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MULAWENC))
 #define GST_IS_MULAWENC_CLASS(klass) \
   (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MULAWENC))
-
 typedef struct _GstMuLawEnc GstMuLawEnc;
 typedef struct _GstMuLawEncClass GstMuLawEncClass;
 
-struct _GstMuLawEnc {
-  GstElement element;
-
-  GstPad *sinkpad,*srcpad;
+struct _GstMuLawEnc
+{
+  GstAudioEncoder element;
 
   gint channels;
   gint rate;
 };
 
-struct _GstMuLawEncClass {
-  GstElementClass parent_class;
+struct _GstMuLawEncClass
+{
+  GstAudioEncoderClass parent_class;
 };
 
-GType gst_mulawenc_get_type(void);
+GType gst_mulawenc_get_type (void);
 
 G_END_DECLS
-
 #endif /* __GST_STEREO_H__ */
diff --git a/gst/law/mulaw.c b/gst/law/mulaw.c
index ad143be48..a2e614df7 100644
--- a/gst/law/mulaw.c
+++ b/gst/law/mulaw.c
@@ -12,8 +12,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/level/Makefile.in b/gst/level/Makefile.in
index bba87359b..ffff66f00 100644
--- a/gst/level/Makefile.in
+++ b/gst/level/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/level
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -135,10 +161,23 @@ libgstlevel_la_OBJECTS = $(am_libgstlevel_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstlevel_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstlevel_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstlevel_la_CFLAGS) $(CFLAGS) \
 	$(libgstlevel_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstlevel_la_SOURCES)
 DIST_SOURCES = $(libgstlevel_la_SOURCES)
 am__can_run_installinfo = \
@@ -173,6 +208,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -341,6 +393,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -542,6 +595,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -568,12 +622,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstlevel.la: $(libgstlevel_la_OBJECTS) $(libgstlevel_la_DEPENDENCIES) $(EXTRA_libgstlevel_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstlevel_la_LINK) -rpath $(plugindir) $(libgstlevel_la_OBJECTS) $(libgstlevel_la_LIBADD) $(LIBS)
 
@@ -619,26 +676,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -650,15 +696,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -667,6 +709,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -811,19 +868,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/level/gstlevel.c b/gst/level/gstlevel.c
index 19e02bcee..59943d488 100644
--- a/gst/level/gstlevel.c
+++ b/gst/level/gstlevel.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -146,8 +146,9 @@ GST_STATIC_PAD_TEMPLATE ("src",
 enum
 {
   PROP_0,
-  PROP_SIGNAL_LEVEL,
-  PROP_SIGNAL_INTERVAL,
+  PROP_POST_MESSAGES,
+  PROP_MESSAGE,
+  PROP_INTERVAL,
   PROP_PEAK_TTL,
   PROP_PEAK_FALLOFF
 };
@@ -182,11 +183,30 @@ gst_level_class_init (GstLevelClass * klass)
   gobject_class->get_property = gst_level_get_property;
   gobject_class->finalize = gst_level_finalize;
 
-  g_object_class_install_property (gobject_class, PROP_SIGNAL_LEVEL,
+  /**
+   * GstLevel:post-messages
+   *
+   * Post messages on the bus with level information.
+   *
+   * Since: 1.1.0
+   */
+  g_object_class_install_property (gobject_class, PROP_POST_MESSAGES,
+      g_param_spec_boolean ("post-messages", "Post Messages",
+          "Whether to post a 'level' element message on the bus for each "
+          "passed interval", TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /* FIXME(2.0): remove this property */
+  /**
+   * GstLevel:post-messages
+   *
+   * Post messages on the bus with level information.
+   *
+   * Deprecated: use the #GstLevel:post-messages property
+   */
+  g_object_class_install_property (gobject_class, PROP_MESSAGE,
       g_param_spec_boolean ("message", "message",
-          "Post a level message for each passed interval",
+          "Post a 'level' message for each passed interval (deprecated)",
           TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-  g_object_class_install_property (gobject_class, PROP_SIGNAL_INTERVAL,
+  g_object_class_install_property (gobject_class, PROP_INTERVAL,
       g_param_spec_uint64 ("interval", "Interval",
           "Interval of time between message posts (in nanoseconds)",
           1, G_MAXUINT64, GST_SECOND / 10,
@@ -224,6 +244,10 @@ gst_level_init (GstLevel * filter)
 {
   filter->CS = NULL;
   filter->peak = NULL;
+  filter->last_peak = NULL;
+  filter->decay_peak = NULL;
+  filter->decay_peak_base = NULL;
+  filter->decay_peak_age = NULL;
 
   gst_audio_info_init (&filter->info);
 
@@ -231,7 +255,7 @@ gst_level_init (GstLevel * filter)
   filter->decay_peak_ttl = GST_SECOND / 10 * 3;
   filter->decay_peak_falloff = 10.0;    /* dB falloff (/sec) */
 
-  filter->message = TRUE;
+  filter->post_messages = TRUE;
 
   filter->process = NULL;
 
@@ -267,10 +291,12 @@ gst_level_set_property (GObject * object, guint prop_id,
   GstLevel *filter = GST_LEVEL (object);
 
   switch (prop_id) {
-    case PROP_SIGNAL_LEVEL:
-      filter->message = g_value_get_boolean (value);
+    case PROP_POST_MESSAGES:
+      /* fall-through */
+    case PROP_MESSAGE:
+      filter->post_messages = g_value_get_boolean (value);
       break;
-    case PROP_SIGNAL_INTERVAL:
+    case PROP_INTERVAL:
       filter->interval = g_value_get_uint64 (value);
       if (GST_AUDIO_INFO_RATE (&filter->info)) {
         filter->interval_frames =
@@ -298,10 +324,12 @@ gst_level_get_property (GObject * object, guint prop_id,
   GstLevel *filter = GST_LEVEL (object);
 
   switch (prop_id) {
-    case PROP_SIGNAL_LEVEL:
-      g_value_set_boolean (value, filter->message);
+    case PROP_POST_MESSAGES:
+      /* fall-through */
+    case PROP_MESSAGE:
+      g_value_set_boolean (value, filter->post_messages);
       break;
-    case PROP_SIGNAL_INTERVAL:
+    case PROP_INTERVAL:
       g_value_set_uint64 (value, filter->interval);
       break;
     case PROP_PEAK_TTL:
@@ -326,11 +354,11 @@ gst_level_get_property (GObject * object, guint prop_id,
  *
  * caller must assure num is a multiple of channels
  * samples for multiple channels are interleaved
- * input sample data enters in *in_data as 8 or 16 bit data
+ * input sample data enters in *in_data and is not modified
  * this filter only accepts signed audio data, so mid level is always 0
  *
- * for 16 bit, this code considers the non-existant 32768 value to be
- * full-scale; so 32767 will not map to 1.0
+ * for integers, this code considers the non-existant positive max value to be
+ * full-scale; so max-1 will not map to 1.0
  */
 
 #define DEFINE_INT_LEVEL_CALCULATOR(TYPE, RESOLUTION)                         \
@@ -340,23 +368,21 @@ gst_level_calculate_##TYPE (gpointer data, guint num, guint channels,         \
 {                                                                             \
   TYPE * in = (TYPE *)data;                                                   \
   register guint j;                                                           \
-  gdouble squaresum = 0.0;           /* square sum of the integer samples */  \
+  gdouble squaresum = 0.0;           /* square sum of the input samples */    \
   register gdouble square = 0.0;     /* Square */                             \
   register gdouble peaksquare = 0.0; /* Peak Square Sample */                 \
-  gdouble normalizer;               /* divisor to get a [-1.0, 1.0] range */  \
+  gdouble normalizer;                /* divisor to get a [-1.0, 1.0] range */ \
                                                                               \
   /* *NCS = 0.0; Normalized Cumulative Square */                              \
-  /* *NPS = 0.0; Normalized Peask Square */                                   \
+  /* *NPS = 0.0; Normalized Peak Square */                                    \
                                                                               \
-  normalizer = (gdouble) (G_GINT64_CONSTANT(1) << (RESOLUTION * 2));          \
-                                                                              \
-  for (j = 0; j < num; j += channels)                                         \
-  {                                                                           \
+  for (j = 0; j < num; j += channels) {                                       \
     square = ((gdouble) in[j]) * in[j];                                       \
     if (square > peaksquare) peaksquare = square;                             \
     squaresum += square;                                                      \
   }                                                                           \
                                                                               \
+  normalizer = (gdouble) (G_GINT64_CONSTANT(1) << (RESOLUTION * 2));          \
   *NCS = squaresum / normalizer;                                              \
   *NPS = peaksquare / normalizer;                                             \
 }
@@ -373,16 +399,15 @@ gst_level_calculate_##TYPE (gpointer data, guint num, guint channels,         \
 {                                                                             \
   TYPE * in = (TYPE *)data;                                                   \
   register guint j;                                                           \
-  gdouble squaresum = 0.0;           /* square sum of the integer samples */  \
+  gdouble squaresum = 0.0;           /* square sum of the input samples */    \
   register gdouble square = 0.0;     /* Square */                             \
   register gdouble peaksquare = 0.0; /* Peak Square Sample */                 \
                                                                               \
   /* *NCS = 0.0; Normalized Cumulative Square */                              \
-  /* *NPS = 0.0; Normalized Peask Square */                                   \
+  /* *NPS = 0.0; Normalized Peak Square */                                    \
                                                                               \
   /* orc_level_squaresum_f64(&squaresum,in,num); */                           \
-  for (j = 0; j < num; j += channels)                                         \
-  {                                                                           \
+  for (j = 0; j < num; j += channels) {                                       \
     square = ((gdouble) in[j]) * in[j];                                       \
     if (square > peaksquare) peaksquare = square;                             \
     squaresum += square;                                                      \
@@ -474,6 +499,7 @@ gst_level_start (GstBaseTransform * trans)
   GstLevel *filter = GST_LEVEL (trans);
 
   filter->num_frames = 0;
+  filter->message_ts = GST_CLOCK_TIME_NONE;
 
   return TRUE;
 }
@@ -556,9 +582,11 @@ gst_level_transform_ip (GstBaseTransform * trans, GstBuffer * in)
   gsize in_size;
   gdouble CS;
   guint i;
-  guint num_frames = 0;
+  guint num_frames;
   guint num_int_samples = 0;    /* number of interleaved samples
                                  * ie. total count for all channels combined */
+  guint block_size, block_int_size;     /* we subdivide buffers to not skip message
+                                         * intervals */
   GstClockTimeDiff falloff_time;
   gint channels, rate, bps;
 
@@ -579,75 +607,87 @@ gst_level_transform_ip (GstBaseTransform * trans, GstBuffer * in)
 
   g_return_val_if_fail (num_int_samples % channels == 0, GST_FLOW_ERROR);
 
+  if (GST_BUFFER_FLAG_IS_SET (in, GST_BUFFER_FLAG_DISCONT)) {
+    filter->message_ts = GST_BUFFER_TIMESTAMP (in);
+    filter->num_frames = 0;
+  }
+  if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (filter->message_ts))) {
+    filter->message_ts = GST_BUFFER_TIMESTAMP (in);
+  }
+
   num_frames = num_int_samples / channels;
+  while (num_frames > 0) {
+    block_size = filter->interval_frames - filter->num_frames;
+    block_size = MIN (block_size, num_frames);
+    block_int_size = block_size * channels;
 
-  for (i = 0; i < channels; ++i) {
-    if (!GST_BUFFER_FLAG_IS_SET (in, GST_BUFFER_FLAG_GAP)) {
-      filter->process (in_data, num_int_samples, channels, &CS,
-          &filter->peak[i]);
-      GST_LOG_OBJECT (filter,
-          "channel %d, cumulative sum %f, peak %f, over %d samples/%d channels",
-          i, CS, filter->peak[i], num_int_samples, channels);
-      filter->CS[i] += CS;
-    } else {
-      filter->peak[i] = 0.0;
-    }
-    in_data += bps;
-
-    filter->decay_peak_age[i] += GST_FRAMES_TO_CLOCK_TIME (num_frames, rate);
-    GST_LOG_OBJECT (filter, "filter peak info [%d]: decay peak %f, age %"
-        GST_TIME_FORMAT, i,
-        filter->decay_peak[i], GST_TIME_ARGS (filter->decay_peak_age[i]));
-
-    /* update running peak */
-    if (filter->peak[i] > filter->last_peak[i])
-      filter->last_peak[i] = filter->peak[i];
-
-    /* make decay peak fall off if too old */
-    falloff_time =
-        GST_CLOCK_DIFF (gst_gdouble_to_guint64 (filter->decay_peak_ttl),
-        filter->decay_peak_age[i]);
-    if (falloff_time > 0) {
-      gdouble falloff_dB;
-      gdouble falloff;
-      gdouble length;           /* length of falloff time in seconds */
-
-      length = (gdouble) falloff_time / (gdouble) GST_SECOND;
-      falloff_dB = filter->decay_peak_falloff * length;
-      falloff = pow (10, falloff_dB / -20.0);
+    for (i = 0; i < channels; ++i) {
+      if (!GST_BUFFER_FLAG_IS_SET (in, GST_BUFFER_FLAG_GAP)) {
+        filter->process (in_data, block_int_size, channels, &CS,
+            &filter->peak[i]);
+        GST_LOG_OBJECT (filter,
+            "[%d]: cumulative squares %lf, over %d samples/%d channels",
+            i, CS, block_int_size, channels);
+        filter->CS[i] += CS;
+      } else {
+        filter->peak[i] = 0.0;
+      }
+      in_data += bps;
 
+      filter->decay_peak_age[i] += GST_FRAMES_TO_CLOCK_TIME (num_frames, rate);
       GST_LOG_OBJECT (filter,
-          "falloff: current %f, base %f, interval %" GST_TIME_FORMAT
-          ", dB falloff %f, factor %e",
-          filter->decay_peak[i], filter->decay_peak_base[i],
-          GST_TIME_ARGS (falloff_time), falloff_dB, falloff);
-      filter->decay_peak[i] = filter->decay_peak_base[i] * falloff;
-      GST_LOG_OBJECT (filter,
-          "peak is %" GST_TIME_FORMAT " old, decayed with factor %e to %f",
-          GST_TIME_ARGS (filter->decay_peak_age[i]), falloff,
-          filter->decay_peak[i]);
-    } else {
-      GST_LOG_OBJECT (filter, "peak not old enough, not decaying");
-    }
+          "[%d]: peak %f, last peak %f, decay peak %f, age %" GST_TIME_FORMAT,
+          i, filter->peak[i], filter->last_peak[i], filter->decay_peak[i],
+          GST_TIME_ARGS (filter->decay_peak_age[i]));
+
+      /* update running peak */
+      if (filter->peak[i] > filter->last_peak[i])
+        filter->last_peak[i] = filter->peak[i];
+
+      /* make decay peak fall off if too old */
+      falloff_time =
+          GST_CLOCK_DIFF (gst_gdouble_to_guint64 (filter->decay_peak_ttl),
+          filter->decay_peak_age[i]);
+      if (falloff_time > 0) {
+        gdouble falloff_dB;
+        gdouble falloff;
+        gdouble length;         /* length of falloff time in seconds */
+
+        length = (gdouble) falloff_time / (gdouble) GST_SECOND;
+        falloff_dB = filter->decay_peak_falloff * length;
+        falloff = pow (10, falloff_dB / -20.0);
+
+        GST_LOG_OBJECT (filter,
+            "falloff: current %f, base %f, interval %" GST_TIME_FORMAT
+            ", dB falloff %f, factor %e",
+            filter->decay_peak[i], filter->decay_peak_base[i],
+            GST_TIME_ARGS (falloff_time), falloff_dB, falloff);
+        filter->decay_peak[i] = filter->decay_peak_base[i] * falloff;
+        GST_LOG_OBJECT (filter,
+            "peak is %" GST_TIME_FORMAT " old, decayed with factor %e to %f",
+            GST_TIME_ARGS (filter->decay_peak_age[i]), falloff,
+            filter->decay_peak[i]);
+      } else {
+        GST_LOG_OBJECT (filter, "peak not old enough, not decaying");
+      }
 
-    /* if the peak of this run is higher, the decay peak gets reset */
-    if (filter->peak[i] >= filter->decay_peak[i]) {
-      GST_LOG_OBJECT (filter, "new peak, %f", filter->peak[i]);
-      filter->decay_peak[i] = filter->peak[i];
-      filter->decay_peak_base[i] = filter->peak[i];
-      filter->decay_peak_age[i] = G_GINT64_CONSTANT (0);
+      /* if the peak of this run is higher, the decay peak gets reset */
+      if (filter->peak[i] >= filter->decay_peak[i]) {
+        GST_LOG_OBJECT (filter, "new peak, %f", filter->peak[i]);
+        filter->decay_peak[i] = filter->peak[i];
+        filter->decay_peak_base[i] = filter->peak[i];
+        filter->decay_peak_age[i] = G_GINT64_CONSTANT (0);
+      }
     }
-  }
+    in_data += ((block_int_size * bps) - bps);
 
-  if (G_UNLIKELY (!filter->num_frames)) {
-    /* remember start timestamp for message */
-    filter->message_ts = GST_BUFFER_TIMESTAMP (in);
-  }
-  filter->num_frames += num_frames;
+    filter->num_frames += block_size;
+    num_frames -= block_size;
 
-  /* do we need to message ? */
-  if (filter->num_frames >= filter->interval_frames) {
-    gst_level_post_message (filter);
+    /* do we need to message ? */
+    if (filter->num_frames >= filter->interval_frames) {
+      gst_level_post_message (filter);
+    }
   }
 
   gst_buffer_unmap (in, &map);
@@ -659,37 +699,36 @@ static void
 gst_level_post_message (GstLevel * filter)
 {
   guint i;
-  gint channels, rate;
+  gint channels, rate, frames = filter->num_frames;
+  GstClockTime duration;
 
   channels = GST_AUDIO_INFO_CHANNELS (&filter->info);
   rate = GST_AUDIO_INFO_RATE (&filter->info);
+  duration = GST_FRAMES_TO_CLOCK_TIME (frames, rate);
 
-
-  if (filter->message) {
-    GstMessage *m;
-    GstClockTime duration = GST_FRAMES_TO_CLOCK_TIME (filter->num_frames, rate);
-
-    m = gst_level_message_new (filter, filter->message_ts, duration);
+  if (filter->post_messages) {
+    GstMessage *m =
+        gst_level_message_new (filter, filter->message_ts, duration);
 
     GST_LOG_OBJECT (filter,
-        "message: ts %" GST_TIME_FORMAT ", num_frames %d",
-        GST_TIME_ARGS (filter->message_ts), filter->num_frames);
+        "message: ts %" GST_TIME_FORMAT ", duration %" GST_TIME_FORMAT
+        ", num_frames %d", GST_TIME_ARGS (filter->message_ts),
+        GST_TIME_ARGS (duration), frames);
 
     for (i = 0; i < channels; ++i) {
       gdouble RMS;
-      gdouble RMSdB, lastdB, decaydB;
+      gdouble RMSdB, peakdB, decaydB;
 
-      RMS = sqrt (filter->CS[i] / filter->num_frames);
+      RMS = sqrt (filter->CS[i] / frames);
       GST_LOG_OBJECT (filter,
-          "message: channel %d, CS %f, num_frames %d, RMS %f",
-          i, filter->CS[i], filter->num_frames, RMS);
+          "message: channel %d, CS %f, RMS %f", i, filter->CS[i], RMS);
       GST_LOG_OBJECT (filter,
           "message: last_peak: %f, decay_peak: %f",
           filter->last_peak[i], filter->decay_peak[i]);
       /* RMS values are calculated in amplitude, so 20 * log 10 */
       RMSdB = 20 * log10 (RMS + EPSILON);
       /* peak values are square sums, ie. power, so 10 * log 10 */
-      lastdB = 10 * log10 (filter->last_peak[i] + EPSILON);
+      peakdB = 10 * log10 (filter->last_peak[i] + EPSILON);
       decaydB = 10 * log10 (filter->decay_peak[i] + EPSILON);
 
       if (filter->decay_peak[i] < filter->last_peak[i]) {
@@ -697,14 +736,14 @@ gst_level_post_message (GstLevel * filter)
          * the last peak is between decay_peak and decay_peak_base */
         GST_DEBUG_OBJECT (filter,
             "message: decay peak dB %f smaller than last peak dB %f, copying",
-            decaydB, lastdB);
+            decaydB, peakdB);
         filter->decay_peak[i] = filter->last_peak[i];
       }
       GST_LOG_OBJECT (filter,
           "message: RMS %f dB, peak %f dB, decay %f dB",
-          RMSdB, lastdB, decaydB);
+          RMSdB, peakdB, decaydB);
 
-      gst_level_message_append_channel (m, RMSdB, lastdB, decaydB);
+      gst_level_message_append_channel (m, RMSdB, peakdB, decaydB);
 
       /* reset cumulative and normal peak */
       filter->CS[i] = 0.0;
@@ -712,8 +751,10 @@ gst_level_post_message (GstLevel * filter)
     }
 
     gst_element_post_message (GST_ELEMENT (filter), m);
+
   }
-  filter->num_frames = 0;
+  filter->num_frames -= frames;
+  filter->message_ts += duration;
 }
 
 
diff --git a/gst/level/gstlevel.h b/gst/level/gstlevel.h
index ae9ba3a94..e6d927ae6 100644
--- a/gst/level/gstlevel.h
+++ b/gst/level/gstlevel.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -56,13 +56,13 @@ typedef struct _GstLevelClass GstLevelClass;
 struct _GstLevel {
   GstBaseTransform element;
 
-  gboolean message;             /* whether or not to post messages */
-  guint64 interval;             /* how many seconds between emits */
+  /* properties */
+  gboolean post_messages;       /* whether or not to post messages */
+  guint64 interval;             /* how many nanoseconds between emits */
+  gdouble decay_peak_ttl;       /* time to live for peak in nanoseconds */
+  gdouble decay_peak_falloff;   /* falloff in dB/sec */
 
   GstAudioInfo info;
-
-  gdouble decay_peak_ttl;       /* time to live for peak in seconds */
-  gdouble decay_peak_falloff;   /* falloff in dB/sec */
   gint num_frames;              /* frame count (1 sample per channel)
                                  * since last emit */
   gint interval_frames;         /* after how many frame to sent a message */
@@ -74,8 +74,6 @@ struct _GstLevel {
   gdouble *last_peak;           /* last normalized Peak value over interval */
   gdouble *decay_peak;          /* running decaying normalized Peak */
   gdouble *decay_peak_base;     /* value of last peak we are decaying from */
-  gdouble *MS;                  /* normalized Mean Square of buffer */
-  gdouble *RMS_dB;              /* RMS in dB to emit */
   GstClockTime *decay_peak_age; /* age of last peak */
 
   void (*process)(gpointer, guint, guint, gdouble*, gdouble*);
diff --git a/gst/matroska/Makefile.in b/gst/matroska/Makefile.in
index e73a7859c..37d1f7e9c 100644
--- a/gst/matroska/Makefile.in
+++ b/gst/matroska/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/matroska
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -144,10 +170,23 @@ libgstmatroska_la_OBJECTS = $(am_libgstmatroska_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstmatroska_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstmatroska_la_CFLAGS) $(CFLAGS) \
 	$(libgstmatroska_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -160,20 +199,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstmatroska_la_SOURCES)
 DIST_SOURCES = $(libgstmatroska_la_SOURCES)
 am__can_run_installinfo = \
@@ -182,6 +217,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -350,6 +402,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -588,6 +641,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -614,12 +668,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstmatroska.la: $(libgstmatroska_la_OBJECTS) $(libgstmatroska_la_DEPENDENCIES) $(EXTRA_libgstmatroska_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstmatroska_la_LINK) -rpath $(plugindir) $(libgstmatroska_la_OBJECTS) $(libgstmatroska_la_LIBADD) $(LIBS)
 
@@ -737,26 +794,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -768,15 +814,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -785,6 +827,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -929,19 +986,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/matroska/ebml-ids.h b/gst/matroska/ebml-ids.h
index 14edf74fd..ef2e6cb5d 100644
--- a/gst/matroska/ebml-ids.h
+++ b/gst/matroska/ebml-ids.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_EBML_IDS_H__
diff --git a/gst/matroska/ebml-read.c b/gst/matroska/ebml-read.c
index 42a06fe82..af5b6369b 100644
--- a/gst/matroska/ebml-read.c
+++ b/gst/matroska/ebml-read.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/matroska/ebml-read.h b/gst/matroska/ebml-read.h
index b5c9aa208..ce894da7f 100644
--- a/gst/matroska/ebml-read.h
+++ b/gst/matroska/ebml-read.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_EBML_READ_H__
diff --git a/gst/matroska/ebml-write.c b/gst/matroska/ebml-write.c
index 0c7584e12..4596c2f20 100644
--- a/gst/matroska/ebml-write.c
+++ b/gst/matroska/ebml-write.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/matroska/ebml-write.h b/gst/matroska/ebml-write.h
index 4d0293d46..2dbe350f1 100644
--- a/gst/matroska/ebml-write.h
+++ b/gst/matroska/ebml-write.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_EBML_WRITE_H__
diff --git a/gst/matroska/lzo.c b/gst/matroska/lzo.c
index 995638f83..3c564bbdf 100644
--- a/gst/matroska/lzo.c
+++ b/gst/matroska/lzo.c
@@ -18,6 +18,9 @@
  * License along with FFmpeg; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <gst/gst.h>
 #include <stdlib.h>
diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
index f56ea05fa..334533768 100644
--- a/gst/matroska/matroska-demux.c
+++ b/gst/matroska/matroska-demux.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* TODO: check CRC32 if present
@@ -314,6 +314,9 @@ gst_matroska_track_free (GstMatroskaTrackContext * track)
   if (track->index_table)
     g_array_free (track->index_table, TRUE);
 
+  if (track->stream_headers)
+    gst_buffer_list_unref (track->stream_headers);
+
   g_free (track);
 }
 
@@ -522,18 +525,45 @@ gst_matroska_decode_buffer (GstMatroskaTrackContext * context, GstBuffer * buf)
   }
 }
 
+static void
+gst_matroska_demux_add_stream_headers_to_caps (GstMatroskaDemux * demux,
+    GstBufferList * list, GstCaps * caps)
+{
+  GstStructure *s;
+  GValue arr_val = G_VALUE_INIT;
+  GValue buf_val = G_VALUE_INIT;
+  gint i, num;
+
+  g_assert (gst_caps_is_writable (caps));
+
+  g_value_init (&arr_val, GST_TYPE_ARRAY);
+  g_value_init (&buf_val, GST_TYPE_BUFFER);
+
+  num = gst_buffer_list_length (list);
+  for (i = 0; i < num; ++i) {
+    g_value_set_boxed (&buf_val, gst_buffer_list_get (list, i));
+    gst_value_array_append_value (&arr_val, &buf_val);
+  }
+
+  s = gst_caps_get_structure (caps, 0);
+  gst_structure_take_value (s, "streamheader", &arr_val);
+  g_value_unset (&buf_val);
+}
+
 static GstFlowReturn
 gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
 {
   GstElementClass *klass = GST_ELEMENT_GET_CLASS (demux);
   GstMatroskaTrackContext *context;
   GstPadTemplate *templ = NULL;
+  GstStreamFlags stream_flags;
   GstCaps *caps = NULL;
   gchar *padname = NULL;
   GstFlowReturn ret;
   guint32 id, riff_fourcc = 0;
   guint16 riff_audio_fmt = 0;
   GstTagList *list = NULL;
+  GstEvent *stream_start;
   gchar *codec = NULL;
   gchar *stream_id;
 
@@ -1081,7 +1111,7 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
           context->flags &= ~GST_MATROSKA_TRACK_DEFAULT;
 
         GST_DEBUG_OBJECT (demux, "TrackDefault: %d",
-            (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0);
+            (context->flags & GST_MATROSKA_TRACK_DEFAULT) ? 1 : 0);
         break;
       }
 
@@ -1098,7 +1128,7 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
           context->flags &= ~GST_MATROSKA_TRACK_FORCED;
 
         GST_DEBUG_OBJECT (demux, "TrackForced: %d",
-            (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0);
+            (context->flags & GST_MATROSKA_TRACK_FORCED) ? 1 : 0);
         break;
       }
 
@@ -1116,7 +1146,7 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
           context->flags &= ~GST_MATROSKA_TRACK_LACING;
 
         GST_DEBUG_OBJECT (demux, "TrackLacing: %d",
-            (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0);
+            (context->flags & GST_MATROSKA_TRACK_LACING) ? 1 : 0);
         break;
       }
 
@@ -1316,6 +1346,9 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
       gst_caps_set_simple (caps, "fourcc", G_TYPE_STRING, fstr, NULL);
       g_free (fstr);
     }
+  } else if (context->stream_headers != NULL) {
+    gst_matroska_demux_add_stream_headers_to_caps (demux,
+        context->stream_headers, caps);
   }
 
   /* the pad in here */
@@ -1339,9 +1372,16 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
 
   stream_id =
       gst_pad_create_stream_id_printf (context->pad, GST_ELEMENT_CAST (demux),
-      "%u", context->uid);
-  gst_pad_push_event (context->pad, gst_event_new_stream_start (stream_id));
+      "%03u", context->uid);
+  stream_start = gst_event_new_stream_start (stream_id);
   g_free (stream_id);
+  stream_flags = GST_STREAM_FLAG_NONE;
+  if (context->type == GST_MATROSKA_TRACK_TYPE_SUBTITLE)
+    stream_flags |= GST_STREAM_FLAG_SPARSE;
+  if (context->flags & GST_MATROSKA_TRACK_DEFAULT)
+    stream_flags |= GST_STREAM_FLAG_SELECT;
+  gst_event_set_stream_flags (stream_start, stream_flags);
+  gst_pad_push_event (context->pad, stream_start);
   gst_pad_set_caps (context->pad, context->caps);
 
   gst_element_add_pad (GST_ELEMENT (demux), context->pad);
@@ -2556,161 +2596,38 @@ gst_matroska_demux_sync_streams (GstMatroskaDemux * demux)
 }
 
 static GstFlowReturn
-gst_matroska_demux_push_hdr_buf (GstMatroskaDemux * demux,
-    GstMatroskaTrackContext * stream, guint8 * data, guint len)
-{
-  GstFlowReturn ret, cret;
-  GstBuffer *header_buf;
-
-  header_buf = gst_buffer_new_wrapped (g_memdup (data, len), len);
-
-  if (stream->set_discont) {
-    GST_BUFFER_FLAG_SET (header_buf, GST_BUFFER_FLAG_DISCONT);
-    stream->set_discont = FALSE;
-  }
-
-  ret = gst_pad_push (stream->pad, header_buf);
-
-  /* combine flows */
-  cret = gst_matroska_demux_combine_flows (demux, stream, ret);
-
-  return cret;
-}
-
-static GstFlowReturn
-gst_matroska_demux_push_flac_codec_priv_data (GstMatroskaDemux * demux,
+gst_matroska_demux_push_stream_headers (GstMatroskaDemux * demux,
     GstMatroskaTrackContext * stream)
 {
-  GstFlowReturn ret;
-  guint8 *pdata;
-  guint off, len;
-
-  GST_LOG_OBJECT (demux, "priv data size = %" G_GSIZE_FORMAT,
-      stream->codec_priv_size);
-
-  pdata = (guint8 *) stream->codec_priv;
-
-  /* need at least 'fLaC' marker + STREAMINFO metadata block */
-  if (stream->codec_priv_size < ((4) + (4 + 34))) {
-    GST_WARNING_OBJECT (demux, "not enough codec priv data for flac headers");
-    return GST_FLOW_ERROR;
-  }
-
-  if (memcmp (pdata, "fLaC", 4) != 0) {
-    GST_WARNING_OBJECT (demux, "no flac marker at start of stream headers");
-    return GST_FLOW_ERROR;
-  }
-
-  ret = gst_matroska_demux_push_hdr_buf (demux, stream, pdata, 4);
-  if (ret != GST_FLOW_OK)
-    return ret;
-
-  off = 4;                      /* skip fLaC marker */
-  while (off < stream->codec_priv_size) {
-    len = GST_READ_UINT8 (pdata + off + 1) << 16;
-    len |= GST_READ_UINT8 (pdata + off + 2) << 8;
-    len |= GST_READ_UINT8 (pdata + off + 3);
-
-    GST_DEBUG_OBJECT (demux, "header packet: len=%u bytes, flags=0x%02x",
-        len, (guint) pdata[off]);
-
-    ret = gst_matroska_demux_push_hdr_buf (demux, stream, pdata + off, len + 4);
-    if (ret != GST_FLOW_OK)
-      return ret;
-
-    off += 4 + len;
-  }
-  return GST_FLOW_OK;
-}
-
-static GstFlowReturn
-gst_matroska_demux_push_speex_codec_priv_data (GstMatroskaDemux * demux,
-    GstMatroskaTrackContext * stream)
-{
-  GstFlowReturn ret;
-  guint8 *pdata = stream->codec_priv;
-
-  GST_LOG_OBJECT (demux, "priv data size = %" G_GSIZE_FORMAT,
-      stream->codec_priv_size);
+  GstFlowReturn ret = GST_FLOW_OK;
+  gint i, num;
 
-  /* need at least 'fLaC' marker + STREAMINFO metadata block */
-  if (stream->codec_priv_size < 80) {
-    GST_WARNING_OBJECT (demux, "not enough codec priv data for speex headers");
-    return GST_FLOW_ERROR;
-  }
+  num = gst_buffer_list_length (stream->stream_headers);
+  for (i = 0; i < num; ++i) {
+    GstBuffer *buf;
 
-  if (memcmp (pdata, "Speex   ", 8) != 0) {
-    GST_WARNING_OBJECT (demux, "no Speex marker at start of stream headers");
-    return GST_FLOW_ERROR;
-  }
+    buf = gst_buffer_list_get (stream->stream_headers, i);
+    buf = gst_buffer_copy (buf);
 
-  ret = gst_matroska_demux_push_hdr_buf (demux, stream, pdata, 80);
-  if (ret != GST_FLOW_OK)
-    return ret;
+    GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_HEADER);
 
-  if (stream->codec_priv_size == 80)
-    return ret;
-  else
-    return gst_matroska_demux_push_hdr_buf (demux, stream, pdata + 80,
-        stream->codec_priv_size - 80);
-}
-
-static GstFlowReturn
-gst_matroska_demux_push_xiph_codec_priv_data (GstMatroskaDemux * demux,
-    GstMatroskaTrackContext * stream)
-{
-  GstFlowReturn ret;
-  guint8 *p = stream->codec_priv;
-  gint i, offset, num_packets;
-  guint *length, last;
-
-  if (stream->codec_priv == NULL || stream->codec_priv_size == 0) {
-    GST_ELEMENT_ERROR (demux, STREAM, DEMUX, (NULL),
-        ("Missing codec private data for xiph headers, broken file"));
-    return GST_FLOW_ERROR;
-  }
-
-  /* start of the stream and vorbis audio or theora video, need to
-   * send the codec_priv data as first three packets */
-  num_packets = p[0] + 1;
-  GST_DEBUG_OBJECT (demux,
-      "%u stream headers, total length=%" G_GSIZE_FORMAT " bytes",
-      (guint) num_packets, stream->codec_priv_size);
-
-  length = g_alloca (num_packets * sizeof (guint));
-  last = 0;
-  offset = 1;
-
-  /* first packets, read length values */
-  for (i = 0; i < num_packets - 1; i++) {
-    length[i] = 0;
-    while (offset < stream->codec_priv_size) {
-      length[i] += p[offset];
-      if (p[offset++] != 0xff)
-        break;
+    if (stream->set_discont) {
+      GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
+      stream->set_discont = FALSE;
     }
-    last += length[i];
-  }
-  if (offset + last > stream->codec_priv_size)
-    return GST_FLOW_ERROR;
 
-  /* last packet is the remaining size */
-  length[i] = stream->codec_priv_size - offset - last;
+    /* push out all headers in one go and use last flow return */
+    ret = gst_pad_push (stream->pad, buf);
+  }
 
-  for (i = 0; i < num_packets; i++) {
-    GST_DEBUG_OBJECT (demux, "buffer %d: length=%u bytes", i,
-        (guint) length[i]);
-    if (offset + length[i] > stream->codec_priv_size)
-      return GST_FLOW_ERROR;
+  /* don't need these any  longer */
+  gst_buffer_list_unref (stream->stream_headers);
+  stream->stream_headers = NULL;
 
-    ret =
-        gst_matroska_demux_push_hdr_buf (demux, stream, p + offset, length[i]);
-    if (ret != GST_FLOW_OK)
-      return ret;
+  /* combine flows */
+  ret = gst_matroska_demux_combine_flows (demux, stream, ret);
 
-    offset += length[i];
-  }
-  return GST_FLOW_OK;
+  return ret;
 }
 
 static void
@@ -3033,8 +2950,9 @@ gst_matroska_demux_check_subtitle_buffer (GstElement * element,
     if (g_utf8_validate ((gchar *) map.data, map.size, NULL)) {
       goto next;
     }
-    GST_WARNING_OBJECT (element, "subtitle stream %d is not valid UTF-8, this "
-        "is broken according to the matroska specification", stream->num);
+    GST_WARNING_OBJECT (element, "subtitle stream %" G_GUINT64_FORMAT
+        " is not valid UTF-8, this is broken according to the matroska"
+        " specification", stream->num);
     sub_stream->invalid_utf8 = TRUE;
   }
 
@@ -3332,27 +3250,6 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux,
             break;
         }
 
-        if (stream->send_xiph_headers) {
-          ret = gst_matroska_demux_push_xiph_codec_priv_data (demux, stream);
-          stream->send_xiph_headers = FALSE;
-        }
-
-        if (stream->send_flac_headers) {
-          ret = gst_matroska_demux_push_flac_codec_priv_data (demux, stream);
-          stream->send_flac_headers = FALSE;
-        }
-
-        if (stream->send_speex_headers) {
-          ret = gst_matroska_demux_push_speex_codec_priv_data (demux, stream);
-          stream->send_speex_headers = FALSE;
-        }
-
-        if (stream->send_dvd_event) {
-          gst_matroska_demux_push_dvd_clut_change_event (demux, stream);
-          /* FIXME: should we send this event again after (flushing) seek ? */
-          stream->send_dvd_event = FALSE;
-        }
-
         if (ret != GST_FLOW_OK)
           break;
 
@@ -3433,9 +3330,10 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux,
     goto data_error;
 
   if (ret == GST_FLOW_OK && readblock) {
+    gboolean invisible_frame = FALSE;
+    gboolean delta_unit = FALSE;
     guint64 duration = 0;
     gint64 lace_time = 0;
-    gboolean delta_unit;
 
     stream = g_ptr_array_index (demux->common.src, stream_num);
 
@@ -3488,6 +3386,23 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux,
       demux->need_segment = FALSE;
     }
 
+    if (stream->send_stream_headers) {
+      if (stream->stream_headers != NULL) {
+        ret = gst_matroska_demux_push_stream_headers (demux, stream);
+      } else {
+        /* FIXME: perhaps we can just disable and skip this stream then */
+        GST_ELEMENT_ERROR (demux, STREAM, DECODE, (NULL),
+            ("Failed to extract stream headers from codec private data"));
+      }
+      stream->send_stream_headers = FALSE;
+    }
+
+    if (stream->send_dvd_event) {
+      gst_matroska_demux_push_dvd_clut_change_event (demux, stream);
+      /* FIXME: should we send this event again after (flushing) seek ? */
+      stream->send_dvd_event = FALSE;
+    }
+
     if (block_duration != -1) {
       if (stream->timecodescale == 1.0)
         duration = gst_util_uint64_scale (block_duration,
@@ -3505,8 +3420,14 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux,
     /* For SimpleBlock, look at the keyframe bit in flags. Otherwise,
        a ReferenceBlock implies that this is not a keyframe. In either
        case, it only makes sense for video streams. */
-    delta_unit = stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO &&
-        ((is_simpleblock && !(flags & 0x80)) || referenceblock);
+    if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO) {
+      if ((is_simpleblock && !(flags & 0x80)) || referenceblock) {
+        delta_unit = TRUE;
+        invisible_frame = ((flags & 0x08)) &&
+            (!strcmp (stream->codec_id, GST_MATROSKA_CODEC_ID_VIDEO_VP8) ||
+            !strcmp (stream->codec_id, GST_MATROSKA_CODEC_ID_VIDEO_VP9));
+      }
+    }
 
     if (delta_unit && stream->set_discont) {
       /* When doing seeks or such, we need to restart on key frames or
@@ -3571,6 +3492,9 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux,
       else
         GST_BUFFER_FLAG_UNSET (sub, GST_BUFFER_FLAG_DELTA_UNIT);
 
+      if (invisible_frame)
+        GST_BUFFER_FLAG_SET (sub, GST_BUFFER_FLAG_DECODE_ONLY);
+
       if (stream->encodings != NULL && stream->encodings->len > 0)
         sub = gst_matroska_decode_buffer (stream, sub);
 
@@ -4924,10 +4848,6 @@ gst_matroska_demux_video_caps (GstMatroskaTrackVideoContext *
   g_assert (videocontext != NULL);
   g_assert (codec_name != NULL);
 
-  context->send_xiph_headers = FALSE;
-  context->send_flac_headers = FALSE;
-  context->send_speex_headers = FALSE;
-
   if (riff_fourcc)
     *riff_fourcc = 0;
 
@@ -5043,6 +4963,8 @@ gst_matroska_demux_video_caps (GstMatroskaTrackVideoContext *
       priv = gst_buffer_new_wrapped (g_memdup (data, size), size);
       gst_caps_set_simple (caps, "codec_data", GST_TYPE_BUFFER, priv, NULL);
       gst_buffer_unref (priv);
+
+      gst_codec_utils_mpeg4video_caps_set_level_and_profile (caps, data, size);
     }
     if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_MPEG4_ASP))
       *codec_name = g_strdup ("MPEG-4 advanced simple profile");
@@ -5136,13 +5058,20 @@ gst_matroska_demux_video_caps (GstMatroskaTrackVideoContext *
     *codec_name = g_strdup_printf ("RealVideo %d.0", rmversion);
   } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_THEORA)) {
     caps = gst_caps_new_empty_simple ("video/x-theora");
-    context->send_xiph_headers = TRUE;
+    context->stream_headers =
+        gst_matroska_parse_xiph_stream_headers (context->codec_priv,
+        context->codec_priv_size);
+    /* FIXME: mark stream as broken and skip if there are no stream headers */
+    context->send_stream_headers = TRUE;
   } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_DIRAC)) {
     caps = gst_caps_new_empty_simple ("video/x-dirac");
     *codec_name = g_strdup_printf ("Dirac");
   } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_VP8)) {
     caps = gst_caps_new_empty_simple ("video/x-vp8");
     *codec_name = g_strdup_printf ("On2 VP8");
+  } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_VP9)) {
+    caps = gst_caps_new_empty_simple ("video/x-vp9");
+    *codec_name = g_strdup_printf ("On2 VP9");
   } else {
     GST_WARNING ("Unknown codec '%s', cannot build Caps", codec_id);
     return NULL;
@@ -5300,10 +5229,6 @@ gst_matroska_demux_audio_caps (GstMatroskaTrackAudioContext *
   if (riff_audio_fmt)
     *riff_audio_fmt = 0;
 
-  context->send_xiph_headers = FALSE;
-  context->send_flac_headers = FALSE;
-  context->send_speex_headers = FALSE;
-
   /* TODO: check if we have all codec types from matroska-ids.h
    *       check if we have to do more special things with codec_private
    *       check if we need bitdepth in different places too
@@ -5385,14 +5310,25 @@ gst_matroska_demux_audio_caps (GstMatroskaTrackAudioContext *
     *codec_name = g_strdup ("DTS audio");
   } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_VORBIS)) {
     caps = gst_caps_new_empty_simple ("audio/x-vorbis");
-    context->send_xiph_headers = TRUE;
-    /* vorbis decoder does tags */
+    context->stream_headers =
+        gst_matroska_parse_xiph_stream_headers (context->codec_priv,
+        context->codec_priv_size);
+    /* FIXME: mark stream as broken and skip if there are no stream headers */
+    context->send_stream_headers = TRUE;
   } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_FLAC)) {
     caps = gst_caps_new_empty_simple ("audio/x-flac");
-    context->send_flac_headers = TRUE;
+    context->stream_headers =
+        gst_matroska_parse_flac_stream_headers (context->codec_priv,
+        context->codec_priv_size);
+    /* FIXME: mark stream as broken and skip if there are no stream headers */
+    context->send_stream_headers = TRUE;
   } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_SPEEX)) {
     caps = gst_caps_new_empty_simple ("audio/x-speex");
-    context->send_speex_headers = TRUE;
+    context->stream_headers =
+        gst_matroska_parse_speex_stream_headers (context->codec_priv,
+        context->codec_priv_size);
+    /* FIXME: mark stream as broken and skip if there are no stream headers */
+    context->send_stream_headers = TRUE;
   } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_ACM)) {
     gst_riff_strf_auds auds;
 
@@ -5508,6 +5444,9 @@ gst_matroska_demux_audio_caps (GstMatroskaTrackAudioContext *
           "framed", G_TYPE_BOOLEAN, TRUE,
           "stream-format", G_TYPE_STRING, "raw", NULL);
       gst_caps_set_simple (caps, "codec_data", GST_TYPE_BUFFER, priv, NULL);
+      if (context->codec_priv && context->codec_priv_size > 0)
+        gst_codec_utils_aac_caps_set_level_and_profile (caps,
+            context->codec_priv, context->codec_priv_size);
       *codec_name = g_strdup_printf ("MPEG-%d AAC audio", mpegversion);
       gst_buffer_unref (priv);
     }
@@ -5650,7 +5589,11 @@ gst_matroska_demux_subtitle_caps (GstMatroskaTrackSubtitleContext *
     caps = gst_caps_new_empty_simple ("subpicture/x-pgs");
   } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_SUBTITLE_KATE)) {
     caps = gst_caps_new_empty_simple ("subtitle/x-kate");
-    context->send_xiph_headers = TRUE;
+    context->stream_headers =
+        gst_matroska_parse_xiph_stream_headers (context->codec_priv,
+        context->codec_priv_size);
+    /* FIXME: mark stream as broken and skip if there are no stream headers */
+    context->send_stream_headers = TRUE;
   } else {
     GST_DEBUG ("Unknown subtitle stream: codec_id='%s'", codec_id);
     caps = gst_caps_new_empty_simple ("application/x-subtitle-unknown");
diff --git a/gst/matroska/matroska-demux.h b/gst/matroska/matroska-demux.h
index 0376c8aac..787a81973 100644
--- a/gst/matroska/matroska-demux.h
+++ b/gst/matroska/matroska-demux.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_MATROSKA_DEMUX_H__
diff --git a/gst/matroska/matroska-ids.c b/gst/matroska/matroska-ids.c
index 8e6239594..da8f82bda 100644
--- a/gst/matroska/matroska-ids.c
+++ b/gst/matroska/matroska-ids.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -26,6 +26,8 @@
 
 #include "matroska-ids.h"
 
+#include <string.h>
+
 gboolean
 gst_matroska_track_init_video_context (GstMatroskaTrackContext ** p_context)
 {
@@ -116,3 +118,151 @@ gst_matroska_register_tags (void)
 {
   /* TODO: register other custom tags */
 }
+
+GstBufferList *
+gst_matroska_parse_xiph_stream_headers (gpointer codec_data,
+    gsize codec_data_size)
+{
+  GstBufferList *list = NULL;
+  guint8 *p = codec_data;
+  gint i, offset, num_packets;
+  guint *length, last;
+
+  GST_MEMDUMP ("xiph codec data", codec_data, codec_data_size);
+
+  if (codec_data == NULL || codec_data_size == 0)
+    goto error;
+
+  /* start of the stream and vorbis audio or theora video, need to
+   * send the codec_priv data as first three packets */
+  num_packets = p[0] + 1;
+  GST_DEBUG ("%u stream headers, total length=%" G_GSIZE_FORMAT " bytes",
+      (guint) num_packets, codec_data_size);
+
+  length = g_alloca (num_packets * sizeof (guint));
+  last = 0;
+  offset = 1;
+
+  /* first packets, read length values */
+  for (i = 0; i < num_packets - 1; i++) {
+    length[i] = 0;
+    while (offset < codec_data_size) {
+      length[i] += p[offset];
+      if (p[offset++] != 0xff)
+        break;
+    }
+    last += length[i];
+  }
+  if (offset + last > codec_data_size)
+    goto error;
+
+  /* last packet is the remaining size */
+  length[i] = codec_data_size - offset - last;
+
+  list = gst_buffer_list_new ();
+
+  for (i = 0; i < num_packets; i++) {
+    GstBuffer *hdr;
+
+    GST_DEBUG ("buffer %d: %u bytes", i, (guint) length[i]);
+
+    if (offset + length[i] > codec_data_size)
+      goto error;
+
+    hdr = gst_buffer_new_wrapped (g_memdup (p + offset, length[i]), length[i]);
+    gst_buffer_list_add (list, hdr);
+
+    offset += length[i];
+  }
+
+  return list;
+
+/* ERRORS */
+error:
+  {
+    if (list != NULL)
+      gst_buffer_list_unref (list);
+    return NULL;
+  }
+}
+
+GstBufferList *
+gst_matroska_parse_speex_stream_headers (gpointer codec_data,
+    gsize codec_data_size)
+{
+  GstBufferList *list = NULL;
+  GstBuffer *hdr;
+  guint8 *pdata = codec_data;
+
+  GST_MEMDUMP ("speex codec data", codec_data, codec_data_size);
+
+  if (codec_data == NULL || codec_data_size < 80) {
+    GST_WARNING ("not enough codec priv data for speex headers");
+    return NULL;
+  }
+
+  if (memcmp (pdata, "Speex   ", 8) != 0) {
+    GST_WARNING ("no Speex marker at start of stream headers");
+    return NULL;
+  }
+
+  list = gst_buffer_list_new ();
+
+  hdr = gst_buffer_new_wrapped (g_memdup (pdata, 80), 80);
+  gst_buffer_list_add (list, hdr);
+
+  if (codec_data_size > 80) {
+    hdr = gst_buffer_new_wrapped (g_memdup (pdata + 80, codec_data_size - 80),
+        codec_data_size - 80);
+    gst_buffer_list_add (list, hdr);
+  }
+
+  return list;
+}
+
+GstBufferList *
+gst_matroska_parse_flac_stream_headers (gpointer codec_data,
+    gsize codec_data_size)
+{
+  GstBufferList *list = NULL;
+  GstBuffer *hdr;
+  guint8 *pdata = codec_data;
+  guint len, off;
+
+  GST_MEMDUMP ("flac codec data", codec_data, codec_data_size);
+
+  /* need at least 'fLaC' marker + STREAMINFO metadata block */
+  if (codec_data == NULL || codec_data_size < ((4) + (4 + 34))) {
+    GST_WARNING ("not enough codec priv data for flac headers");
+    return NULL;
+  }
+
+  if (memcmp (pdata, "fLaC", 4) != 0) {
+    GST_WARNING ("no flac marker at start of stream headers");
+    return NULL;
+  }
+
+  list = gst_buffer_list_new ();
+
+  hdr = gst_buffer_new_wrapped (g_memdup (pdata, 4), 4);
+  gst_buffer_list_add (list, hdr);
+
+  /* skip fLaC marker */
+  off = 4;
+
+  /* FIXME: check size remaining */
+  while (off < codec_data_size) {
+    len = GST_READ_UINT8 (pdata + off + 1) << 16;
+    len |= GST_READ_UINT8 (pdata + off + 2) << 8;
+    len |= GST_READ_UINT8 (pdata + off + 3);
+
+    GST_DEBUG ("header packet: len=%u bytes, flags=0x%02x", len, pdata[off]);
+
+    /* FIXME: check size remaining */
+    hdr = gst_buffer_new_wrapped (g_memdup (pdata + off, len + 4), len + 4);
+    gst_buffer_list_add (list, hdr);
+
+    off += 4 + len;
+  }
+  return list;
+}
diff --git a/gst/matroska/matroska-ids.h b/gst/matroska/matroska-ids.h
index 6dbbfd5f2..f19a6d2f5 100644
--- a/gst/matroska/matroska-ids.h
+++ b/gst/matroska/matroska-ids.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_MATROSKA_IDS_H__
@@ -210,7 +210,7 @@
 #define GST_MATROSKA_ID_TARGETTYPEVALUE            0x68CA
 #define GST_MATROSKA_ID_TARGETTYPE                 0x63CA
 #define GST_MATROSKA_ID_TARGETTRACKUID             0x63C5
-#define GST_MATROSKA_ID_TARGETEDITIONUID           0x63C5
+#define GST_MATROSKA_ID_TARGETEDITIONUID           0x63C9
 #define GST_MATROSKA_ID_TARGETCHAPTERUID           0x63C4
 #define GST_MATROSKA_ID_TARGETATTACHMENTUID        0x63C6
 
@@ -345,6 +345,7 @@
 #define GST_MATROSKA_CODEC_ID_VIDEO_SNOW         "V_SNOW"
 #define GST_MATROSKA_CODEC_ID_VIDEO_DIRAC        "V_DIRAC"
 #define GST_MATROSKA_CODEC_ID_VIDEO_VP8          "V_VP8"
+#define GST_MATROSKA_CODEC_ID_VIDEO_VP9          "V_VP9"
 
 #define GST_MATROSKA_CODEC_ID_AUDIO_MPEG1_L1       "A_MPEG/L1"
 #define GST_MATROSKA_CODEC_ID_AUDIO_MPEG1_L2       "A_MPEG/L2"
@@ -399,10 +400,10 @@
 #define GST_MATROSKA_TAG_ID_ARTIST   "ARTIST"
 #define GST_MATROSKA_TAG_ID_ALBUM    "ALBUM"
 #define GST_MATROSKA_TAG_ID_COMMENTS "COMMENTS"
+#define GST_MATROSKA_TAG_ID_COMMENT  "COMMENT"
 #define GST_MATROSKA_TAG_ID_BITSPS   "BITSPS"
 #define GST_MATROSKA_TAG_ID_BPS      "BPS"
 #define GST_MATROSKA_TAG_ID_ENCODER  "ENCODER"
-#define GST_MATROSKA_TAG_ID_DATE     "DATE"
 #define GST_MATROSKA_TAG_ID_ISRC     "ISRC"
 #define GST_MATROSKA_TAG_ID_COPYRIGHT "COPYRIGHT"
 #define GST_MATROSKA_TAG_ID_BPM       "BPM"
@@ -411,6 +412,25 @@
 #define GST_MATROSKA_TAG_ID_COMPOSER  "COMPOSER"
 #define GST_MATROSKA_TAG_ID_LEAD_PERFORMER  "LEAD_PERFOMER"
 #define GST_MATROSKA_TAG_ID_GENRE     "GENRE"
+#define GST_MATROSKA_TAG_ID_TOTAL_PARTS "TOTAL_PARTS"
+#define GST_MATROSKA_TAG_ID_PART_NUMBER "PART_NUMBER"
+#define GST_MATROSKA_TAG_ID_SUBTITLE "SUBTITLE"
+#define GST_MATROSKA_TAG_ID_ACCOMPANIMENT "ACCOMPANIMENT"
+#define GST_MATROSKA_TAG_ID_LYRICS "LYRICS"
+#define GST_MATROSKA_TAG_ID_CONDUCTOR "CONDUCTOR"
+#define GST_MATROSKA_TAG_ID_ENCODED_BY "ENCODED_BY"
+#define GST_MATROSKA_TAG_ID_DESCRIPTION "DESCRIPTION"
+#define GST_MATROSKA_TAG_ID_KEYWORDS "KEYWORDS"
+#define GST_MATROSKA_TAG_ID_DATE_RELEASED "DATE_RELEASED"
+#define GST_MATROSKA_TAG_ID_DATE_RECORDED "DATE_RECORDED"
+#define GST_MATROSKA_TAG_ID_DATE_ENCODED "DATE_ENCODED"
+#define GST_MATROSKA_TAG_ID_DATE_TAGGED "DATE_TAGGED"
+#define GST_MATROSKA_TAG_ID_DATE_DIGITIZED "DATE_DIGITIZED"
+#define GST_MATROSKA_TAG_ID_DATE_WRITTEN "DATE_WRITTEN"
+#define GST_MATROSKA_TAG_ID_DATE_PURCHASED "DATE_PURCHASED"
+#define GST_MATROSKA_TAG_ID_RECORDING_LOCATION "RECORDING_LOCATION"
+#define GST_MATROSKA_TAG_ID_PRODUCTION_COPYRIGHT "PRODUCTION_COPYRIGHT"
+#define GST_MATROSKA_TAG_ID_LICENSE "LICENSE"
 
 /*
  * TODO: add this tag & mappings
@@ -492,7 +512,7 @@ struct _GstMatroskaTrackContext {
   gpointer      codec_state;
   gsize         codec_state_size;
   GstMatroskaTrackType type;
-  guint         uid, num;
+  guint64       uid, num;
   GstMatroskaTrackFlags flags;
   guint64       default_duration;
   guint64       pos;
@@ -500,20 +520,9 @@ struct _GstMatroskaTrackContext {
 
   gboolean      set_discont; /* TRUE = set DISCONT flag on next buffer */
 
-  /* Special flag for Vorbis and Theora, for which we need to send
-   * codec_priv first before sending any data, and just testing
-   * for time == 0 is not enough to detect that. Used by demuxer */
-  gboolean      send_xiph_headers;
-
-  /* Special flag for Flac, for which we need to reconstruct the header
-   * buffer from the codec_priv data before sending any data, and just
-   * testing for time == 0 is not enough to detect that. Used by demuxer */
-  gboolean      send_flac_headers;
-
-  /* Special flag for Speex, for which we need to reconstruct the header
-   * buffer from the codec_priv data before sending any data, and just
-   * testing for time == 0 is not enough to detect that. Used by demuxer */
-  gboolean      send_speex_headers;
+  /* Stream header buffer, to put into caps and send before any other buffers */
+  GstBufferList * stream_headers;
+  gboolean        send_stream_headers;
 
   /* Special flag for VobSub, for which we have to send colour table info
    * (if available) first before sending any data, and just testing
@@ -624,4 +633,13 @@ gboolean gst_matroska_track_init_subtitle_context (GstMatroskaTrackContext ** p_
 
 void gst_matroska_register_tags (void);
 
+GstBufferList * gst_matroska_parse_xiph_stream_headers  (gpointer codec_data,
+                                                         gsize codec_data_size);
+
+GstBufferList * gst_matroska_parse_speex_stream_headers (gpointer codec_data,
+                                                         gsize codec_data_size);
+
+GstBufferList * gst_matroska_parse_flac_stream_headers  (gpointer codec_data,
+                                                         gsize codec_data_size);
+
 #endif /* __GST_MATROSKA_IDS_H__ */
diff --git a/gst/matroska/matroska-mux.c b/gst/matroska/matroska-mux.c
index 380f72de6..d31b1ab4d 100644
--- a/gst/matroska/matroska-mux.c
+++ b/gst/matroska/matroska-mux.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* TODO: - check everywhere that we don't write invalid values
@@ -34,7 +34,7 @@
  * <refsect2>
  * <title>Example launch line</title>
  * |[
- * gst-launch-1.0 -v filesrc location=/path/to/mp3 ! mp3parse ! matroskamux name=mux ! filesink location=test.mkv  filesrc location=/path/to/theora.ogg ! oggdemux ! theoraparse ! mux.
+ * gst-launch-1.0 -v filesrc location=/path/to/mp3 ! mpegaudioparse ! matroskamux name=mux ! filesink location=test.mkv  filesrc location=/path/to/theora.ogg ! oggdemux ! theoraparse ! mux.
  * ]| This pipeline muxes an MP3 file and a Ogg Theora video into a Matroska file.
  * |[
  * gst-launch-1.0 -v audiotestsrc num-buffers=100 ! audioconvert ! vorbisenc ! matroskamux ! filesink location=test.mka
@@ -961,7 +961,8 @@ gst_matroska_mux_video_pad_setcaps (GstPad * pad, GstCaps * caps)
 
   /* set vp8 defaults or let user override it */
   if (GST_MATROSKAMUX_PAD_CAST (pad)->frame_duration_user == FALSE
-      && (!strcmp (mimetype, "video/x-vp8")))
+      && (!strcmp (mimetype, "video/x-vp8")
+          || !strcmp (mimetype, "video/x-vp9")))
     GST_MATROSKAMUX_PAD_CAST (pad)->frame_duration =
         DEFAULT_PAD_FRAME_DURATION_VP8;
 
@@ -1136,6 +1137,8 @@ skip_details:
     gst_matroska_mux_set_codec_id (context, GST_MATROSKA_CODEC_ID_VIDEO_DIRAC);
   } else if (!strcmp (mimetype, "video/x-vp8")) {
     gst_matroska_mux_set_codec_id (context, GST_MATROSKA_CODEC_ID_VIDEO_VP8);
+  } else if (!strcmp (mimetype, "video/x-vp9")) {
+    gst_matroska_mux_set_codec_id (context, GST_MATROSKA_CODEC_ID_VIDEO_VP9);
   } else if (!strcmp (mimetype, "video/mpeg")) {
     gint mpegversion;
 
@@ -3218,7 +3221,9 @@ gst_matroska_mux_write_data (GstMatroskaMux * mux, GstMatroskaPad * collect_pad,
   gint64 relative_timestamp64;
   guint64 block_duration;
   gboolean is_video_keyframe = FALSE;
+  gboolean is_video_invisible = FALSE;
   GstMatroskamuxPad *pad;
+  gint flags = 0;
 
   /* write data */
   pad = GST_MATROSKAMUX_PAD_CAST (collect_pad->collect.pad);
@@ -3254,11 +3259,20 @@ gst_matroska_mux_write_data (GstMatroskaMux * mux, GstMatroskaPad * collect_pad,
   /* set the timestamp for outgoing buffers */
   ebml->timestamp = GST_BUFFER_TIMESTAMP (buf);
 
-  if (collect_pad->track->type == GST_MATROSKA_TRACK_TYPE_VIDEO &&
-      !GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT)) {
-    GST_LOG_OBJECT (mux, "have video keyframe, ts=%" GST_TIME_FORMAT,
-        GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
-    is_video_keyframe = TRUE;
+  if (collect_pad->track->type == GST_MATROSKA_TRACK_TYPE_VIDEO) {
+    if (!GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT)) {
+      GST_LOG_OBJECT (mux, "have video keyframe, ts=%" GST_TIME_FORMAT,
+          GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
+      is_video_keyframe = TRUE;
+    } else if (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DECODE_ONLY) &&
+        (!strcmp (collect_pad->track->codec_id, GST_MATROSKA_CODEC_ID_VIDEO_VP8)
+            || !strcmp (collect_pad->track->codec_id,
+                GST_MATROSKA_CODEC_ID_VIDEO_VP9))) {
+      GST_LOG_OBJECT (mux,
+          "have VP8 video invisible frame, " "ts=%" GST_TIME_FORMAT,
+          GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
+      is_video_invisible = TRUE;
+    }
   }
 
   if (mux->cluster) {
@@ -3373,9 +3387,13 @@ gst_matroska_mux_write_data (GstMatroskaMux * mux, GstMatroskaPad * collect_pad,
   }
   relative_timestamp = gst_util_uint64_scale (relative_timestamp64, 1,
       mux->time_scale);
+
+  if (is_video_invisible)
+    flags |= 0x08;
+
   if (mux->doctype_version > 1 && !write_duration) {
-    int flags =
-        GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT) ? 0 : 0x80;
+    if (is_video_keyframe)
+      flags |= 0x80;
 
     hdr =
         gst_matroska_mux_create_buffer_header (collect_pad->track,
@@ -3395,7 +3413,7 @@ gst_matroska_mux_write_data (GstMatroskaMux * mux, GstMatroskaPad * collect_pad,
     blockgroup = gst_ebml_write_master_start (ebml, GST_MATROSKA_ID_BLOCKGROUP);
     hdr =
         gst_matroska_mux_create_buffer_header (collect_pad->track,
-        relative_timestamp, 0);
+        relative_timestamp, flags);
     if (write_duration)
       gst_ebml_write_uint (ebml, GST_MATROSKA_ID_BLOCKDURATION, block_duration);
     gst_ebml_write_buffer_header (ebml, GST_MATROSKA_ID_BLOCK,
diff --git a/gst/matroska/matroska-mux.h b/gst/matroska/matroska-mux.h
index 2df0ec94c..7fea78dd2 100644
--- a/gst/matroska/matroska-mux.h
+++ b/gst/matroska/matroska-mux.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_MATROSKA_MUX_H__
diff --git a/gst/matroska/matroska-parse.c b/gst/matroska/matroska-parse.c
index dce489835..83b0d6384 100644
--- a/gst/matroska/matroska-parse.c
+++ b/gst/matroska/matroska-parse.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* TODO: check CRC32 if present
@@ -342,7 +342,7 @@ gst_matroska_parse_reset (GstElement * element)
   parse->next_cluster_offset = 0;
   parse->index_offset = 0;
   parse->seekable = FALSE;
-  parse->need_newsegment = FALSE;
+  parse->need_newsegment = TRUE;
   parse->building_index = FALSE;
   if (parse->seek_event) {
     gst_event_unref (parse->seek_event);
@@ -2546,6 +2546,12 @@ gst_matroska_parse_output (GstMatroskaParse * parse, GstBuffer * buffer,
     //gst_caps_replace (parse->caps, caps);
     gst_pad_set_caps (parse->srcpad, caps);
 
+    if (parse->need_newsegment) {
+      gst_pad_push_event (parse->srcpad,
+          gst_event_new_segment (&parse->common.segment));
+      parse->need_newsegment = FALSE;
+    }
+
     buf = gst_buffer_copy (parse->streamheader);
     gst_caps_unref (caps);
 
diff --git a/gst/matroska/matroska-parse.h b/gst/matroska/matroska-parse.h
index a447e776c..0d61ba521 100644
--- a/gst/matroska/matroska-parse.h
+++ b/gst/matroska/matroska-parse.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_MATROSKA_PARSE_H__
diff --git a/gst/matroska/matroska-read-common.c b/gst/matroska/matroska-read-common.c
index cd4d535e1..ffef5788a 100644
--- a/gst/matroska/matroska-read-common.c
+++ b/gst/matroska/matroska-read-common.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -60,6 +60,15 @@ GST_DEBUG_CATEGORY (matroskareadcommon_debug);
 #define GST_MATROSKA_TOC_UID_EDITION "edition"
 #define GST_MATROSKA_TOC_UID_EMPTY "empty"
 
+typedef struct
+{
+  GstTagList *result;
+  guint64 target_type_value;
+  gchar *target_type;
+  gboolean audio_only;
+} TargetTypeContext;
+
+
 static gboolean
 gst_matroska_decompress_data (GstMatroskaTrackEncoding * enc,
     gpointer * data_out, gsize * size_out,
@@ -763,14 +772,20 @@ gst_matroska_read_common_parse_toc_tag (GstTocEntry * entry,
 
 static GstFlowReturn
 gst_matroska_read_common_parse_metadata_targets (GstMatroskaReadCommon * common,
-    GstEbmlRead * ebml, GArray * edition_targets, GArray * chapter_targets)
+    GstEbmlRead * ebml, GArray * edition_targets, GArray * chapter_targets,
+    GArray * track_targets, guint64 * target_type_value, gchar ** target_type)
 {
   GstFlowReturn ret = GST_FLOW_OK;
   guint32 id;
   guint64 uid;
+  guint64 tmp;
+  gchar *str;
 
   DEBUG_ELEMENT_START (common, ebml, "TagTargets");
 
+  *target_type_value = 50;
+  *target_type = NULL;
+
   if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) {
     DEBUG_ELEMENT_STOP (common, ebml, "TagTargets", ret);
     return ret;
@@ -791,6 +806,24 @@ gst_matroska_read_common_parse_metadata_targets (GstMatroskaReadCommon * common,
           g_array_append_val (edition_targets, uid);
         break;
 
+      case GST_MATROSKA_ID_TARGETTRACKUID:
+        if ((ret = gst_ebml_read_uint (ebml, &id, &uid)) == GST_FLOW_OK)
+          g_array_append_val (track_targets, uid);
+        break;
+
+      case GST_MATROSKA_ID_TARGETTYPEVALUE:
+        if ((ret = gst_ebml_read_uint (ebml, &id, &tmp)) == GST_FLOW_OK)
+          *target_type_value = tmp;
+        break;
+
+      case GST_MATROSKA_ID_TARGETTYPE:
+        if ((ret = gst_ebml_read_ascii (ebml, &id, &str)) == GST_FLOW_OK) {
+          if (*target_type != NULL)
+            g_free (*target_type);
+          *target_type = str;
+        }
+        break;
+
       default:
         ret =
             gst_matroska_read_common_parse_skip (common, ebml, "TagTargets",
@@ -1746,7 +1779,7 @@ gst_matroska_read_common_parse_info (GstMatroskaReadCommon * common,
 
 static GstFlowReturn
 gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon *
-    common, GstEbmlRead * ebml, GstTagList ** p_taglist)
+    common, GstEbmlRead * ebml, GstTagList ** p_taglist, gchar * parent)
 {
   /* FIXME: check if there are more useful mappings */
   static const struct
@@ -1756,27 +1789,165 @@ gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon *
   }
   tag_conv[] = {
     {
+      /* The following list has the _same_ order as the one in Matroska spec. Please, don't mess it up. */
+      /* TODO: Nesting information:
+         ORIGINAL A special tag that is meant to have other tags inside (using nested tags) to describe the original work of art that this item is based on. All tags in this list can be used "under" the ORIGINAL tag like LYRICIST, PERFORMER, etc.
+         SAMPLE A tag that contains other tags to describe a sample used in the targeted item taken from another work of art. All tags in this list can be used "under" the SAMPLE tag like TITLE, ARTIST, DATE_RELEASED, etc.
+         COUNTRY The name of the country (biblio ISO-639-2) that is meant to have other tags inside (using nested tags) to country specific information about the item. All tags in this list can be used "under" the COUNTRY_SPECIFIC tag like LABEL, PUBLISH_RATING, etc.
+       */
+
+      /* Organizational Information */
+    GST_MATROSKA_TAG_ID_TOTAL_PARTS, GST_TAG_TRACK_COUNT}, {
+    GST_MATROSKA_TAG_ID_PART_NUMBER, GST_TAG_TRACK_NUMBER}, {
+      /* TODO: PART_OFFSET A number to add to PART_NUMBER when the parts at that level don't start at 1. (e.g. if TargetType is TRACK, the track number of the second audio CD) */
+
+      /* Titles */
+    GST_MATROSKA_TAG_ID_SUBTITLE, GST_TAG_TITLE}, {     /* Sub Title of the entity. Since we're concat'ing all title-like entities anyway, might as well add the sub-title. */
     GST_MATROSKA_TAG_ID_TITLE, GST_TAG_TITLE}, {
+    GST_MATROSKA_TAG_ID_ALBUM, GST_TAG_ALBUM}, {        /* Matroska spec does NOT have this tag! Dunno what it was doing here, probably for compatibility. */
+
+      /* TODO: Nested Information:
+         URL URL corresponding to the tag it's included in.
+         SORT_WITH A child element to indicate what alternative value the parent tag can have to be sorted, for example "Pet Shop Boys" instead of "The Pet Shop Boys". Or "Marley Bob" and "Marley Ziggy" (no comma needed).
+         INSTRUMENTS The instruments that are being used/played, separated by a comma. It should be a child of the following tags: ARTIST, LEAD_PERFORMER or ACCOMPANIMENT.
+         EMAIL Email corresponding to the tag it's included in.
+         ADDRESS The physical address of the entity. The address should include a country code. It can be useful for a recording label.
+         FAX The fax number corresponding to the tag it's included in. It can be useful for a recording label.
+         PHONE The phone number corresponding to the tag it's included in. It can be useful for a recording label.
+       */
+
+      /* Entities */
     GST_MATROSKA_TAG_ID_ARTIST, GST_TAG_ARTIST}, {
+    GST_MATROSKA_TAG_ID_LEAD_PERFORMER, GST_TAG_PERFORMER}, {
+    GST_MATROSKA_TAG_ID_ACCOMPANIMENT, GST_TAG_PERFORMER}, {    /* Band/orchestra/accompaniment/musician. This is akin to the TPE2 tag in ID3. */
+    GST_MATROSKA_TAG_ID_COMPOSER, GST_TAG_COMPOSER}, {
+      /* ARRANGER The person who arranged the piece, e.g., Ravel. */
+    GST_MATROSKA_TAG_ID_LYRICS, GST_TAG_LYRICS}, {      /* The lyrics corresponding to a song (in case audio synchronization is not known or as a doublon to a subtitle track). Editing this value when subtitles are found should also result in editing the subtitle track for more consistency. */
+      /* LYRICIST The person who wrote the lyrics for a musical item. This is akin to the TEXT tag in ID3. */
+    GST_MATROSKA_TAG_ID_CONDUCTOR, GST_TAG_PERFORMER}, {        /* Conductor/performer refinement. This is akin to the TPE3 tag in ID3. */
+      /* DIRECTOR This is akin to the IART tag in RIFF. */
     GST_MATROSKA_TAG_ID_AUTHOR, GST_TAG_ARTIST}, {
-    GST_MATROSKA_TAG_ID_ALBUM, GST_TAG_ALBUM}, {
-    GST_MATROSKA_TAG_ID_COMMENTS, GST_TAG_COMMENT}, {
-    GST_MATROSKA_TAG_ID_BITSPS, GST_TAG_BITRATE}, {
-    GST_MATROSKA_TAG_ID_BPS, GST_TAG_BITRATE}, {
+      /* ASSISTANT_DIRECTOR The name of the assistant director. */
+      /* DIRECTOR_OF_PHOTOGRAPHY The name of the director of photography, also known as cinematographer. This is akin to the ICNM tag in Extended RIFF. */
+      /* SOUND_ENGINEER The name of the sound engineer or sound recordist. */
+      /* ART_DIRECTOR The person who oversees the artists and craftspeople who build the sets. */
+      /* PRODUCTION_DESIGNER Artist responsible for designing the overall visual appearance of a movie. */
+      /* CHOREGRAPHER The name of the choregrapher */
+      /* COSTUME_DESIGNER The name of the costume designer */
+      /* ACTOR An actor or actress playing a role in this movie. This is the person's real name, not the character's name the person is playing. */
+      /* CHARACTER The name of the character an actor or actress plays in this movie. This should be a sub-tag of an ACTOR tag in order not to cause ambiguities. */
+      /* WRITTEN_BY The author of the story or script (used for movies and TV shows). */
+      /* SCREENPLAY_BY The author of the screenplay or scenario (used for movies and TV shows). */
+      /* EDITED_BY This is akin to the IEDT tag in Extended RIFF. */
+      /* PRODUCER Produced by. This is akin to the IPRO tag in Extended RIFF. */
+      /* COPRODUCER The name of a co-producer. */
+      /* EXECUTIVE_PRODUCER The name of an executive producer. */
+      /* DISTRIBUTED_BY This is akin to the IDST tag in Extended RIFF. */
+      /* MASTERED_BY The engineer who mastered the content for a physical medium or for digital distribution. */
+    GST_MATROSKA_TAG_ID_ENCODED_BY, GST_TAG_ENCODED_BY}, {      /* This is akin to the TENC tag in ID3. */
+      /* MIXED_BY DJ mix by the artist specified */
+      /* REMIXED_BY Interpreted, remixed, or otherwise modified by. This is akin to the TPE4 tag in ID3. */
+      /* PRODUCTION_STUDIO This is akin to the ISTD tag in Extended RIFF. */
+      /* THANKS_TO A very general tag for everyone else that wants to be listed. */
+      /* PUBLISHER This is akin to the TPUB tag in ID3. */
+      /* LABEL The record label or imprint on the disc. */
+      /* Search / Classification */
+    GST_MATROSKA_TAG_ID_GENRE, GST_TAG_GENRE}, {
+      /* MOOD Intended to reflect the mood of the item with a few keywords, e.g. "Romantic", "Sad" or "Uplifting". The format follows that of the TMOO tag in ID3. */
+      /* ORIGINAL_MEDIA_TYPE Describes the original type of the media, such as, "DVD", "CD", "computer image," "drawing," "lithograph," and so forth. This is akin to the TMED tag in ID3. */
+      /* CONTENT_TYPE The type of the item. e.g. Documentary, Feature Film, Cartoon, Music Video, Music, Sound FX, ... */
+      /* SUBJECT Describes the topic of the file, such as "Aerial view of Seattle." */
+    GST_MATROSKA_TAG_ID_DESCRIPTION, GST_TAG_DESCRIPTION}, {    /* A short description of the content, such as "Two birds flying." */
+    GST_MATROSKA_TAG_ID_KEYWORDS, GST_TAG_KEYWORDS}, {  /* Keywords to the item separated by a comma, used for searching. */
+      /* SUMMARY A plot outline or a summary of the story. */
+      /* SYNOPSIS A description of the story line of the item. */
+      /* INITIAL_KEY The initial key that a musical track starts in. The format is identical to ID3. */
+      /* PERIOD Describes the period that the piece is from or about. For example, "Renaissance". */
+      /* LAW_RATING Depending on the country it's the format of the rating of a movie (P, R, X in the USA, an age in other countries or a URI defining a logo). */
+      /* ICRA The ICRA content rating for parental control. (Previously RSACi) */
+
+      /* Temporal Information */
+    GST_MATROSKA_TAG_ID_DATE_RELEASED, GST_TAG_DATE}, { /* The time that the item was originaly released. This is akin to the TDRL tag in ID3. */
+    GST_MATROSKA_TAG_ID_DATE_RECORDED, GST_TAG_DATE}, { /* The time that the recording began. This is akin to the TDRC tag in ID3. */
+    GST_MATROSKA_TAG_ID_DATE_ENCODED, GST_TAG_DATE}, {  /* The time that the encoding of this item was completed began. This is akin to the TDEN tag in ID3. */
+    GST_MATROSKA_TAG_ID_DATE_TAGGED, GST_TAG_DATE}, {   /* The time that the tags were done for this item. This is akin to the TDTG tag in ID3. */
+    GST_MATROSKA_TAG_ID_DATE_DIGITIZED, GST_TAG_DATE}, {        /* The time that the item was tranfered to a digital medium. This is akin to the IDIT tag in RIFF. */
+    GST_MATROSKA_TAG_ID_DATE_WRITTEN, GST_TAG_DATE}, {  /* The time that the writing of the music/script began. */
+    GST_MATROSKA_TAG_ID_DATE_PURCHASED, GST_TAG_DATE}, {        /* Information on when the file was purchased (see also purchase tags). */
+    GST_MATROSKA_TAG_ID_DATE, GST_TAG_DATE}, {  /* Matroska spec does NOT have this tag! Dunno what it was doing here, probably for compatibility. */
+
+      /* Spacial Information */
+    GST_MATROSKA_TAG_ID_RECORDING_LOCATION, GST_TAG_GEO_LOCATION_NAME}, {       /* The location where the item was recorded. The countries corresponding to the string, same 2 octets as in Internet domains, or possibly ISO-3166. This code is followed by a comma, then more detailed information such as state/province, another comma, and then city. For example, "US, Texas, Austin". This will allow for easy sorting. It is okay to only store the country, or the country and the state/province. More detailed information can be added after the city through the use of additional commas. In cases where the province/state is unknown, but you want to store the city, simply leave a space between the two commas. For example, "US, , Austin". */
+      /* COMPOSITION_LOCATION Location that the item was originaly designed/written. The countries corresponding to the string, same 2 octets as in Internet domains, or possibly ISO-3166. This code is followed by a comma, then more detailed information such as state/province, another comma, and then city. For example, "US, Texas, Austin". This will allow for easy sorting. It is okay to only store the country, or the country and the state/province. More detailed information can be added after the city through the use of additional commas. In cases where the province/state is unknown, but you want to store the city, simply leave a space between the two commas. For example, "US, , Austin". */
+      /* COMPOSER_NATIONALITY Nationality of the main composer of the item, mostly for classical music. The countries corresponding to the string, same 2 octets as in Internet domains, or possibly ISO-3166. */
+
+      /* Personal */
+    GST_MATROSKA_TAG_ID_COMMENT, GST_TAG_COMMENT}, {    /* Any comment related to the content. */
+    GST_MATROSKA_TAG_ID_COMMENTS, GST_TAG_COMMENT}, {   /* Matroska spec does NOT have this tag! Dunno what it was doing here, probably for compatibility. */
+      /* PLAY_COUNTER The number of time the item has been played. */
+      /* TODO: RATING A numeric value defining how much a person likes the song/movie. The number is between 0 and 5 with decimal values possible (e.g. 2.7), 5(.0) being the highest possible rating. Other rating systems with different ranges will have to be scaled. */
+
+      /* Technical Information */
     GST_MATROSKA_TAG_ID_ENCODER, GST_TAG_ENCODER}, {
-    GST_MATROSKA_TAG_ID_DATE, GST_TAG_DATE}, {
+      /* ENCODER_SETTINGS A list of the settings used for encoding this item. No specific format. */
+    GST_MATROSKA_TAG_ID_BPS, GST_TAG_BITRATE}, {
+    GST_MATROSKA_TAG_ID_BITSPS, GST_TAG_BITRATE}, {     /* Matroska spec does NOT have this tag! Dunno what it was doing here, probably for compatibility. */
+      /* WONTFIX (already handled in another way): FPS The average frames per second of the specified item. This is typically the average number of Blocks per second. In the event that lacing is used, each laced chunk is to be counted as a seperate frame. */
+    GST_MATROSKA_TAG_ID_BPM, GST_TAG_BEATS_PER_MINUTE}, {
+      /* MEASURE In music, a measure is a unit of time in Western music like "4/4". It represents a regular grouping of beats, a meter, as indicated in musical notation by the time signature.. The majority of the contemporary rock and pop music you hear on the radio these days is written in the 4/4 time signature. */
+      /* TUNING It is saved as a frequency in hertz to allow near-perfect tuning of instruments to the same tone as the musical piece (e.g. "441.34" in Hertz). The default value is 440.0 Hz. */
+      /* TODO: REPLAYGAIN_GAIN The gain to apply to reach 89dB SPL on playback. This is based on the Replay Gain standard. Note that ReplayGain information can be found at all TargetType levels (track, album, etc). */
+      /* TODO: REPLAYGAIN_PEAK The maximum absolute peak value of the item. This is based on the Replay Gain standard. */
+
+      /* Identifiers */
     GST_MATROSKA_TAG_ID_ISRC, GST_TAG_ISRC}, {
+      /* MCDI This is a binary dump of the TOC of the CDROM that this item was taken from. This holds the same information as the MCDI in ID3. */
+      /* ISBN International Standard Book Number */
+      /* BARCODE EAN-13 (European Article Numbering) or UPC-A (Universal Product Code) bar code identifier */
+      /* CATALOG_NUMBER A label-specific string used to identify the release (TIC 01 for example). */
+      /* LABEL_CODE A 4-digit or 5-digit number to identify the record label, typically printed as (LC) xxxx or (LC) 0xxxx on CDs medias or covers (only the number is stored). */
+      /* LCCN Library of Congress Control Number */
+
+      /* Commercial */
+      /* PURCHASE_ITEM URL to purchase this file. This is akin to the WPAY tag in ID3. */
+      /* PURCHASE_INFO Information on where to purchase this album. This is akin to the WCOM tag in ID3. */
+      /* PURCHASE_OWNER Information on the person who purchased the file. This is akin to the TOWN tag in ID3. */
+      /* PURCHASE_PRICE The amount paid for entity. There should only be a numeric value in here. Only numbers, no letters or symbols other than ".". For instance, you would store "15.59" instead of "$15.59USD". */
+      /* PURCHASE_CURRENCY The currency type used to pay for the entity. Use ISO-4217 for the 3 letter currency code. */
+
+      /* Legal */
     GST_MATROSKA_TAG_ID_COPYRIGHT, GST_TAG_COPYRIGHT}, {
-    GST_MATROSKA_TAG_ID_BPM, GST_TAG_BEATS_PER_MINUTE}, {
-    GST_MATROSKA_TAG_ID_TERMS_OF_USE, GST_TAG_LICENSE}, {
-    GST_MATROSKA_TAG_ID_COMPOSER, GST_TAG_COMPOSER}, {
-    GST_MATROSKA_TAG_ID_LEAD_PERFORMER, GST_TAG_PERFORMER}, {
-    GST_MATROSKA_TAG_ID_GENRE, GST_TAG_GENRE}
+    GST_MATROSKA_TAG_ID_PRODUCTION_COPYRIGHT, GST_TAG_COPYRIGHT}, {     /* The copyright information as per the production copyright holder. This is akin to the TPRO tag in ID3. */
+    GST_MATROSKA_TAG_ID_LICENSE, GST_TAG_LICENSE}, {    /* The license applied to the content (like Creative Commons variants). */
+    GST_MATROSKA_TAG_ID_TERMS_OF_USE, GST_TAG_LICENSE}
+  };
+  static const struct
+  {
+    const gchar *matroska_tagname;
+    const gchar *gstreamer_tagname;
+  }
+  child_tag_conv[] = {
+    {
+    "TITLE/SORT_WITH=", GST_TAG_TITLE_SORTNAME}, {
+    "ARTIST/SORT_WITH=", GST_TAG_ARTIST_SORTNAME}, {
+      /* ALBUM-stuff is handled elsewhere */
+    "COMPOSER/SORT_WITH=", GST_TAG_TITLE_SORTNAME}, {
+    "ORIGINAL/URL=", GST_TAG_LOCATION}, {
+      /* EMAIL, PHONE, FAX all can be mapped to GST_TAG_CONTACT, there is special
+       * code for that later.
+       */
+    "TITLE/URL=", GST_TAG_HOMEPAGE}, {
+    "ARTIST/URL=", GST_TAG_HOMEPAGE}, {
+    "COPYRIGHT/URL=", GST_TAG_COPYRIGHT_URI}, {
+    "LICENSE/URL=", GST_TAG_LICENSE_URI}, {
+    "LICENSE/URL=", GST_TAG_LICENSE_URI}
   };
   GstFlowReturn ret;
   guint32 id;
   gchar *value = NULL;
   gchar *tag = NULL;
+  gchar *name_with_parent = NULL;
+  GstTagList *child_taglist = NULL;
 
   DEBUG_ELEMENT_START (common, ebml, "SimpleTag");
 
@@ -1785,6 +1956,11 @@ gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon *
     return ret;
   }
 
+  if (parent)
+    child_taglist = *p_taglist;
+  else
+    child_taglist = gst_tag_list_new_empty ();
+
   while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) {
     /* read all sub-entries */
 
@@ -1797,6 +1973,11 @@ gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon *
         tag = NULL;
         ret = gst_ebml_read_ascii (ebml, &id, &tag);
         GST_DEBUG_OBJECT (common, "TagName: %s", GST_STR_NULL (tag));
+        g_free (name_with_parent);
+        if (parent != NULL)
+          name_with_parent = g_strdup_printf ("%s/%s", parent, tag);
+        else
+          name_with_parent = g_strdup (tag);
         break;
 
       case GST_MATROSKA_ID_TAGSTRING:
@@ -1806,11 +1987,23 @@ gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon *
         GST_DEBUG_OBJECT (common, "TagString: %s", GST_STR_NULL (value));
         break;
 
+      case GST_MATROSKA_ID_SIMPLETAG:
+        /* Recursive SimpleTag */
+        /* This implementation requires tag name of _this_ tag to be known
+         * in order to read its children. It's not in the spec, just the way
+         * the code is written.
+         */
+        if (name_with_parent != NULL) {
+          ret = gst_matroska_read_common_parse_metadata_id_simple_tag (common,
+              ebml, &child_taglist, name_with_parent);
+          break;
+        }
+        /* fall-through */
+
       default:
         ret = gst_matroska_read_common_parse_skip (common, ebml, "SimpleTag",
             id);
         break;
-        /* fall-through */
 
       case GST_MATROSKA_ID_TAGLANGUAGE:
       case GST_MATROSKA_ID_TAGDEFAULT:
@@ -1822,10 +2015,18 @@ gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon *
 
   DEBUG_ELEMENT_STOP (common, ebml, "SimpleTag", ret);
 
-  if (tag && value) {
+  if (parent && tag && value && *value != '\0') {
+    /* Don't bother mapping children tags - parent will do that */
+    gchar *key_val;
+    /* TODO: read LANGUAGE sub-tag, and use "key[lc]=val" form */
+    key_val = g_strdup_printf ("%s=%s", name_with_parent, value);
+    gst_tag_list_add (*p_taglist, GST_TAG_MERGE_APPEND,
+        GST_TAG_EXTENDED_COMMENT, key_val, NULL);
+  } else if (tag && value && *value != '\0') {
+    gboolean matched = FALSE;
     guint i;
 
-    for (i = 0; i < G_N_ELEMENTS (tag_conv); i++) {
+    for (i = 0; !matched && i < G_N_ELEMENTS (tag_conv); i++) {
       const gchar *tagname_gst = tag_conv[i].gstreamer_tagname;
 
       const gchar *tagname_mkv = tag_conv[i].matroska_tagname;
@@ -1856,26 +2057,250 @@ gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon *
               g_type_name (dest_type));
         }
         g_value_unset (&dest);
-        break;
+        matched = TRUE;
+      }
+    }
+    if (!matched) {
+      gchar *key_val;
+      /* TODO: read LANGUAGE sub-tag, and use "key[lc]=val" form */
+      key_val = g_strdup_printf ("%s=%s", tag, value);
+      gst_tag_list_add (*p_taglist, GST_TAG_MERGE_APPEND,
+          GST_TAG_EXTENDED_COMMENT, key_val, NULL);
+    }
+  }
+
+  if (!parent) {
+    /* Map children tags. This only supports top-anchored mapping. That is,
+     * we start at toplevel tag (this tag), and see how its combinations
+     * with its children can be mapped. Which means that grandchildren
+     * are also combined here, with _this_ tag taken into consideration.
+     * If grandchildren can be combined only with children, that combination
+     * will not happen.
+     */
+    gint child_tags_n = gst_tag_list_n_tags (child_taglist);
+    if (child_tags_n > 0) {
+      gint i;
+      for (i = 0; i < child_tags_n; i++) {
+        gint j;
+        const gchar *child_name = gst_tag_list_nth_tag_name (child_taglist, i);
+        guint taglen = gst_tag_list_get_tag_size (child_taglist, child_name);
+        for (j = 0; j < taglen; j++) {
+          gchar *val;
+          gboolean matched = FALSE;
+          gchar *val_pre, *val_post;
+          gint k;
+
+          if (!gst_tag_list_get_string_index (child_taglist, child_name,
+                  j, &val))
+            continue;
+          if (!strchr (val, '=')) {
+            g_free (val);
+            continue;
+          }
+          val_post = g_strdup (strchr (val, '=') + 1);
+          val_pre = g_strdup (val);
+          *(strchr (val_pre, '=') + 1) = '\0';
+
+          for (k = 0; !matched && k < G_N_ELEMENTS (child_tag_conv); k++) {
+            const gchar *tagname_gst = child_tag_conv[k].gstreamer_tagname;
+
+            const gchar *tagname_mkv = child_tag_conv[k].matroska_tagname;
+
+            /* TODO: Once "key[lc]=value" form support is implemented,
+             * strip [lc] here. It can't be used in combined tags.
+             * If a tag is not combined, leave [lc] as it is.
+             */
+            if (strcmp (tagname_mkv, val_pre) == 0) {
+              GValue dest = { 0, };
+              GType dest_type = gst_tag_get_type (tagname_gst);
+
+              g_value_init (&dest, dest_type);
+              if (gst_value_deserialize (&dest, val_post)) {
+                gst_tag_list_add_values (*p_taglist, GST_TAG_MERGE_APPEND,
+                    tagname_gst, &dest, NULL);
+              } else {
+                GST_WARNING_OBJECT (common, "Can't transform complex tag '%s' "
+                    "to target type '%s'", val, g_type_name (dest_type));
+              }
+              g_value_unset (&dest);
+              matched = TRUE;
+            }
+          }
+          if (!matched) {
+            gchar *last_slash = strrchr (val_pre, '/');
+            if (last_slash) {
+              last_slash++;
+              if (strcmp (last_slash, "EMAIL=") == 0 ||
+                  strcmp (last_slash, "PHONE=") == 0 ||
+                  strcmp (last_slash, "ADDRESS=") == 0 ||
+                  strcmp (last_slash, "FAX=") == 0) {
+                gst_tag_list_add (*p_taglist, GST_TAG_MERGE_APPEND,
+                    GST_TAG_CONTACT, val_post, NULL);
+                matched = TRUE;
+              }
+            }
+          }
+          if (!matched)
+            gst_tag_list_add (*p_taglist, GST_TAG_MERGE_APPEND,
+                GST_TAG_EXTENDED_COMMENT, val, NULL);
+          g_free (val_post);
+          g_free (val_pre);
+          g_free (val);
+        }
       }
     }
+    gst_tag_list_unref (child_taglist);
   }
 
   g_free (tag);
   g_free (value);
+  g_free (name_with_parent);
 
   return ret;
 }
 
+
+static void
+gst_matroska_read_common_count_streams (GstMatroskaReadCommon * common,
+    gint * a, gint * v, gint * s)
+{
+  gint i;
+  gint video_streams = 0, audio_streams = 0, subtitle_streams = 0;
+
+  for (i = 0; i < common->src->len; i++) {
+    GstMatroskaTrackContext *stream;
+
+    stream = g_ptr_array_index (common->src, i);
+    if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO)
+      video_streams += 1;
+    else if (stream->type == GST_MATROSKA_TRACK_TYPE_AUDIO)
+      audio_streams += 1;
+    else if (stream->type == GST_MATROSKA_TRACK_TYPE_SUBTITLE)
+      subtitle_streams += 1;
+  }
+  *v = video_streams;
+  *a = audio_streams;
+  *v = subtitle_streams;
+}
+
+
+static void
+gst_matroska_read_common_apply_target_type_foreach (const GstTagList * list,
+    const gchar * tag, gpointer user_data)
+{
+  guint vallen;
+  guint i;
+  TargetTypeContext *ctx = (TargetTypeContext *) user_data;
+
+  vallen = gst_tag_list_get_tag_size (list, tag);
+  if (vallen == 0)
+    return;
+
+  for (i = 0; i < vallen; i++) {
+    GValue val = { 0 };
+    const GValue *val_ref;
+
+    val_ref = gst_tag_list_get_value_index (list, tag, i);
+    if (val_ref == NULL)
+      continue;
+    g_value_init (&val, G_VALUE_TYPE (val_ref));
+    g_value_copy (val_ref, &val);
+
+    /* TODO: use the optional ctx->target_type somehow */
+    if (strcmp (tag, GST_TAG_TITLE) == 0) {
+      if (ctx->target_type_value >= 70 && !ctx->audio_only) {
+        gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND,
+            GST_TAG_SHOW_NAME, &val);
+        continue;
+      } else if (ctx->target_type_value >= 50) {
+        gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND,
+            GST_TAG_ALBUM, &val);
+        continue;
+      }
+    } else if (strcmp (tag, GST_TAG_TITLE_SORTNAME) == 0) {
+      if (ctx->target_type_value >= 70 && !ctx->audio_only) {
+        gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND,
+            GST_TAG_SHOW_SORTNAME, &val);
+        continue;
+      } else if (ctx->target_type_value >= 50) {
+        gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND,
+            GST_TAG_ALBUM_SORTNAME, &val);
+        continue;
+      }
+    } else if (strcmp (tag, GST_TAG_ARTIST) == 0) {
+      if (ctx->target_type_value >= 50) {
+        gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND,
+            GST_TAG_ALBUM_ARTIST, &val);
+        continue;
+      }
+    } else if (strcmp (tag, GST_TAG_ARTIST_SORTNAME) == 0) {
+      if (ctx->target_type_value >= 50) {
+        gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND,
+            GST_TAG_ALBUM_ARTIST_SORTNAME, &val);
+        continue;
+      }
+    } else if (strcmp (tag, GST_TAG_TRACK_COUNT) == 0) {
+      if (ctx->target_type_value >= 60) {
+        gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND,
+            GST_TAG_ALBUM_VOLUME_COUNT, &val);
+        continue;
+      }
+    } else if (strcmp (tag, GST_TAG_TRACK_NUMBER) == 0) {
+      if (ctx->target_type_value >= 60 && !ctx->audio_only) {
+        gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND,
+            GST_TAG_SHOW_SEASON_NUMBER, &val);
+        continue;
+      } else if (ctx->target_type_value >= 50 && !ctx->audio_only) {
+        gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND,
+            GST_TAG_SHOW_EPISODE_NUMBER, &val);
+        continue;
+      } else if (ctx->target_type_value >= 50) {
+        gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND,
+            GST_TAG_ALBUM_VOLUME_NUMBER, &val);
+        continue;
+      }
+    }
+    gst_tag_list_add_value (ctx->result, GST_TAG_MERGE_APPEND, tag, &val);
+    g_value_unset (&val);
+  }
+}
+
+
+static GstTagList *
+gst_matroska_read_common_apply_target_type (GstMatroskaReadCommon * common,
+    GstTagList * taglist, guint64 target_type_value, gchar * target_type)
+{
+  TargetTypeContext ctx;
+  gint a = 0;
+  gint v = 0;
+  gint s = 0;
+
+  gst_matroska_read_common_count_streams (common, &a, &v, &s);
+
+  ctx.audio_only = (a > 0 && v == 0 && s == 0);
+  ctx.result = gst_tag_list_new_empty ();
+  ctx.target_type_value = target_type_value;
+  ctx.target_type = target_type;
+
+  gst_tag_list_foreach (taglist,
+      gst_matroska_read_common_apply_target_type_foreach, &ctx);
+
+  gst_tag_list_unref (taglist);
+  return ctx.result;
+}
+
+
 static GstFlowReturn
 gst_matroska_read_common_parse_metadata_id_tag (GstMatroskaReadCommon * common,
     GstEbmlRead * ebml, GstTagList ** p_taglist)
 {
   guint32 id;
   GstFlowReturn ret;
-  GArray *chapter_targets, *edition_targets;
+  GArray *chapter_targets, *edition_targets, *track_targets;
   GstTagList *taglist;
   GList *cur;
+  guint64 target_type_value = 50;
+  gchar *target_type = NULL;
 
   DEBUG_ELEMENT_START (common, ebml, "Tag");
 
@@ -1886,7 +2311,9 @@ gst_matroska_read_common_parse_metadata_id_tag (GstMatroskaReadCommon * common,
 
   edition_targets = g_array_new (FALSE, FALSE, sizeof (guint64));
   chapter_targets = g_array_new (FALSE, FALSE, sizeof (guint64));
+  track_targets = g_array_new (FALSE, FALSE, sizeof (guint64));
   taglist = gst_tag_list_new_empty ();
+  target_type = NULL;
 
   while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) {
     /* read all sub-entries */
@@ -1897,13 +2324,16 @@ gst_matroska_read_common_parse_metadata_id_tag (GstMatroskaReadCommon * common,
     switch (id) {
       case GST_MATROSKA_ID_SIMPLETAG:
         ret = gst_matroska_read_common_parse_metadata_id_simple_tag (common,
-            ebml, &taglist);
+            ebml, &taglist, NULL);
         break;
 
       case GST_MATROSKA_ID_TARGETS:
-        ret =
-            gst_matroska_read_common_parse_metadata_targets (common, ebml,
-            edition_targets, chapter_targets);
+        g_free (target_type);
+        target_type = NULL;
+        target_type_value = 50;
+        ret = gst_matroska_read_common_parse_metadata_targets (common, ebml,
+            edition_targets, chapter_targets, track_targets,
+            &target_type_value, &target_type);
         break;
 
       default:
@@ -1914,19 +2344,47 @@ gst_matroska_read_common_parse_metadata_id_tag (GstMatroskaReadCommon * common,
 
   DEBUG_ELEMENT_STOP (common, ebml, "Tag", ret);
 
+  taglist = gst_matroska_read_common_apply_target_type (common, taglist,
+      target_type_value, target_type);
+  g_free (target_type);
+
   /* if tag is chapter/edition specific - try to find that entry */
-  if (G_UNLIKELY (chapter_targets->len > 0 || edition_targets->len > 0)) {
-    if (common->toc == NULL)
-      GST_WARNING_OBJECT (common,
-          "Found chapter/edition specific tag, but TOC doesn't present");
-    else {
-      cur = gst_toc_get_entries (common->toc);
-      while (cur != NULL) {
-        gst_matroska_read_common_parse_toc_tag (cur->data, edition_targets,
-            chapter_targets, taglist);
-        cur = cur->next;
+  if (G_UNLIKELY (chapter_targets->len > 0 || edition_targets->len > 0 ||
+          track_targets->len > 0)) {
+    gint i;
+    if (chapter_targets->len > 0 || edition_targets->len > 0) {
+      if (common->toc == NULL)
+        GST_WARNING_OBJECT (common,
+            "Found chapter/edition specific tag, but TOC is not present");
+      else {
+        cur = gst_toc_get_entries (common->toc);
+        while (cur != NULL) {
+          gst_matroska_read_common_parse_toc_tag (cur->data, edition_targets,
+              chapter_targets, taglist);
+          cur = cur->next;
+        }
+        common->toc_updated = TRUE;
+      }
+    }
+    for (i = 0; i < track_targets->len; i++) {
+      gint j;
+      gboolean found = FALSE;
+      guint64 tgt = g_array_index (track_targets, guint64, i);
+
+      for (j = 0; j < common->src->len; j++) {
+        GstMatroskaTrackContext *stream = g_ptr_array_index (common->src, j);
+
+        if (stream->uid == tgt) {
+          gst_tag_list_insert (stream->pending_tags, taglist,
+              GST_TAG_MERGE_REPLACE);
+          found = TRUE;
+        }
+      }
+      if (!found) {
+        GST_WARNING_OBJECT (common,
+            "Found track-specific tag(s), but track %" G_GUINT64_FORMAT
+            " is not known (yet?)", tgt);
       }
-      common->toc_updated = TRUE;
     }
   } else
     gst_tag_list_insert (*p_taglist, taglist, GST_TAG_MERGE_APPEND);
@@ -1934,6 +2392,7 @@ gst_matroska_read_common_parse_metadata_id_tag (GstMatroskaReadCommon * common,
   gst_tag_list_unref (taglist);
   g_array_unref (chapter_targets);
   g_array_unref (edition_targets);
+  g_array_unref (track_targets);
 
   return ret;
 }
@@ -2182,7 +2641,7 @@ gst_matroska_read_common_read_track_encoding (GstMatroskaReadCommon * common,
         if (!gst_matroska_read_common_encoding_order_unique (context->encodings,
                 num)) {
           GST_ERROR_OBJECT (common, "ContentEncodingOrder %" G_GUINT64_FORMAT
-              "is not unique for track %d", num, context->num);
+              "is not unique for track %" G_GUINT64_FORMAT, num, context->num);
           ret = GST_FLOW_ERROR;
           break;
         }
diff --git a/gst/matroska/matroska-read-common.h b/gst/matroska/matroska-read-common.h
index 0a18eaa81..10054b0c9 100644
--- a/gst/matroska/matroska-read-common.h
+++ b/gst/matroska/matroska-read-common.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_MATROSKA_READ_COMMON_H__
diff --git a/gst/matroska/matroska.c b/gst/matroska/matroska.c
index ab2abd411..6e43972f6 100644
--- a/gst/matroska/matroska.c
+++ b/gst/matroska/matroska.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/matroska/webm-mux.c b/gst/matroska/webm-mux.c
index c2cc00d51..19aa24577 100644
--- a/gst/matroska/webm-mux.c
+++ b/gst/matroska/webm-mux.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -62,10 +62,11 @@ static GstStaticPadTemplate webm_src_templ = GST_STATIC_PAD_TEMPLATE ("src",
     );
 
 static GstStaticPadTemplate webm_videosink_templ =
-GST_STATIC_PAD_TEMPLATE ("video_%u",
+    GST_STATIC_PAD_TEMPLATE ("video_%u",
     GST_PAD_SINK,
     GST_PAD_REQUEST,
-    GST_STATIC_CAPS ("video/x-vp8, " COMMON_VIDEO_CAPS)
+    GST_STATIC_CAPS ("video/x-vp8, " COMMON_VIDEO_CAPS ";"
+        "video/x-vp9, " COMMON_VIDEO_CAPS)
     );
 
 static GstStaticPadTemplate webm_audiosink_templ =
diff --git a/gst/matroska/webm-mux.h b/gst/matroska/webm-mux.h
index cb007b00c..6fee84463 100644
--- a/gst/matroska/webm-mux.h
+++ b/gst/matroska/webm-mux.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_WEBM_MUX_H__
diff --git a/gst/monoscope/Makefile.in b/gst/monoscope/Makefile.in
index 048d3b03e..2d262f06a 100644
--- a/gst/monoscope/Makefile.in
+++ b/gst/monoscope/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/monoscope
-DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 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-gcc-inline-assembly.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 \
@@ -136,10 +162,23 @@ libgstmonoscope_la_OBJECTS = $(am_libgstmonoscope_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstmonoscope_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstmonoscope_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) \
 	$(libgstmonoscope_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -152,20 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstmonoscope_la_SOURCES)
 DIST_SOURCES = $(libgstmonoscope_la_SOURCES)
 am__can_run_installinfo = \
@@ -174,6 +209,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -342,6 +394,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -543,6 +596,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -569,12 +623,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstmonoscope.la: $(libgstmonoscope_la_OBJECTS) $(libgstmonoscope_la_DEPENDENCIES) $(EXTRA_libgstmonoscope_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstmonoscope_la_LINK) -rpath $(plugindir) $(libgstmonoscope_la_OBJECTS) $(libgstmonoscope_la_LIBADD) $(LIBS)
 
@@ -636,26 +693,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -667,15 +713,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -684,6 +726,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -828,19 +885,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/monoscope/convolve.c b/gst/monoscope/convolve.c
index 584f680da..972753f67 100644
--- a/gst/monoscope/convolve.c
+++ b/gst/monoscope/convolve.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  * 
  * Note: 7th December 2004: This file used to be licensed under the GPL,
diff --git a/gst/monoscope/convolve.h b/gst/monoscope/convolve.h
index dc934ec87..64da74445 100644
--- a/gst/monoscope/convolve.h
+++ b/gst/monoscope/convolve.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  *
  * Note: 7th December 2004: This file used to be licensed under the GPL,
diff --git a/gst/monoscope/gstmonoscope.c b/gst/monoscope/gstmonoscope.c
index 93948f967..4632aa47f 100644
--- a/gst/monoscope/gstmonoscope.c
+++ b/gst/monoscope/gstmonoscope.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -349,7 +349,8 @@ gst_monoscope_chain (GstPad * pad, GstObject * parent, GstBuffer * inbuf)
   if (GST_BUFFER_TIMESTAMP (inbuf) != GST_CLOCK_TIME_NONE)
     monoscope->next_ts = GST_BUFFER_TIMESTAMP (inbuf);
 
-  GST_LOG_OBJECT (monoscope, "in buffer has %d samples, ts=%" GST_TIME_FORMAT,
+  GST_LOG_OBJECT (monoscope,
+      "in buffer has %" G_GSIZE_FORMAT " samples, ts=%" GST_TIME_FORMAT,
       gst_buffer_get_size (inbuf) / monoscope->bps,
       GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (inbuf)));
 
diff --git a/gst/monoscope/gstmonoscope.h b/gst/monoscope/gstmonoscope.h
index e68153c35..b66a6d2f3 100644
--- a/gst/monoscope/gstmonoscope.h
+++ b/gst/monoscope/gstmonoscope.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_MONOSCOPE__
diff --git a/gst/multifile/Makefile.in b/gst/multifile/Makefile.in
index 97494020d..90f79e211 100644
--- a/gst/multifile/Makefile.in
+++ b/gst/multifile/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/multifile
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -141,10 +167,23 @@ libgstmultifile_la_OBJECTS = $(am_libgstmultifile_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstmultifile_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstmultifile_la_CFLAGS) $(CFLAGS) \
 	$(libgstmultifile_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -157,20 +196,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstmultifile_la_SOURCES)
 DIST_SOURCES = $(libgstmultifile_la_SOURCES)
 am__can_run_installinfo = \
@@ -179,6 +214,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -347,6 +399,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -554,6 +607,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -580,12 +634,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstmultifile.la: $(libgstmultifile_la_OBJECTS) $(libgstmultifile_la_DEPENDENCIES) $(EXTRA_libgstmultifile_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstmultifile_la_LINK) -rpath $(plugindir) $(libgstmultifile_la_OBJECTS) $(libgstmultifile_la_LIBADD) $(LIBS)
 
@@ -663,26 +720,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -694,15 +740,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -711,6 +753,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -855,19 +912,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/multifile/gstmultifile.c b/gst/multifile/gstmultifile.c
index 322d3ea4d..e89dadaa6 100644
--- a/gst/multifile/gstmultifile.c
+++ b/gst/multifile/gstmultifile.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/multifile/gstmultifilesink.c b/gst/multifile/gstmultifilesink.c
index 56742c97c..eed57160d 100644
--- a/gst/multifile/gstmultifilesink.c
+++ b/gst/multifile/gstmultifilesink.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-multifilesink
@@ -271,7 +271,6 @@ gst_multi_file_sink_class_init (GstMultiFileSinkClass * klass)
 
   gobject_class->finalize = gst_multi_file_sink_finalize;
 
-  gstbasesink_class->get_times = NULL;
   gstbasesink_class->stop = GST_DEBUG_FUNCPTR (gst_multi_file_sink_stop);
   gstbasesink_class->render = GST_DEBUG_FUNCPTR (gst_multi_file_sink_render);
   gstbasesink_class->render_list =
@@ -586,10 +585,12 @@ gst_multi_file_sink_render (GstBaseSink * sink, GstBuffer * buffer)
       if (multifilesink->file == NULL) {
         if (!gst_multi_file_sink_open_next_file (multifilesink))
           goto stdio_write_error;
-      }
 
-      if (!gst_multi_file_sink_write_stream_headers (multifilesink))
-        goto stdio_write_error;
+        /* we don't need to write stream headers here, they will be inserted in
+         * the stream by upstream elements if key unit events have
+         * all_headers=true set
+         */
+      }
 
       ret = fwrite (map.data, map.size, 1, multifilesink->file);
 
diff --git a/gst/multifile/gstmultifilesink.h b/gst/multifile/gstmultifilesink.h
index dd234d641..22c6d128c 100644
--- a/gst/multifile/gstmultifilesink.h
+++ b/gst/multifile/gstmultifilesink.h
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_MULTIFILESINK_H__
diff --git a/gst/multifile/gstmultifilesrc.c b/gst/multifile/gstmultifilesrc.c
index d384f4de8..63f9583dc 100644
--- a/gst/multifile/gstmultifilesrc.c
+++ b/gst/multifile/gstmultifilesrc.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-multifilesrc
@@ -119,7 +119,7 @@ gst_multi_file_src_class_init (GstMultiFileSrcClass * klass)
           0, INT_MAX, DEFAULT_INDEX,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, ARG_STOP_INDEX,
-      g_param_spec_int ("stop-index", "Start Index",
+      g_param_spec_int ("stop-index", "Stop Index",
           "Stop value of index.  The special value -1 means no stop.",
           -1, INT_MAX, DEFAULT_INDEX,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
@@ -340,6 +340,15 @@ gst_multi_file_src_create (GstPushSrc * src, GstBuffer ** buffer)
   if (multifilesrc->index < multifilesrc->start_index) {
     multifilesrc->index = multifilesrc->start_index;
   }
+
+  if (multifilesrc->stop_index != -1 &&
+      multifilesrc->index > multifilesrc->stop_index) {
+    if (multifilesrc->loop)
+      multifilesrc->index = multifilesrc->start_index;
+    else
+      return GST_FLOW_EOS;
+  }
+
   filename = gst_multi_file_src_get_filename (multifilesrc);
 
   GST_DEBUG_OBJECT (multifilesrc, "reading from file \"%s\".", filename);
@@ -376,10 +385,6 @@ gst_multi_file_src_create (GstPushSrc * src, GstBuffer ** buffer)
 
   multifilesrc->successful_read = TRUE;
   multifilesrc->index++;
-  if (multifilesrc->stop_index != -1 &&
-      multifilesrc->index >= multifilesrc->stop_index) {
-    multifilesrc->index = multifilesrc->start_index;
-  }
 
   buf = gst_buffer_new ();
   gst_buffer_append_memory (buf,
diff --git a/gst/multifile/gstmultifilesrc.h b/gst/multifile/gstmultifilesrc.h
index 57ed03808..ac43fe989 100644
--- a/gst/multifile/gstmultifilesrc.h
+++ b/gst/multifile/gstmultifilesrc.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_MULTIFILESRC_H__
diff --git a/gst/multifile/gstsplitfilesrc.c b/gst/multifile/gstsplitfilesrc.c
index 56def5cd4..f0bc980bc 100644
--- a/gst/multifile/gstsplitfilesrc.c
+++ b/gst/multifile/gstsplitfilesrc.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-splitfilesrc
diff --git a/gst/multifile/gstsplitfilesrc.h b/gst/multifile/gstsplitfilesrc.h
index f52b3bf2a..80abdd3f1 100644
--- a/gst/multifile/gstsplitfilesrc.h
+++ b/gst/multifile/gstsplitfilesrc.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef __GST_SPLIT_FILE_SRC_H__
 #define __GST_SPLIT_FILE_SRC_H__
diff --git a/gst/multifile/patternspec.c b/gst/multifile/patternspec.c
index 59de8d1ff..848aaba2d 100644
--- a/gst/multifile/patternspec.c
+++ b/gst/multifile/patternspec.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
diff --git a/gst/multifile/patternspec.h b/gst/multifile/patternspec.h
index c3e943638..5bb9b403c 100644
--- a/gst/multifile/patternspec.h
+++ b/gst/multifile/patternspec.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Lesser 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __PATTERN_SPEC_H__
diff --git a/gst/multipart/Makefile.in b/gst/multipart/Makefile.in
index 5f66dc570..95b069b42 100644
--- a/gst/multipart/Makefile.in
+++ b/gst/multipart/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/multipart
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -137,10 +163,23 @@ libgstmultipart_la_OBJECTS = $(am_libgstmultipart_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstmultipart_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstmultipart_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstmultipart_la_CFLAGS) $(CFLAGS) \
 	$(libgstmultipart_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -153,20 +192,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstmultipart_la_SOURCES)
 DIST_SOURCES = $(libgstmultipart_la_SOURCES)
 am__can_run_installinfo = \
@@ -175,6 +210,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -343,6 +395,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -544,6 +597,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -570,12 +624,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstmultipart.la: $(libgstmultipart_la_OBJECTS) $(libgstmultipart_la_DEPENDENCIES) $(EXTRA_libgstmultipart_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstmultipart_la_LINK) -rpath $(plugindir) $(libgstmultipart_la_OBJECTS) $(libgstmultipart_la_LIBADD) $(LIBS)
 
@@ -637,26 +694,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -668,15 +714,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -685,6 +727,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -829,19 +886,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/multipart/multipart.c b/gst/multipart/multipart.c
index be14d4aba..30f10626b 100644
--- a/gst/multipart/multipart.c
+++ b/gst/multipart/multipart.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/multipart/multipartdemux.c b/gst/multipart/multipartdemux.c
index e8dcd30c1..4889e45c4 100644
--- a/gst/multipart/multipartdemux.c
+++ b/gst/multipart/multipartdemux.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -40,7 +40,7 @@
  * <refsect2>
  * <title>Sample pipelines</title>
  * |[
- * gst-launch-1.0 filesrc location=/tmp/test.multipart ! multipartdemux ! jpegdec ! videoconvert ! ximagesink
+ * gst-launch-1.0 filesrc location=/tmp/test.multipart ! multipartdemux ! image/jpeg,framerate=\(fraction\)5/1 ! jpegparse ! jpegdec ! videoconvert ! autovideosink
  * ]| a simple pipeline to demux a multipart file muxed with #GstMultipartMux
  * containing JPEG frames.
  * </refsect2>
diff --git a/gst/multipart/multipartdemux.h b/gst/multipart/multipartdemux.h
index 48e901b00..f4ac4e2e1 100644
--- a/gst/multipart/multipartdemux.h
+++ b/gst/multipart/multipartdemux.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_MULTIPART_DEMUX__
diff --git a/gst/multipart/multipartmux.c b/gst/multipart/multipartmux.c
index a709f7dfa..681429387 100644
--- a/gst/multipart/multipartmux.c
+++ b/gst/multipart/multipartmux.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -85,6 +85,8 @@ static GstPad *gst_multipart_mux_request_new_pad (GstElement * element,
 static GstStateChangeReturn gst_multipart_mux_change_state (GstElement *
     element, GstStateChange transition);
 
+static gboolean gst_multipart_mux_sink_event (GstCollectPads * pads,
+    GstCollectData * pad, GstEvent * event, GstMultipartMux * mux);
 static GstFlowReturn gst_multipart_mux_collected (GstCollectPads * pads,
     GstMultipartMux * mux);
 
@@ -150,6 +152,9 @@ gst_multipart_mux_init (GstMultipartMux * multipart_mux)
   multipart_mux->boundary = g_strdup (DEFAULT_BOUNDARY);
 
   multipart_mux->collect = gst_collect_pads_new ();
+  gst_collect_pads_set_event_function (multipart_mux->collect,
+      (GstCollectPadsEventFunction) GST_DEBUG_FUNCPTR (gst_multipart_mux_sink_event),
+      multipart_mux);
   gst_collect_pads_set_function (multipart_mux->collect,
       (GstCollectPadsFunction) GST_DEBUG_FUNCPTR (gst_multipart_mux_collected),
       multipart_mux);
@@ -376,6 +381,27 @@ gst_multipart_mux_queue_pads (GstMultipartMux * mux)
   return bestpad;
 }
 
+static gboolean
+gst_multipart_mux_sink_event (GstCollectPads * pads, GstCollectData * data,
+    GstEvent * event, GstMultipartMux * mux)
+{
+  gboolean ret;
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_FLUSH_STOP:
+    {
+      mux->need_segment = TRUE;
+      break;
+    }
+    default:
+      break;
+  }
+
+  ret = gst_collect_pads_event_default (pads, data, event, FALSE);
+
+  return ret;
+}
+
 /* basic idea:
  *
  * 1) find a pad to pull on, this is done by pulling on all pads and
diff --git a/gst/multipart/multipartmux.h b/gst/multipart/multipartmux.h
index 7a171898d..f66d35e93 100644
--- a/gst/multipart/multipartmux.h
+++ b/gst/multipart/multipartmux.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_MULTIPART_MUX__
diff --git a/gst/replaygain/Makefile.in b/gst/replaygain/Makefile.in
index 327cb32e4..3bdb56483 100644
--- a/gst/replaygain/Makefile.in
+++ b/gst/replaygain/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/replaygain
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -140,10 +166,23 @@ libgstreplaygain_la_OBJECTS = $(am_libgstreplaygain_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstreplaygain_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) \
 	$(libgstreplaygain_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -156,20 +195,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstreplaygain_la_SOURCES)
 DIST_SOURCES = $(libgstreplaygain_la_SOURCES)
 am__can_run_installinfo = \
@@ -178,6 +213,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -346,6 +398,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -566,6 +619,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -592,12 +646,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstreplaygain.la: $(libgstreplaygain_la_OBJECTS) $(libgstreplaygain_la_DEPENDENCIES) $(EXTRA_libgstreplaygain_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstreplaygain_la_LINK) -rpath $(plugindir) $(libgstreplaygain_la_OBJECTS) $(libgstreplaygain_la_LIBADD) $(LIBS)
 
@@ -675,26 +732,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -706,15 +752,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -723,6 +765,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -867,19 +924,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/replaygain/gstrgvolume.c b/gst/replaygain/gstrgvolume.c
index c41684d4f..05c21e0de 100644
--- a/gst/replaygain/gstrgvolume.c
+++ b/gst/replaygain/gstrgvolume.c
@@ -448,12 +448,10 @@ static gboolean
 gst_rg_volume_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   GstRgVolume *self;
-  GstPad *volume_sink_pad;
   GstEvent *send_event = event;
   gboolean res;
 
   self = GST_RG_VOLUME (parent);
-  volume_sink_pad = gst_ghost_pad_get_target (GST_GHOST_PAD (pad));
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_TAG:
@@ -477,12 +475,10 @@ gst_rg_volume_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
   }
 
   if (G_LIKELY (send_event != NULL))
-    res = gst_pad_send_event (volume_sink_pad, send_event);
+    res = gst_pad_event_default (pad, parent, send_event);
   else
     res = TRUE;
 
-  gst_object_unref (volume_sink_pad);
-
   return res;
 }
 
diff --git a/gst/rtp/Makefile.am b/gst/rtp/Makefile.am
index 1d9d8df44..6c1d6b8ec 100644
--- a/gst/rtp/Makefile.am
+++ b/gst/rtp/Makefile.am
@@ -1,6 +1,7 @@
 plugin_LTLIBRARIES = libgstrtp.la
 
 libgstrtp_la_SOURCES = \
+	dboolhuff.c \
 	fnv1hash.c \
 	gstrtp.c \
 	gstrtpchannels.c \
@@ -61,6 +62,8 @@ libgstrtp_la_SOURCES = \
 	gstrtpmp4apay.c \
 	gstrtpqcelpdepay.c \
 	gstrtpqdmdepay.c \
+	gstrtpsbcdepay.c \
+	gstrtpsbcpay.c \
 	gstrtpsirenpay.c \
 	gstrtpsirendepay.c \
 	gstrtpspeexdepay.c \
@@ -70,92 +73,105 @@ libgstrtp_la_SOURCES = \
 	gstrtptheorapay.c \
 	gstrtpvorbisdepay.c \
 	gstrtpvorbispay.c  \
+	gstrtpvp8depay.c \
+	gstrtpvp8pay.c \
 	gstrtpvrawdepay.c  \
 	gstrtpvrawpay.c 
 
-libgstrtp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
+libgstrtp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \
+	$(GST_CFLAGS) -Dvp8_norm=gst_rtpvp8_vp8_norm \
+	-Dvp8dx_start_decode=gst_rtpvp8_vp8dx_start_decode \
+	-Dvp8dx_bool_decoder_fill=gst_rtpvp8_vp8dx_bool_decoder_fill
+
 libgstrtp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
-		-lgstaudio-@GST_API_VERSION@ \
-		-lgstvideo-@GST_API_VERSION@ \
-                -lgsttag-@GST_API_VERSION@ \
-                -lgstrtp-@GST_API_VERSION@ \
-                -lgstpbutils-@GST_API_VERSION@ \
-		$(GST_BASE_LIBS) $(GST_LIBS) \
-		$(LIBM)
+	-lgstaudio-@GST_API_VERSION@ \
+	-lgstvideo-@GST_API_VERSION@ \
+	-lgsttag-@GST_API_VERSION@ \
+	-lgstrtp-@GST_API_VERSION@ \
+	-lgstpbutils-@GST_API_VERSION@ \
+	$(GST_BASE_LIBS) $(GST_LIBS) \
+	$(LIBM)
 libgstrtp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) 
 libgstrtp_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS =			\
-		 fnv1hash.h 		\
-                 gstrtpchannels.h       \
-		 gstrtpL16depay.h 	\
-		 gstrtpL16pay.h 	\
-		 gstrtpac3depay.h 	\
-		 gstrtpac3pay.h 	\
-		 gstrtpbvdepay.h 	\
-		 gstrtpbvpay.h 	        \
-		 gstrtpceltpay.h	\
-		 gstrtpceltdepay.h	\
-		 gstrtpdvdepay.h 	\
-		 gstrtpdvpay.h 	        \
-		 gstrtpamrdepay.h 	\
-		 gstrtpamrpay.h 	\
-		 gstrtpgstdepay.h 	\
-		 gstrtpgstpay.h 	\
-		 gstrtpilbcdepay.h      \
-		 gstrtpilbcpay.h        \
-		 gstrtppcmadepay.h	\
-		 gstrtppcmudepay.h	\
-		 gstrtppcmupay.h 	\
-		 gstrtppcmapay.h 	\
-	         gstrtpg722depay.h      \
-	         gstrtpg722pay.h        \
-	         gstrtpg723depay.h      \
-	         gstrtpg723pay.h        \
-	         gstrtpg726depay.h      \
-	         gstrtpg726pay.h        \
-	         gstrtpg729depay.h      \
-	         gstrtpg729pay.h        \
-		 gstrtpgsmdepay.h 	\
-		 gstrtpgsmpay.h 	\
-		 gstrtpmpadepay.h 	\
-		 gstrtpmparobustdepay.h 	\
-		 gstrtpmpapay.h 	\
-		 gstrtpmpvdepay.h \
-		 gstrtpmpvpay.h \
-		 gstrtph263pdepay.h 	\
-		 gstrtph263ppay.h 	\
-		 gstrtph263depay.h 	\
-		 gstrtph263pay.h 	\
-		 gstrtph264depay.h 	\
-		 gstrtph264pay.h 	\
-		 gstrtpj2kdepay.h 	\
-		 gstrtpj2kpay.h 	\
-		 gstrtpjpegdepay.h 	\
-		 gstrtpjpegpay.h 	\
-		 gstrtpmp1sdepay.h 	\
-		 gstrtpmp2tdepay.h 	\
-		 gstrtpmp2tpay.h 	\
-		 gstrtpmp4vdepay.h	\
-		 gstrtpmp4vpay.h	\
-		 gstrtpmp4gdepay.h 	\
-		 gstrtpmp4gpay.h	\
-		 gstrtpmp4adepay.h      \
-		 gstrtpmp4apay.h        \
-		 gstasteriskh263.h	\
-		 gstrtpqcelpdepay.h	\
-		 gstrtpqdmdepay.h	\
-		 gstrtpsirenpay.h 	\
-		 gstrtpsirendepay.h 	\
-		 gstrtpspeexdepay.h	\
-		 gstrtpspeexpay.h	\
-		 gstrtpsv3vdepay.h	\
-	 	 gstrtptheoradepay.h    \
-	 	 gstrtptheorapay.h      \
-	 	 gstrtpvorbisdepay.h    \
-	 	 gstrtpvorbispay.h      \
-	 	 gstrtpvrawdepay.h      \
-	 	 gstrtpvrawpay.h
+	dboolhuff.h \
+	fnv1hash.h \
+	gstrtpchannels.h \
+	gstrtpL16depay.h \
+	gstrtpL16pay.h \
+	gstrtpac3depay.h \
+	gstrtpac3pay.h \
+	gstrtpbvdepay.h \
+	gstrtpbvpay.h \
+	gstrtpceltpay.h	\
+	gstrtpceltdepay.h \
+	gstrtpdvdepay.h \
+	gstrtpdvpay.h \
+	gstrtpamrdepay.h \
+	gstrtpamrpay.h 	\
+	gstrtpgstdepay.h \
+	gstrtpgstpay.h 	\
+	gstrtpilbcdepay.h \
+	gstrtpilbcpay.h \
+	gstrtppcmadepay.h \
+	gstrtppcmudepay.h \
+	gstrtppcmupay.h \
+	gstrtppcmapay.h \
+	gstrtpg722depay.h \
+	gstrtpg722pay.h \
+	gstrtpg723depay.h\
+	gstrtpg723pay.h \
+	gstrtpg726depay.h \
+	gstrtpg726pay.h \
+	gstrtpg729depay.h \
+	gstrtpg729pay.h \
+	gstrtpgsmdepay.h \
+	gstrtpgsmpay.h 	\
+	gstrtpmpadepay.h \
+	gstrtpmparobustdepay.h \
+	gstrtpmpapay.h \
+	gstrtpmpvdepay.h \
+	gstrtpmpvpay.h \
+	gstrtph263pdepay.h \
+	gstrtph263ppay.h \
+	gstrtph263depay.h \
+	gstrtph263pay.h \
+	gstrtph264depay.h \
+	gstrtph264pay.h \
+	gstrtpj2kdepay.h \
+	gstrtpj2kpay.h \
+	gstrtpjpegdepay.h \
+	gstrtpjpegpay.h \
+	gstrtpmp1sdepay.h \
+	gstrtpmp2tdepay.h \
+	gstrtpmp2tpay.h \
+	gstrtpmp4vdepay.h \
+	gstrtpmp4vpay.h	\
+	gstrtpmp4gdepay.h \
+	gstrtpmp4gpay.h	\
+	gstrtpmp4adepay.h \
+	gstrtpmp4apay.h \
+	gstasteriskh263.h \
+	gstrtpqcelpdepay.h \
+	gstrtpqdmdepay.h \
+	gstrtpsbcdepay.h \
+	gstrtpsbcpay.h \
+	gstrtpsirenpay.h \
+	gstrtpsirendepay.h \
+	gstrtpspeexdepay.h \
+	gstrtpspeexpay.h \
+	gstrtpsv3vdepay.h \
+	gstrtptheoradepay.h \
+	gstrtptheorapay.h \
+	gstrtpvorbisdepay.h \
+	gstrtpvorbispay.h \
+	gstrtpvp8depay.h \
+	gstrtpvp8pay.h \
+	gstrtpvrawdepay.h \
+	gstrtpvrawpay.h
+
+EXTRA_DIST = dboolhuff.LICENSE
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
 	androgenizer \
@@ -165,8 +181,8 @@ Android.mk: Makefile.am $(BUILT_SOURCES)
 	 -:SOURCES $(libgstrtp_la_SOURCES) \
 	 -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstrtp_la_CFLAGS) \
 	 -:LDFLAGS $(libgstrtp_la_LDFLAGS) \
-	           $(libgstrtp_la_LIBADD) \
-	           -ldl \
+	  $(libgstrtp_la_LIBADD) \
+	  -ldl \
 	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-		       LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \
+	      LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \
 	> $@
diff --git a/gst/rtp/Makefile.in b/gst/rtp/Makefile.in
index b62d6694e..7491d01d7 100644
--- a/gst/rtp/Makefile.in
+++ b/gst/rtp/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/rtp
-DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in TODO
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS) README TODO
 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-gcc-inline-assembly.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 \
@@ -131,15 +157,16 @@ am__DEPENDENCIES_1 =
 libgstrtp_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
-am_libgstrtp_la_OBJECTS = libgstrtp_la-fnv1hash.lo \
-	libgstrtp_la-gstrtp.lo libgstrtp_la-gstrtpchannels.lo \
-	libgstrtp_la-gstrtpac3depay.lo libgstrtp_la-gstrtpac3pay.lo \
-	libgstrtp_la-gstrtpbvdepay.lo libgstrtp_la-gstrtpbvpay.lo \
-	libgstrtp_la-gstrtpceltdepay.lo libgstrtp_la-gstrtpceltpay.lo \
-	libgstrtp_la-gstrtpdvdepay.lo libgstrtp_la-gstrtpdvpay.lo \
-	libgstrtp_la-gstrtpgstdepay.lo libgstrtp_la-gstrtpgstpay.lo \
-	libgstrtp_la-gstrtpilbcdepay.lo libgstrtp_la-gstrtpilbcpay.lo \
-	libgstrtp_la-gstrtpmpadepay.lo libgstrtp_la-gstrtpmpapay.lo \
+am_libgstrtp_la_OBJECTS = libgstrtp_la-dboolhuff.lo \
+	libgstrtp_la-fnv1hash.lo libgstrtp_la-gstrtp.lo \
+	libgstrtp_la-gstrtpchannels.lo libgstrtp_la-gstrtpac3depay.lo \
+	libgstrtp_la-gstrtpac3pay.lo libgstrtp_la-gstrtpbvdepay.lo \
+	libgstrtp_la-gstrtpbvpay.lo libgstrtp_la-gstrtpceltdepay.lo \
+	libgstrtp_la-gstrtpceltpay.lo libgstrtp_la-gstrtpdvdepay.lo \
+	libgstrtp_la-gstrtpdvpay.lo libgstrtp_la-gstrtpgstdepay.lo \
+	libgstrtp_la-gstrtpgstpay.lo libgstrtp_la-gstrtpilbcdepay.lo \
+	libgstrtp_la-gstrtpilbcpay.lo libgstrtp_la-gstrtpmpadepay.lo \
+	libgstrtp_la-gstrtpmpapay.lo \
 	libgstrtp_la-gstrtpmparobustdepay.lo \
 	libgstrtp_la-gstrtpmpvdepay.lo libgstrtp_la-gstrtpmpvpay.lo \
 	libgstrtp_la-gstrtppcmadepay.lo \
@@ -163,23 +190,38 @@ am_libgstrtp_la_OBJECTS = libgstrtp_la-fnv1hash.lo \
 	libgstrtp_la-gstrtpmp4gdepay.lo libgstrtp_la-gstrtpmp4gpay.lo \
 	libgstrtp_la-gstrtpmp4adepay.lo libgstrtp_la-gstrtpmp4apay.lo \
 	libgstrtp_la-gstrtpqcelpdepay.lo \
-	libgstrtp_la-gstrtpqdmdepay.lo libgstrtp_la-gstrtpsirenpay.lo \
+	libgstrtp_la-gstrtpqdmdepay.lo libgstrtp_la-gstrtpsbcdepay.lo \
+	libgstrtp_la-gstrtpsbcpay.lo libgstrtp_la-gstrtpsirenpay.lo \
 	libgstrtp_la-gstrtpsirendepay.lo \
 	libgstrtp_la-gstrtpspeexdepay.lo \
 	libgstrtp_la-gstrtpspeexpay.lo libgstrtp_la-gstrtpsv3vdepay.lo \
 	libgstrtp_la-gstrtptheoradepay.lo \
 	libgstrtp_la-gstrtptheorapay.lo \
 	libgstrtp_la-gstrtpvorbisdepay.lo \
-	libgstrtp_la-gstrtpvorbispay.lo \
-	libgstrtp_la-gstrtpvrawdepay.lo libgstrtp_la-gstrtpvrawpay.lo
+	libgstrtp_la-gstrtpvorbispay.lo libgstrtp_la-gstrtpvp8depay.lo \
+	libgstrtp_la-gstrtpvp8pay.lo libgstrtp_la-gstrtpvrawdepay.lo \
+	libgstrtp_la-gstrtpvrawpay.lo
 libgstrtp_la_OBJECTS = $(am_libgstrtp_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstrtp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstrtp_la_CFLAGS) $(CFLAGS) \
 	$(libgstrtp_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -192,20 +234,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstrtp_la_SOURCES)
 DIST_SOURCES = $(libgstrtp_la_SOURCES)
 am__can_run_installinfo = \
@@ -214,6 +252,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -382,6 +437,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -544,6 +600,7 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 plugin_LTLIBRARIES = libgstrtp.la
 libgstrtp_la_SOURCES = \
+	dboolhuff.c \
 	fnv1hash.c \
 	gstrtp.c \
 	gstrtpchannels.c \
@@ -604,6 +661,8 @@ libgstrtp_la_SOURCES = \
 	gstrtpmp4apay.c \
 	gstrtpqcelpdepay.c \
 	gstrtpqdmdepay.c \
+	gstrtpsbcdepay.c \
+	gstrtpsbcpay.c \
 	gstrtpsirenpay.c \
 	gstrtpsirendepay.c \
 	gstrtpspeexdepay.c \
@@ -613,93 +672,105 @@ libgstrtp_la_SOURCES = \
 	gstrtptheorapay.c \
 	gstrtpvorbisdepay.c \
 	gstrtpvorbispay.c  \
+	gstrtpvp8depay.c \
+	gstrtpvp8pay.c \
 	gstrtpvrawdepay.c  \
 	gstrtpvrawpay.c 
 
-libgstrtp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
+libgstrtp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \
+	$(GST_CFLAGS) -Dvp8_norm=gst_rtpvp8_vp8_norm \
+	-Dvp8dx_start_decode=gst_rtpvp8_vp8dx_start_decode \
+	-Dvp8dx_bool_decoder_fill=gst_rtpvp8_vp8dx_bool_decoder_fill
+
 libgstrtp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
-		-lgstaudio-@GST_API_VERSION@ \
-		-lgstvideo-@GST_API_VERSION@ \
-                -lgsttag-@GST_API_VERSION@ \
-                -lgstrtp-@GST_API_VERSION@ \
-                -lgstpbutils-@GST_API_VERSION@ \
-		$(GST_BASE_LIBS) $(GST_LIBS) \
-		$(LIBM)
+	-lgstaudio-@GST_API_VERSION@ \
+	-lgstvideo-@GST_API_VERSION@ \
+	-lgsttag-@GST_API_VERSION@ \
+	-lgstrtp-@GST_API_VERSION@ \
+	-lgstpbutils-@GST_API_VERSION@ \
+	$(GST_BASE_LIBS) $(GST_LIBS) \
+	$(LIBM)
 
 libgstrtp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) 
 libgstrtp_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = \
-		 fnv1hash.h 		\
-                 gstrtpchannels.h       \
-		 gstrtpL16depay.h 	\
-		 gstrtpL16pay.h 	\
-		 gstrtpac3depay.h 	\
-		 gstrtpac3pay.h 	\
-		 gstrtpbvdepay.h 	\
-		 gstrtpbvpay.h 	        \
-		 gstrtpceltpay.h	\
-		 gstrtpceltdepay.h	\
-		 gstrtpdvdepay.h 	\
-		 gstrtpdvpay.h 	        \
-		 gstrtpamrdepay.h 	\
-		 gstrtpamrpay.h 	\
-		 gstrtpgstdepay.h 	\
-		 gstrtpgstpay.h 	\
-		 gstrtpilbcdepay.h      \
-		 gstrtpilbcpay.h        \
-		 gstrtppcmadepay.h	\
-		 gstrtppcmudepay.h	\
-		 gstrtppcmupay.h 	\
-		 gstrtppcmapay.h 	\
-	         gstrtpg722depay.h      \
-	         gstrtpg722pay.h        \
-	         gstrtpg723depay.h      \
-	         gstrtpg723pay.h        \
-	         gstrtpg726depay.h      \
-	         gstrtpg726pay.h        \
-	         gstrtpg729depay.h      \
-	         gstrtpg729pay.h        \
-		 gstrtpgsmdepay.h 	\
-		 gstrtpgsmpay.h 	\
-		 gstrtpmpadepay.h 	\
-		 gstrtpmparobustdepay.h 	\
-		 gstrtpmpapay.h 	\
-		 gstrtpmpvdepay.h \
-		 gstrtpmpvpay.h \
-		 gstrtph263pdepay.h 	\
-		 gstrtph263ppay.h 	\
-		 gstrtph263depay.h 	\
-		 gstrtph263pay.h 	\
-		 gstrtph264depay.h 	\
-		 gstrtph264pay.h 	\
-		 gstrtpj2kdepay.h 	\
-		 gstrtpj2kpay.h 	\
-		 gstrtpjpegdepay.h 	\
-		 gstrtpjpegpay.h 	\
-		 gstrtpmp1sdepay.h 	\
-		 gstrtpmp2tdepay.h 	\
-		 gstrtpmp2tpay.h 	\
-		 gstrtpmp4vdepay.h	\
-		 gstrtpmp4vpay.h	\
-		 gstrtpmp4gdepay.h 	\
-		 gstrtpmp4gpay.h	\
-		 gstrtpmp4adepay.h      \
-		 gstrtpmp4apay.h        \
-		 gstasteriskh263.h	\
-		 gstrtpqcelpdepay.h	\
-		 gstrtpqdmdepay.h	\
-		 gstrtpsirenpay.h 	\
-		 gstrtpsirendepay.h 	\
-		 gstrtpspeexdepay.h	\
-		 gstrtpspeexpay.h	\
-		 gstrtpsv3vdepay.h	\
-	 	 gstrtptheoradepay.h    \
-	 	 gstrtptheorapay.h      \
-	 	 gstrtpvorbisdepay.h    \
-	 	 gstrtpvorbispay.h      \
-	 	 gstrtpvrawdepay.h      \
-	 	 gstrtpvrawpay.h
-
+	dboolhuff.h \
+	fnv1hash.h \
+	gstrtpchannels.h \
+	gstrtpL16depay.h \
+	gstrtpL16pay.h \
+	gstrtpac3depay.h \
+	gstrtpac3pay.h \
+	gstrtpbvdepay.h \
+	gstrtpbvpay.h \
+	gstrtpceltpay.h	\
+	gstrtpceltdepay.h \
+	gstrtpdvdepay.h \
+	gstrtpdvpay.h \
+	gstrtpamrdepay.h \
+	gstrtpamrpay.h 	\
+	gstrtpgstdepay.h \
+	gstrtpgstpay.h 	\
+	gstrtpilbcdepay.h \
+	gstrtpilbcpay.h \
+	gstrtppcmadepay.h \
+	gstrtppcmudepay.h \
+	gstrtppcmupay.h \
+	gstrtppcmapay.h \
+	gstrtpg722depay.h \
+	gstrtpg722pay.h \
+	gstrtpg723depay.h\
+	gstrtpg723pay.h \
+	gstrtpg726depay.h \
+	gstrtpg726pay.h \
+	gstrtpg729depay.h \
+	gstrtpg729pay.h \
+	gstrtpgsmdepay.h \
+	gstrtpgsmpay.h 	\
+	gstrtpmpadepay.h \
+	gstrtpmparobustdepay.h \
+	gstrtpmpapay.h \
+	gstrtpmpvdepay.h \
+	gstrtpmpvpay.h \
+	gstrtph263pdepay.h \
+	gstrtph263ppay.h \
+	gstrtph263depay.h \
+	gstrtph263pay.h \
+	gstrtph264depay.h \
+	gstrtph264pay.h \
+	gstrtpj2kdepay.h \
+	gstrtpj2kpay.h \
+	gstrtpjpegdepay.h \
+	gstrtpjpegpay.h \
+	gstrtpmp1sdepay.h \
+	gstrtpmp2tdepay.h \
+	gstrtpmp2tpay.h \
+	gstrtpmp4vdepay.h \
+	gstrtpmp4vpay.h	\
+	gstrtpmp4gdepay.h \
+	gstrtpmp4gpay.h	\
+	gstrtpmp4adepay.h \
+	gstrtpmp4apay.h \
+	gstasteriskh263.h \
+	gstrtpqcelpdepay.h \
+	gstrtpqdmdepay.h \
+	gstrtpsbcdepay.h \
+	gstrtpsbcpay.h \
+	gstrtpsirenpay.h \
+	gstrtpsirendepay.h \
+	gstrtpspeexdepay.h \
+	gstrtpspeexpay.h \
+	gstrtpsv3vdepay.h \
+	gstrtptheoradepay.h \
+	gstrtptheorapay.h \
+	gstrtpvorbisdepay.h \
+	gstrtpvorbispay.h \
+	gstrtpvp8depay.h \
+	gstrtpvp8pay.h \
+	gstrtpvrawdepay.h \
+	gstrtpvrawpay.h
+
+EXTRA_DIST = dboolhuff.LICENSE
 all: all-am
 
 .SUFFIXES:
@@ -734,6 +805,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -760,12 +832,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstrtp.la: $(libgstrtp_la_OBJECTS) $(libgstrtp_la_DEPENDENCIES) $(EXTRA_libgstrtp_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstrtp_la_LINK) -rpath $(plugindir) $(libgstrtp_la_OBJECTS) $(libgstrtp_la_LIBADD) $(LIBS)
 
@@ -775,6 +850,7 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-dboolhuff.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-fnv1hash.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstasteriskh263.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtp.Plo@am__quote@
@@ -835,6 +911,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtppcmupay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpqcelpdepay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpqdmdepay.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpsbcdepay.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpsbcpay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpsirendepay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpsirenpay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpspeexdepay.Plo@am__quote@
@@ -844,6 +922,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtptheorapay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpvorbisdepay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpvorbispay.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpvp8depay.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpvp8pay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpvrawdepay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpvrawpay.Plo@am__quote@
 
@@ -868,6 +948,13 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
+libgstrtp_la-dboolhuff.lo: dboolhuff.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-dboolhuff.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-dboolhuff.Tpo -c -o libgstrtp_la-dboolhuff.lo `test -f 'dboolhuff.c' || echo '$(srcdir)/'`dboolhuff.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-dboolhuff.Tpo $(DEPDIR)/libgstrtp_la-dboolhuff.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='dboolhuff.c' object='libgstrtp_la-dboolhuff.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 $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-dboolhuff.lo `test -f 'dboolhuff.c' || echo '$(srcdir)/'`dboolhuff.c
+
 libgstrtp_la-fnv1hash.lo: fnv1hash.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-fnv1hash.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-fnv1hash.Tpo -c -o libgstrtp_la-fnv1hash.lo `test -f 'fnv1hash.c' || echo '$(srcdir)/'`fnv1hash.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-fnv1hash.Tpo $(DEPDIR)/libgstrtp_la-fnv1hash.Plo
@@ -1288,6 +1375,20 @@ libgstrtp_la-gstrtpqdmdepay.lo: gstrtpqdmdepay.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpqdmdepay.lo `test -f 'gstrtpqdmdepay.c' || echo '$(srcdir)/'`gstrtpqdmdepay.c
 
+libgstrtp_la-gstrtpsbcdepay.lo: gstrtpsbcdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpsbcdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpsbcdepay.Tpo -c -o libgstrtp_la-gstrtpsbcdepay.lo `test -f 'gstrtpsbcdepay.c' || echo '$(srcdir)/'`gstrtpsbcdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpsbcdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpsbcdepay.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpsbcdepay.c' object='libgstrtp_la-gstrtpsbcdepay.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 $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpsbcdepay.lo `test -f 'gstrtpsbcdepay.c' || echo '$(srcdir)/'`gstrtpsbcdepay.c
+
+libgstrtp_la-gstrtpsbcpay.lo: gstrtpsbcpay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpsbcpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpsbcpay.Tpo -c -o libgstrtp_la-gstrtpsbcpay.lo `test -f 'gstrtpsbcpay.c' || echo '$(srcdir)/'`gstrtpsbcpay.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpsbcpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpsbcpay.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpsbcpay.c' object='libgstrtp_la-gstrtpsbcpay.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 $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpsbcpay.lo `test -f 'gstrtpsbcpay.c' || echo '$(srcdir)/'`gstrtpsbcpay.c
+
 libgstrtp_la-gstrtpsirenpay.lo: gstrtpsirenpay.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpsirenpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpsirenpay.Tpo -c -o libgstrtp_la-gstrtpsirenpay.lo `test -f 'gstrtpsirenpay.c' || echo '$(srcdir)/'`gstrtpsirenpay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpsirenpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpsirenpay.Plo
@@ -1351,6 +1452,20 @@ libgstrtp_la-gstrtpvorbispay.lo: gstrtpvorbispay.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvorbispay.lo `test -f 'gstrtpvorbispay.c' || echo '$(srcdir)/'`gstrtpvorbispay.c
 
+libgstrtp_la-gstrtpvp8depay.lo: gstrtpvp8depay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpvp8depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvp8depay.Tpo -c -o libgstrtp_la-gstrtpvp8depay.lo `test -f 'gstrtpvp8depay.c' || echo '$(srcdir)/'`gstrtpvp8depay.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpvp8depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpvp8depay.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpvp8depay.c' object='libgstrtp_la-gstrtpvp8depay.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 $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvp8depay.lo `test -f 'gstrtpvp8depay.c' || echo '$(srcdir)/'`gstrtpvp8depay.c
+
+libgstrtp_la-gstrtpvp8pay.lo: gstrtpvp8pay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpvp8pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvp8pay.Tpo -c -o libgstrtp_la-gstrtpvp8pay.lo `test -f 'gstrtpvp8pay.c' || echo '$(srcdir)/'`gstrtpvp8pay.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpvp8pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpvp8pay.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpvp8pay.c' object='libgstrtp_la-gstrtpvp8pay.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 $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvp8pay.lo `test -f 'gstrtpvp8pay.c' || echo '$(srcdir)/'`gstrtpvp8pay.c
+
 libgstrtp_la-gstrtpvrawdepay.lo: gstrtpvrawdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpvrawdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvrawdepay.Tpo -c -o libgstrtp_la-gstrtpvrawdepay.lo `test -f 'gstrtpvrawdepay.c' || echo '$(srcdir)/'`gstrtpvrawdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpvrawdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpvrawdepay.Plo
@@ -1371,26 +1486,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -1402,15 +1506,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -1419,6 +1519,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -1563,19 +1678,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
@@ -1586,10 +1702,10 @@ Android.mk: Makefile.am $(BUILT_SOURCES)
 	 -:SOURCES $(libgstrtp_la_SOURCES) \
 	 -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstrtp_la_CFLAGS) \
 	 -:LDFLAGS $(libgstrtp_la_LDFLAGS) \
-	           $(libgstrtp_la_LIBADD) \
-	           -ldl \
+	  $(libgstrtp_la_LIBADD) \
+	  -ldl \
 	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-		       LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \
+	      LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \
 	> $@
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/gst/rtp/README b/gst/rtp/README
index 97afe6b28..94549d703 100644
--- a/gst/rtp/README
+++ b/gst/rtp/README
@@ -343,7 +343,7 @@ Some gst-launch-1.0 lines:
  
  Even when sync is enabled, the two different streams will not play synchronised
  against eachother because the receiver does not have enough information to
- perform this task. For this you need to add the gstrtpbin element in both the
+ perform this task. For this you need to add the rtpbin element in both the
  sender and receiver pipeline and use additional sources and sinks to transmit
  RTCP packets used for inter-stream synchronisation.
 
diff --git a/gst/rtp/dboolhuff.LICENSE b/gst/rtp/dboolhuff.LICENSE
new file mode 100644
index 000000000..83e4e6f6d
--- /dev/null
+++ b/gst/rtp/dboolhuff.LICENSE
@@ -0,0 +1,29 @@
+Copyright (c) 2010, Google Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+  * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+  * 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.
+
+  * Neither the name of Google nor the names of its contributors may
+    be used to endorse or promote products derived from this software
+    without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"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 COPYRIGHT
+HOLDER OR CONTRIBUTORS 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.
diff --git a/gst/rtp/dboolhuff.c b/gst/rtp/dboolhuff.c
new file mode 100644
index 000000000..0e1fd6e2f
--- /dev/null
+++ b/gst/rtp/dboolhuff.c
@@ -0,0 +1,68 @@
+/*
+ *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the dboolhuff.LICENSE file in this directory.
+ *  See the libvpx original distribution for more information,
+ *  including patent information, and author information.
+ */
+
+
+#include "dboolhuff.h"
+
+const unsigned char vp8_norm[256] __attribute__ ((aligned (16))) = {
+0, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4,
+      3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+      2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+      2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+int
+vp8dx_start_decode (BOOL_DECODER * br,
+    const unsigned char *source, unsigned int source_sz)
+{
+  br->user_buffer_end = source + source_sz;
+  br->user_buffer = source;
+  br->value = 0;
+  br->count = -8;
+  br->range = 255;
+
+  if (source_sz && !source)
+    return 1;
+
+  /* Populate the buffer */
+  vp8dx_bool_decoder_fill (br);
+
+  return 0;
+}
+
+
+void
+vp8dx_bool_decoder_fill (BOOL_DECODER * br)
+{
+  const unsigned char *bufptr;
+  const unsigned char *bufend;
+  VP8_BD_VALUE value;
+  int count;
+  bufend = br->user_buffer_end;
+  bufptr = br->user_buffer;
+  value = br->value;
+  count = br->count;
+
+  VP8DX_BOOL_DECODER_FILL (count, value, bufptr, bufend);
+
+  br->user_buffer = bufptr;
+  br->value = value;
+  br->count = count;
+}
diff --git a/gst/rtp/dboolhuff.h b/gst/rtp/dboolhuff.h
new file mode 100644
index 000000000..41b0f5d9a
--- /dev/null
+++ b/gst/rtp/dboolhuff.h
@@ -0,0 +1,151 @@
+/*
+ *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the dboolhuff.LICENSE file in this directory.
+ *  See the libvpx original distribution for more information,
+ *  including patent information, and author information.
+ */
+
+
+#ifndef DBOOLHUFF_H
+#define DBOOLHUFF_H
+#include <stddef.h>
+#include <limits.h>
+#include <glib.h>
+
+typedef size_t VP8_BD_VALUE;
+
+# define VP8_BD_VALUE_SIZE ((int)sizeof(VP8_BD_VALUE)*CHAR_BIT)
+/*This is meant to be a large, positive constant that can still be efficiently
+   loaded as an immediate (on platforms like ARM, for example).
+  Even relatively modest values like 100 would work fine.*/
+# define VP8_LOTS_OF_BITS (0x40000000)
+
+typedef struct
+{
+    const unsigned char *user_buffer_end;
+    const unsigned char *user_buffer;
+    VP8_BD_VALUE         value;
+    int                  count;
+    unsigned int         range;
+} BOOL_DECODER;
+
+extern const unsigned char vp8_norm[256] __attribute__((aligned(16)));
+
+int vp8dx_start_decode(BOOL_DECODER *br,
+                       const unsigned char *source,
+                       unsigned int source_sz);
+
+void vp8dx_bool_decoder_fill(BOOL_DECODER *br);
+
+/*The refill loop is used in several places, so define it in a macro to make
+   sure they're all consistent.
+  An inline function would be cleaner, but has a significant penalty, because
+   multiple BOOL_DECODER fields must be modified, and the compiler is not smart
+   enough to eliminate the stores to those fields and the subsequent reloads
+   from them when inlining the function.*/
+#define VP8DX_BOOL_DECODER_FILL(_count,_value,_bufptr,_bufend) \
+    do \
+    { \
+        int shift = VP8_BD_VALUE_SIZE - 8 - ((_count) + 8); \
+        int loop_end, x; \
+        size_t bits_left = ((_bufend)-(_bufptr))*CHAR_BIT; \
+        \
+        x = shift + CHAR_BIT - bits_left; \
+        loop_end = 0; \
+        if(x >= 0) \
+        { \
+            (_count) += VP8_LOTS_OF_BITS; \
+            loop_end = x; \
+            if(!bits_left) break; \
+        } \
+        while(shift >= loop_end) \
+        { \
+            (_count) += CHAR_BIT; \
+            (_value) |= (VP8_BD_VALUE)*(_bufptr)++ << shift; \
+            shift -= CHAR_BIT; \
+        } \
+    } \
+    while(0) \
+
+
+static int vp8dx_decode_bool(BOOL_DECODER *br, int probability) {
+    unsigned int bit = 0;
+    VP8_BD_VALUE value;
+    unsigned int split;
+    VP8_BD_VALUE bigsplit;
+    int count;
+    unsigned int range;
+
+    split = 1 + (((br->range - 1) * probability) >> 8);
+
+    if(br->count < 0)
+        vp8dx_bool_decoder_fill(br);
+
+    value = br->value;
+    count = br->count;
+
+    bigsplit = (VP8_BD_VALUE)split << (VP8_BD_VALUE_SIZE - 8);
+
+    range = split;
+
+    if (value >= bigsplit)
+    {
+        range = br->range - split;
+        value = value - bigsplit;
+        bit = 1;
+    }
+
+    {
+        register unsigned int shift = vp8_norm[range];
+        range <<= shift;
+        value <<= shift;
+        count -= shift;
+    }
+    br->value = value;
+    br->count = count;
+    br->range = range;
+
+    return bit;
+}
+
+static G_GNUC_UNUSED int vp8_decode_value(BOOL_DECODER *br, int bits)
+{
+    int z = 0;
+    int bit;
+
+    for (bit = bits - 1; bit >= 0; bit--)
+    {
+        z |= (vp8dx_decode_bool(br, 0x80) << bit);
+    }
+
+    return z;
+}
+
+static G_GNUC_UNUSED int vp8dx_bool_error(BOOL_DECODER *br)
+{
+    /* Check if we have reached the end of the buffer.
+     *
+     * Variable 'count' stores the number of bits in the 'value' buffer, minus
+     * 8. The top byte is part of the algorithm, and the remainder is buffered
+     * to be shifted into it. So if count == 8, the top 16 bits of 'value' are
+     * occupied, 8 for the algorithm and 8 in the buffer.
+     *
+     * When reading a byte from the user's buffer, count is filled with 8 and
+     * one byte is filled into the value buffer. When we reach the end of the
+     * data, count is additionally filled with VP8_LOTS_OF_BITS. So when
+     * count == VP8_LOTS_OF_BITS - 1, the user's data has been exhausted.
+     */
+    if ((br->count > VP8_BD_VALUE_SIZE) && (br->count < VP8_LOTS_OF_BITS))
+    {
+       /* We have tried to decode bits after the end of
+        * stream was encountered.
+        */
+        return 1;
+    }
+
+    /* No error. */
+    return 0;
+}
+#endif
diff --git a/gst/rtp/fnv1hash.c b/gst/rtp/fnv1hash.c
index a7926e46d..9885bb268 100644
--- a/gst/rtp/fnv1hash.c
+++ b/gst/rtp/fnv1hash.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/fnv1hash.h b/gst/rtp/fnv1hash.h
index e50a5b975..7047067ff 100644
--- a/gst/rtp/fnv1hash.h
+++ b/gst/rtp/fnv1hash.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_FNV1_HASH_H__
diff --git a/gst/rtp/gstasteriskh263.c b/gst/rtp/gstasteriskh263.c
index 85e91661e..a01fbc8a8 100644
--- a/gst/rtp/gstasteriskh263.c
+++ b/gst/rtp/gstasteriskh263.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstasteriskh263.h b/gst/rtp/gstasteriskh263.h
index 8451e7e2f..1c9523d4c 100644
--- a/gst/rtp/gstasteriskh263.h
+++ b/gst/rtp/gstasteriskh263.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_ASTERISK_H263_H__
diff --git a/gst/rtp/gstrtp.c b/gst/rtp/gstrtp.c
index ca104ecb9..d317156c1 100644
--- a/gst/rtp/gstrtp.c
+++ b/gst/rtp/gstrtp.c
@@ -13,14 +13,16 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 
+#include <gst/tag/tag.h>
+
 #include "gstrtpac3depay.h"
 #include "gstrtpac3pay.h"
 #include "gstrtpbvdepay.h"
@@ -78,6 +80,8 @@
 #include "gstrtpmp4gpay.h"
 #include "gstrtpqcelpdepay.h"
 #include "gstrtpqdmdepay.h"
+#include "gstrtpsbcdepay.h"
+#include "gstrtpsbcpay.h"
 #include "gstrtpsirenpay.h"
 #include "gstrtpsirendepay.h"
 #include "gstrtpspeexpay.h"
@@ -87,12 +91,16 @@
 #include "gstrtptheorapay.h"
 #include "gstrtpvorbisdepay.h"
 #include "gstrtpvorbispay.h"
+#include "gstrtpvp8depay.h"
+#include "gstrtpvp8pay.h"
 #include "gstrtpvrawdepay.h"
 #include "gstrtpvrawpay.h"
 
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
+  gst_tag_image_type_get_type ();
+
   if (!gst_rtp_ac3_depay_plugin_init (plugin))
     return FALSE;
 
@@ -264,6 +272,12 @@ plugin_init (GstPlugin * plugin)
   if (!gst_rtp_qdm2_depay_plugin_init (plugin))
     return FALSE;
 
+  if (!gst_rtp_sbc_depay_plugin_init (plugin))
+    return FALSE;
+
+  if (!gst_rtp_sbc_pay_plugin_init (plugin))
+    return FALSE;
+
   if (!gst_rtp_siren_pay_plugin_init (plugin))
     return FALSE;
 
@@ -291,6 +305,12 @@ plugin_init (GstPlugin * plugin)
   if (!gst_rtp_vorbis_pay_plugin_init (plugin))
     return FALSE;
 
+  if (!gst_rtp_vp8_depay_plugin_init (plugin))
+    return FALSE;
+
+  if (!gst_rtp_vp8_pay_plugin_init (plugin))
+    return FALSE;
+
   if (!gst_rtp_vraw_depay_plugin_init (plugin))
     return FALSE;
 
diff --git a/gst/rtp/gstrtpL16depay.c b/gst/rtp/gstrtpL16depay.c
index c8d6e7481..7e96d9dd6 100644
--- a/gst/rtp/gstrtpL16depay.c
+++ b/gst/rtp/gstrtpL16depay.c
@@ -13,8 +13,26 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:element-rtpL16depay
+ * @see_also: rtpL16pay
+ *
+ * Extract raw audio from RTP packets according to RFC 3551.
+ * For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt
+ *
+ * <refsect2>
+ * <title>Example pipeline</title>
+ * |[
+ * gst-launch udpsrc caps='application/x-rtp, media=(string)audio, clock-rate=(int)44100, encoding-name=(string)L16, encoding-params=(string)1, channels=(int)1, payload=(int)96' ! rtpL16depay ! pulsesink
+ * ]| This example pipeline will depayload an RTP raw audio stream. Refer to
+ * the rtpL16pay example to create the RTP stream.
+ * </refsect2>
+ *
+ * Last reviewed on 2013-04-25 (1.1.0)
  */
 
 #ifdef HAVE_CONFIG_H
@@ -47,9 +65,7 @@ static GstStaticPadTemplate gst_rtp_L16_depay_sink_template =
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
-        "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
-        "clock-rate = (int) [ 1, MAX ], "
+        "media = (string) \"audio\", " "clock-rate = (int) [ 1, MAX ], "
         /* "channels = (int) [1, MAX]"  */
         /* "emphasis = (string) ANY" */
         /* "channel-order = (string) ANY" */
@@ -233,8 +249,8 @@ gst_rtp_L16_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   marker = gst_rtp_buffer_get_marker (&rtp);
 
   if (marker) {
-    /* mark talk spurt with DISCONT */
-    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
+    /* mark talk spurt with RESYNC */
+    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
   }
 
   outbuf = gst_buffer_make_writable (outbuf);
diff --git a/gst/rtp/gstrtpL16depay.h b/gst/rtp/gstrtpL16depay.h
index b5b7c9376..125d4cd53 100644
--- a/gst/rtp/gstrtpL16depay.h
+++ b/gst/rtp/gstrtpL16depay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_L16_DEPAY_H__
diff --git a/gst/rtp/gstrtpL16pay.c b/gst/rtp/gstrtpL16pay.c
index 19b89b890..4a101ee1d 100644
--- a/gst/rtp/gstrtpL16pay.c
+++ b/gst/rtp/gstrtpL16pay.c
@@ -13,8 +13,26 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:element-rtpL16pay
+ * @see_also: rtpL16depay
+ *
+ * Payload raw audio into RTP packets according to RFC 3551.
+ * For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt
+ *
+ * <refsect2>
+ * <title>Example pipeline</title>
+ * |[
+ * gst-launch -v audiotestsrc ! audioconvert ! rtpL16pay ! udpsink
+ * ]| This example pipeline will payload raw audio. Refer to
+ * the rtpL16depay example to depayload and play the RTP stream.
+ * </refsect2>
+ *
+ * Last reviewed on 2013-04-25 (1.1.0)
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpL16pay.h b/gst/rtp/gstrtpL16pay.h
index 515a512d9..f4f3702e1 100644
--- a/gst/rtp/gstrtpL16pay.h
+++ b/gst/rtp/gstrtpL16pay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_L16_PAY_H__
diff --git a/gst/rtp/gstrtpac3depay.c b/gst/rtp/gstrtpac3depay.c
index 7e6c6f26f..fc79b5d90 100644
--- a/gst/rtp/gstrtpac3depay.c
+++ b/gst/rtp/gstrtpac3depay.c
@@ -13,8 +13,26 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:element-rtpac3depay
+ * @see_also: rtpac3pay
+ *
+ * Extract AC3 audio from RTP packets according to RFC 4184.
+ * For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt
+ *
+ * <refsect2>
+ * <title>Example pipeline</title>
+ * |[
+ * gst-launch-1.0 udpsrc caps='application/x-rtp, media=(string)audio, clock-rate=(int)44100, encoding-name=(string)AC3, payload=(int)96' ! rtpac3depay ! a52dec ! pulsesink
+ * ]| This example pipeline will depayload and decode an RTP AC3 stream. Refer to
+ * the rtpac3pay example to create the RTP stream.
+ * </refsect2>
+ *
+ * Last reviewed on 2013-04-25 (1.1.0)
  */
 
 #ifdef HAVE_CONFIG_H
@@ -42,7 +60,6 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) { 32000, 44100, 48000 }, "
         "encoding-name = (string) \"AC3\"")
     );
diff --git a/gst/rtp/gstrtpac3depay.h b/gst/rtp/gstrtpac3depay.h
index 15d0779cb..294bb12c4 100644
--- a/gst/rtp/gstrtpac3depay.h
+++ b/gst/rtp/gstrtpac3depay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_AC3_DEPAY_H__
diff --git a/gst/rtp/gstrtpac3pay.c b/gst/rtp/gstrtpac3pay.c
index 0b10adfbd..175d62722 100644
--- a/gst/rtp/gstrtpac3pay.c
+++ b/gst/rtp/gstrtpac3pay.c
@@ -13,8 +13,26 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:element-rtpac3pay
+ * @see_also: rtpac3depay
+ *
+ * Payload AC3 audio into RTP packets according to RFC 4184.
+ * For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt
+ *
+ * <refsect2>
+ * <title>Example pipeline</title>
+ * |[
+ * gst-launch -v audiotestsrc ! avenc_ac3 ! rtpac3pay ! udpsink
+ * ]| This example pipeline will encode and payload AC3 stream. Refer to
+ * the rtpac3depay example to depayload and decode the RTP stream.
+ * </refsect2>
+ *
+ * Last reviewed on 2013-04-25 (1.1.0)
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpac3pay.h b/gst/rtp/gstrtpac3pay.h
index f856a068f..c131eac13 100644
--- a/gst/rtp/gstrtpac3pay.h
+++ b/gst/rtp/gstrtpac3pay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_AC3_PAY_H__
diff --git a/gst/rtp/gstrtpamrdepay.c b/gst/rtp/gstrtpamrdepay.c
index 58ce7f2b3..e1208bfad 100644
--- a/gst/rtp/gstrtpamrdepay.c
+++ b/gst/rtp/gstrtpamrdepay.c
@@ -13,10 +13,34 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
+/**
+ * SECTION:element-rtpamrdepay
+ * @see_also: rtpamrpay
+ *
+ * Extract AMR audio from RTP packets according to RFC 3267.
+ * For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt
+ *
+ * <refsect2>
+ * <title>Example pipeline</title>
+ * |[
+ * gst-launch-1.0 udpsrc caps='application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)AMR, encoding-params=(string)1, octet-align=(string)1, payload=(int)96' ! rtpamrdepay ! amrnbdec ! pulsesink
+ * ]| This example pipeline will depayload and decode an RTP AMR stream. Refer to
+ * the rtpamrpay example to create the RTP stream.
+ * </refsect2>
+ *
+ * Last reviewed on 2013-04-25 (1.1.0)
+ */
+
+/*
+ * RFC 3267 - Real-Time Transport Protocol (RTP) Payload Format and File
+ * Storage Format for the Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate
+ * Wideband (AMR-WB) Audio Codecs.
+ *
+ */
 #ifdef HAVE_CONFIG_H
 #  include "config.h"
 #endif
@@ -30,13 +54,6 @@
 GST_DEBUG_CATEGORY_STATIC (rtpamrdepay_debug);
 #define GST_CAT_DEFAULT (rtpamrdepay_debug)
 
-/* references:
- *
- * RFC 3267 - Real-Time Transport Protocol (RTP) Payload Format and File
- * Storage Format for the Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate
- * Wideband (AMR-WB) Audio Codecs.
- */
-
 /* RtpAMRDepay signals and args */
 enum
 {
@@ -59,7 +76,6 @@ static GstStaticPadTemplate gst_rtp_amr_depay_sink_template =
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 8000, "
         "encoding-name = (string) \"AMR\", "
         "encoding-params = (string) \"1\", "
@@ -79,7 +95,6 @@ static GstStaticPadTemplate gst_rtp_amr_depay_sink_template =
          */
         "application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 16000, "
         "encoding-name = (string) \"AMR-WB\", "
         "encoding-params = (string) \"1\", "
@@ -407,9 +422,9 @@ gst_rtp_amr_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     GST_BUFFER_DURATION (outbuf) = num_packets * 20 * GST_MSECOND;
 
     if (gst_rtp_buffer_get_marker (&rtp)) {
-      /* marker bit marks a discont buffer after a talkspurt. */
+      /* marker bit marks a buffer after a talkspurt. */
       GST_DEBUG_OBJECT (depayload, "marker bit was set");
-      GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
+      GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
     }
 
     GST_DEBUG_OBJECT (depayload, "pushing buffer of size %" G_GSIZE_FORMAT,
diff --git a/gst/rtp/gstrtpamrdepay.h b/gst/rtp/gstrtpamrdepay.h
index 491c007ea..0b806345d 100644
--- a/gst/rtp/gstrtpamrdepay.h
+++ b/gst/rtp/gstrtpamrdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_AMR_DEPAY_H__
diff --git a/gst/rtp/gstrtpamrpay.c b/gst/rtp/gstrtpamrpay.c
index 7829b39b6..defc7f4ba 100644
--- a/gst/rtp/gstrtpamrpay.c
+++ b/gst/rtp/gstrtpamrpay.c
@@ -13,22 +13,27 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
-
-#include <string.h>
-
-#include <gst/rtp/gstrtpbuffer.h>
-
-#include "gstrtpamrpay.h"
-
-GST_DEBUG_CATEGORY_STATIC (rtpamrpay_debug);
-#define GST_CAT_DEFAULT (rtpamrpay_debug)
+/**
+ * SECTION:element-rtpamrpay
+ * @see_also: rtpamrdepay
+ *
+ * Payload AMR audio into RTP packets according to RFC 3267.
+ * For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt
+ *
+ * <refsect2>
+ * <title>Example pipeline</title>
+ * |[
+ * gst-launch -v audiotestsrc ! amrnbenc ! rtpamrpay ! udpsink
+ * ]| This example pipeline will encode and payload an AMR stream. Refer to
+ * the rtpamrdepay example to depayload and decode the RTP stream.
+ * </refsect2>
+ *
+ * Last reviewed on 2013-04-25 (1.1.0)
+ */
 
 /* references:
  *
@@ -43,6 +48,19 @@ GST_DEBUG_CATEGORY_STATIC (rtpamrpay_debug);
  *                    (3GPP TS 26.201 version 6.0.0 Release 6)
  */
 
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+#include <string.h>
+
+#include <gst/rtp/gstrtpbuffer.h>
+
+#include "gstrtpamrpay.h"
+
+GST_DEBUG_CATEGORY_STATIC (rtpamrpay_debug);
+#define GST_CAT_DEFAULT (rtpamrpay_debug)
+
 static GstStaticPadTemplate gst_rtp_amr_pay_sink_template =
     GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
diff --git a/gst/rtp/gstrtpamrpay.h b/gst/rtp/gstrtpamrpay.h
index b57082370..a3df1ce63 100644
--- a/gst/rtp/gstrtpamrpay.h
+++ b/gst/rtp/gstrtpamrpay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_AMR_PAY_H__
diff --git a/gst/rtp/gstrtpbvdepay.c b/gst/rtp/gstrtpbvdepay.c
index ae2710ac9..7b85558d4 100644
--- a/gst/rtp/gstrtpbvdepay.c
+++ b/gst/rtp/gstrtpbvdepay.c
@@ -13,8 +13,18 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:element-rtpbvdepay
+ * @see_also: rtpbvpay
+ *
+ * Extract BroadcomVoice audio from RTP packets according to RFC 4298.
+ * For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt
+ *
+ * Last reviewed on 2013-04-25 (1.1.0)
  */
 
 #ifdef HAVE_CONFIG_H
@@ -33,12 +43,10 @@ static GstStaticPadTemplate gst_rtp_bv_depay_sink_template =
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 8000, "
         "encoding-name = (string) \"BV16\"; "
         "application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 16000, " "encoding-name = (string) \"BV32\"")
     );
 
@@ -167,8 +175,8 @@ gst_rtp_bv_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   gst_rtp_buffer_unmap (&rtp);
 
   if (marker && outbuf) {
-    /* mark start of talkspurt with DISCONT */
-    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
+    /* mark start of talkspurt with RESYNC */
+    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
   }
 
   return outbuf;
diff --git a/gst/rtp/gstrtpbvdepay.h b/gst/rtp/gstrtpbvdepay.h
index d63066ac3..f130682c0 100644
--- a/gst/rtp/gstrtpbvdepay.h
+++ b/gst/rtp/gstrtpbvdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_BV_DEPAY_H__
diff --git a/gst/rtp/gstrtpbvpay.c b/gst/rtp/gstrtpbvpay.c
index 8fd650a2d..be12b38d0 100644
--- a/gst/rtp/gstrtpbvpay.c
+++ b/gst/rtp/gstrtpbvpay.c
@@ -13,8 +13,18 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:element-rtpbvpay
+ * @see_also: rtpbvdepay
+ *
+ * Payload BroadcomVoice audio into RTP packets according to RFC 4298.
+ * For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt
+ *
+ * Last reviewed on 2013-04-25 (1.1.0)
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpbvpay.h b/gst/rtp/gstrtpbvpay.h
index 1976693d2..09766ccaa 100644
--- a/gst/rtp/gstrtpbvpay.h
+++ b/gst/rtp/gstrtpbvpay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_BV_PAY_H__
diff --git a/gst/rtp/gstrtpceltdepay.c b/gst/rtp/gstrtpceltdepay.c
index 90c126390..7203f10eb 100644
--- a/gst/rtp/gstrtpceltdepay.c
+++ b/gst/rtp/gstrtpceltdepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -53,7 +53,6 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate =  (int) [32000, 48000], "
         "encoding-name = (string) \"CELT\"")
     );
diff --git a/gst/rtp/gstrtpceltpay.c b/gst/rtp/gstrtpceltpay.c
index b1950682c..3aabd9fea 100644
--- a/gst/rtp/gstrtpceltpay.c
+++ b/gst/rtp/gstrtpceltpay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpchannels.c b/gst/rtp/gstrtpchannels.c
index 2c56ec22a..100aaa4bd 100644
--- a/gst/rtp/gstrtpchannels.c
+++ b/gst/rtp/gstrtpchannels.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <string.h>
diff --git a/gst/rtp/gstrtpchannels.h b/gst/rtp/gstrtpchannels.h
index 0a1b3a5de..31727fbb4 100644
--- a/gst/rtp/gstrtpchannels.h
+++ b/gst/rtp/gstrtpchannels.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <string.h>
diff --git a/gst/rtp/gstrtpdvdepay.c b/gst/rtp/gstrtpdvdepay.c
index 62fccb8f6..7cb1ff410 100644
--- a/gst/rtp/gstrtpdvdepay.c
+++ b/gst/rtp/gstrtpdvdepay.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
@@ -59,7 +59,6 @@ static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) { \"video\", \"audio\" },"
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "encoding-name = (string) \"DV\", "
         "clock-rate = (int) 90000,"
         "encode = (string) { \"SD-VCR/525-60\", \"SD-VCR/625-50\", \"HD-VCR/1125-60\","
diff --git a/gst/rtp/gstrtpdvdepay.h b/gst/rtp/gstrtpdvdepay.h
index e3176a254..1ce5b9715 100644
--- a/gst/rtp/gstrtpdvdepay.h
+++ b/gst/rtp/gstrtpdvdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GSTRTPDVDEPAY_H__
diff --git a/gst/rtp/gstrtpdvpay.c b/gst/rtp/gstrtpdvpay.c
index f93bcb589..d779f1230 100644
--- a/gst/rtp/gstrtpdvpay.c
+++ b/gst/rtp/gstrtpdvpay.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpdvpay.h b/gst/rtp/gstrtpdvpay.h
index 887c3bd14..4c250a840 100644
--- a/gst/rtp/gstrtpdvpay.h
+++ b/gst/rtp/gstrtpdvpay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/rtp/gstrtpg722depay.c b/gst/rtp/gstrtpg722depay.c
index 6835a3e1a..c77fb9513 100644
--- a/gst/rtp/gstrtpg722depay.c
+++ b/gst/rtp/gstrtpg722depay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -45,9 +45,7 @@ static GstStaticPadTemplate gst_rtp_g722_depay_sink_template =
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
-        "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
-        "clock-rate = (int) 8000, "
+        "media = (string) \"audio\", " "clock-rate = (int) 8000, "
         /* "channels = (int) [1, MAX]"  */
         /* "channel-order = (string) ANY" */
         "encoding-name = (string) \"G722\";"
@@ -240,8 +238,8 @@ gst_rtp_g722_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   gst_rtp_buffer_unmap (&rtp);
 
   if (marker && outbuf) {
-    /* mark talk spurt with DISCONT */
-    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
+    /* mark talk spurt with RESYNC */
+    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
   }
 
   return outbuf;
diff --git a/gst/rtp/gstrtpg722depay.h b/gst/rtp/gstrtpg722depay.h
index 86e7e9104..8b6ffa046 100644
--- a/gst/rtp/gstrtpg722depay.h
+++ b/gst/rtp/gstrtpg722depay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_G722_DEPAY_H__
diff --git a/gst/rtp/gstrtpg722pay.c b/gst/rtp/gstrtpg722pay.c
index f328e5d56..e9e625a6e 100644
--- a/gst/rtp/gstrtpg722pay.c
+++ b/gst/rtp/gstrtpg722pay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpg722pay.h b/gst/rtp/gstrtpg722pay.h
index b76b1066c..f238286ea 100644
--- a/gst/rtp/gstrtpg722pay.h
+++ b/gst/rtp/gstrtpg722pay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_G722_PAY_H__
diff --git a/gst/rtp/gstrtpg723depay.c b/gst/rtp/gstrtpg723depay.c
index 62213bd50..b8226889b 100644
--- a/gst/rtp/gstrtpg723depay.c
+++ b/gst/rtp/gstrtpg723depay.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -57,7 +57,6 @@ static GstStaticPadTemplate gst_rtp_g723_depay_sink_template =
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 8000, "
         "encoding-name = (string) \"G723\"; "
         "application/x-rtp, "
@@ -198,7 +197,7 @@ gst_rtp_g723_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
 
   if (marker) {
     /* marker bit starts talkspurt */
-    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
+    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
   }
 
   GST_LOG_OBJECT (depayload, "pushing buffer of size %" G_GSIZE_FORMAT,
diff --git a/gst/rtp/gstrtpg723depay.h b/gst/rtp/gstrtpg723depay.h
index 0071ca46a..dd942b3b6 100644
--- a/gst/rtp/gstrtpg723depay.h
+++ b/gst/rtp/gstrtpg723depay.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_G723_DEPAY_H__
diff --git a/gst/rtp/gstrtpg723pay.c b/gst/rtp/gstrtpg723pay.c
index 104ee689b..4a10b3bc2 100644
--- a/gst/rtp/gstrtpg723pay.c
+++ b/gst/rtp/gstrtpg723pay.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpg723pay.h b/gst/rtp/gstrtpg723pay.h
index f1c77acef..37807412a 100644
--- a/gst/rtp/gstrtpg723pay.h
+++ b/gst/rtp/gstrtpg723pay.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_G723_PAY_H__
diff --git a/gst/rtp/gstrtpg726depay.c b/gst/rtp/gstrtpg726depay.c
index b59fc4442..45d99dc83 100644
--- a/gst/rtp/gstrtpg726depay.c
+++ b/gst/rtp/gstrtpg726depay.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -60,7 +60,6 @@ static GstStaticPadTemplate gst_rtp_g726_depay_sink_template =
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "encoding-name = (string) { \"G726\", \"G726-16\", \"G726-24\", \"G726-32\", \"G726-40\", "
         "\"AAL2-G726-16\", \"AAL2-G726-24\", \"AAL2-G726-32\", \"AAL2-G726-40\" }, "
         "clock-rate = (int) 8000;")
@@ -330,8 +329,8 @@ gst_rtp_g726_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   }
 
   if (marker) {
-    /* mark start of talkspurt with discont */
-    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
+    /* mark start of talkspurt with RESYNC */
+    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
   }
 
   return outbuf;
diff --git a/gst/rtp/gstrtpg726pay.c b/gst/rtp/gstrtpg726pay.c
index 2da0c4a5a..323fd26dd 100644
--- a/gst/rtp/gstrtpg726pay.c
+++ b/gst/rtp/gstrtpg726pay.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpg729depay.c b/gst/rtp/gstrtpg729depay.c
index dd06791bd..f763e4cd8 100644
--- a/gst/rtp/gstrtpg729depay.c
+++ b/gst/rtp/gstrtpg729depay.c
@@ -12,8 +12,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -55,7 +55,6 @@ static GstStaticPadTemplate gst_rtp_g729_depay_sink_template =
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 8000, "
         "encoding-name = (string) \"G729\"; "
         "application/x-rtp, "
@@ -203,7 +202,7 @@ gst_rtp_g729_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
 
   if (marker) {
     /* marker bit starts talkspurt */
-    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
+    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
   }
 
   GST_LOG_OBJECT (depayload, "pushing buffer of size %" G_GSIZE_FORMAT,
diff --git a/gst/rtp/gstrtpg729depay.h b/gst/rtp/gstrtpg729depay.h
index ffd4bb918..a23562e56 100644
--- a/gst/rtp/gstrtpg729depay.h
+++ b/gst/rtp/gstrtpg729depay.h
@@ -12,8 +12,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_G729_DEPAY_H__
diff --git a/gst/rtp/gstrtpg729pay.c b/gst/rtp/gstrtpg729pay.c
index aaede04d4..898bcd12a 100644
--- a/gst/rtp/gstrtpg729pay.c
+++ b/gst/rtp/gstrtpg729pay.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/gst/rtp/gstrtpg729pay.h b/gst/rtp/gstrtpg729pay.h
index 52b9951e4..1b9246050 100644
--- a/gst/rtp/gstrtpg729pay.h
+++ b/gst/rtp/gstrtpg729pay.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_G729_PAY_H__
diff --git a/gst/rtp/gstrtpgsmdepay.c b/gst/rtp/gstrtpgsmdepay.c
index 570253699..96b30cfe8 100644
--- a/gst/rtp/gstrtpgsmdepay.c
+++ b/gst/rtp/gstrtpgsmdepay.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -49,7 +49,6 @@ static GstStaticPadTemplate gst_rtp_gsm_depay_sink_template =
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 8000, " "encoding-name = (string) \"GSM\";"
         "application/x-rtp, "
         "media = (string) \"audio\", "
@@ -137,8 +136,8 @@ gst_rtp_gsm_depay_process (GstRTPBaseDepayload * _depayload, GstBuffer * buf)
   gst_rtp_buffer_unmap (&rtp);
 
   if (marker && outbuf) {
-    /* mark start of talkspurt with DISCONT */
-    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
+    /* mark start of talkspurt with RESYNC */
+    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
   }
 
   return outbuf;
diff --git a/gst/rtp/gstrtpgsmdepay.h b/gst/rtp/gstrtpgsmdepay.h
index 73234ca1a..e428aa09f 100644
--- a/gst/rtp/gstrtpgsmdepay.h
+++ b/gst/rtp/gstrtpgsmdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_GSM_DEPAY_H__
diff --git a/gst/rtp/gstrtpgsmpay.c b/gst/rtp/gstrtpgsmpay.c
index 481c3b1ff..b6964c598 100644
--- a/gst/rtp/gstrtpgsmpay.c
+++ b/gst/rtp/gstrtpgsmpay.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpgsmpay.h b/gst/rtp/gstrtpgsmpay.h
index 085da8009..b6437f516 100644
--- a/gst/rtp/gstrtpgsmpay.h
+++ b/gst/rtp/gstrtpgsmpay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/rtp/gstrtpgstdepay.c b/gst/rtp/gstrtpgstdepay.c
index 8c211b67f..69b24596d 100644
--- a/gst/rtp/gstrtpgstdepay.c
+++ b/gst/rtp/gstrtpgstdepay.c
@@ -13,17 +13,17 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
 #  include "config.h"
 #endif
 
-#include <gst/rtp/gstrtpbuffer.h>
-
 #include <string.h>
+#include <stdlib.h>
+
 #include "gstrtpgstdepay.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpgstdepay_debug);
@@ -41,7 +41,6 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"application\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 90000, " "encoding-name = (string) \"X-GST\"")
     );
 
@@ -134,11 +133,9 @@ gst_rtp_gst_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
 {
   GstRtpGSTDepay *rtpgstdepay;
   GstStructure *structure;
-  GstCaps *outcaps;
   gint clock_rate;
   gboolean res;
   const gchar *capsenc;
-  gchar *capsstr;
 
   rtpgstdepay = GST_RTP_GST_DEPAY (depayload);
 
@@ -150,25 +147,165 @@ gst_rtp_gst_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
 
   capsenc = gst_structure_get_string (structure, "caps");
   if (capsenc) {
+    GstCaps *outcaps;
     gsize out_len;
+    gchar *capsstr;
+    const gchar *capsver;
+    guint CV;
 
+    /* decode caps */
     capsstr = (gchar *) g_base64_decode (capsenc, &out_len);
     outcaps = gst_caps_from_string (capsstr);
     g_free (capsstr);
 
-    /* we have the SDP caps as output caps */
-    rtpgstdepay->current_CV = 0;
+    /* parse version */
+    capsver = gst_structure_get_string (structure, "capsversion");
+    if (capsver) {
+      CV = atoi (capsver);
+    } else {
+      /* no version, assume 0 */
+      CV = 0;
+    }
+    /* store in cache */
+    rtpgstdepay->current_CV = CV;
     gst_caps_ref (outcaps);
-    store_cache (rtpgstdepay, 0, outcaps);
+    store_cache (rtpgstdepay, CV, outcaps);
+
+    res = gst_pad_set_caps (depayload->srcpad, outcaps);
+    gst_caps_unref (outcaps);
   } else {
-    outcaps = gst_caps_new_any ();
+    GST_WARNING_OBJECT (depayload, "no caps given");
+    rtpgstdepay->current_CV = -1;
+    res = TRUE;
   }
-  res = gst_pad_set_caps (depayload->srcpad, outcaps);
-  gst_caps_unref (outcaps);
 
   return res;
 }
 
+static gboolean
+read_length (GstRtpGSTDepay * rtpgstdepay, guint8 * data, guint size,
+    guint * length, guint * skip)
+{
+  guint b, len, offset;
+
+  /* start reading the length, we need this to skip to the data later */
+  len = offset = 0;
+  do {
+    if (offset >= size)
+      return FALSE;
+    b = data[offset++];
+    len = (len << 7) | (b & 0x7f);
+  } while (b & 0x80);
+
+  /* check remaining buffer size */
+  if (size - offset < len)
+    return FALSE;
+
+  *length = len;
+  *skip = offset;
+
+  return TRUE;
+}
+
+static GstCaps *
+read_caps (GstRtpGSTDepay * rtpgstdepay, GstBuffer * buf, guint * skip)
+{
+  guint offset, length;
+  GstCaps *caps;
+  GstMapInfo map;
+
+  gst_buffer_map (buf, &map, GST_MAP_READ);
+
+  GST_DEBUG_OBJECT (rtpgstdepay, "buffer size %" G_GSIZE_FORMAT, map.size);
+
+  if (!read_length (rtpgstdepay, map.data, map.size, &length, &offset))
+    goto too_small;
+
+  GST_DEBUG_OBJECT (rtpgstdepay, "parsing caps %s", &map.data[offset]);
+
+  /* parse and store in cache */
+  caps = gst_caps_from_string ((gchar *) & map.data[offset]);
+  gst_buffer_unmap (buf, &map);
+
+  *skip = length + offset;
+
+  return caps;
+
+too_small:
+  {
+    GST_ELEMENT_WARNING (rtpgstdepay, STREAM, DECODE,
+        ("Buffer too small."), (NULL));
+    gst_buffer_unmap (buf, &map);
+    return NULL;
+  }
+}
+
+static GstEvent *
+read_event (GstRtpGSTDepay * rtpgstdepay, guint type,
+    GstBuffer * buf, guint * skip)
+{
+  guint offset, length;
+  GstStructure *s;
+  GstEvent *event;
+  GstEventType etype;
+  gchar *end;
+  GstMapInfo map;
+
+  gst_buffer_map (buf, &map, GST_MAP_READ);
+
+  GST_DEBUG_OBJECT (rtpgstdepay, "buffer size %" G_GSIZE_FORMAT, map.size);
+
+  if (!read_length (rtpgstdepay, map.data, map.size, &length, &offset))
+    goto too_small;
+
+  GST_DEBUG_OBJECT (rtpgstdepay, "parsing event %s", &map.data[offset]);
+
+  /* parse */
+  s = gst_structure_from_string ((gchar *) & map.data[offset], &end);
+  gst_buffer_unmap (buf, &map);
+
+  if (s == NULL)
+    goto parse_failed;
+
+  switch (type) {
+    case 1:
+      etype = GST_EVENT_TAG;
+      break;
+    case 2:
+      etype = GST_EVENT_CUSTOM_DOWNSTREAM;
+      break;
+    case 3:
+      etype = GST_EVENT_CUSTOM_BOTH;
+      break;
+    default:
+      goto unknown_event;
+  }
+  event = gst_event_new_custom (etype, s);
+
+  *skip = length + offset;
+
+  return event;
+
+too_small:
+  {
+    GST_ELEMENT_WARNING (rtpgstdepay, STREAM, DECODE,
+        ("Buffer too small."), (NULL));
+    gst_buffer_unmap (buf, &map);
+    return NULL;
+  }
+parse_failed:
+  {
+    GST_WARNING_OBJECT (rtpgstdepay, "could not parse event");
+    return NULL;
+  }
+unknown_event:
+  {
+    GST_DEBUG_OBJECT (rtpgstdepay, "unknown event type");
+    gst_structure_free (s);
+    return NULL;
+  }
+}
+
 static GstBuffer *
 gst_rtp_gst_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
 {
@@ -176,7 +313,7 @@ gst_rtp_gst_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   GstBuffer *subbuf, *outbuf = NULL;
   gint payload_len;
   guint8 *payload;
-  guint CV;
+  guint CV, frag_offset, avail, offset;
   GstRTPBuffer rtp = { NULL };
 
   rtpgstdepay = GST_RTP_GST_DEPAY (depayload);
@@ -200,19 +337,23 @@ gst_rtp_gst_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
    *  0                   1                   2                   3
    *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-   * |C| CV  |D|0|0|0|                  MBZ                          |
+   * |C| CV  |D|0|0|0|     ETYPE     |  MBZ                          |
    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    * |                          Frag_offset                          |
    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    */
-  /* frag_offset =
-   *   (payload[4] << 24) | (payload[5] << 16) | (payload[6] << 8) | payload[7];
-   */
+  frag_offset =
+      (payload[4] << 24) | (payload[5] << 16) | (payload[6] << 8) | payload[7];
+
+  avail = gst_adapter_available (rtpgstdepay->adapter);
+  if (avail != frag_offset)
+    goto wrong_frag;
 
   /* subbuffer skipping the 8 header bytes */
   subbuf = gst_rtp_buffer_get_payload_subbuffer (&rtp, 8, -1);
   gst_adapter_push (rtpgstdepay->adapter, subbuf);
 
+  offset = 0;
   if (gst_rtp_buffer_get_marker (&rtp)) {
     guint avail;
     GstCaps *outcaps;
@@ -224,74 +365,78 @@ gst_rtp_gst_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     CV = (payload[0] >> 4) & 0x7;
 
     if (payload[0] & 0x80) {
-      guint b, csize, left, offset;
-      GstMapInfo map;
-      GstBuffer *subbuf;
+      guint size;
 
       /* C bit, we have inline caps */
-      gst_buffer_map (outbuf, &map, GST_MAP_READ);
-
-      /* start reading the length, we need this to skip to the data later */
-      csize = offset = 0;
-      left = map.size;
-      do {
-        if (offset >= left) {
-          gst_buffer_unmap (outbuf, &map);
-          goto too_small;
-        }
-        b = map.data[offset++];
-        csize = (csize << 7) | (b & 0x7f);
-      } while (b & 0x80);
-
-      if (left < csize) {
-        gst_buffer_unmap (outbuf, &map);
-        goto too_small;
-      }
+      outcaps = read_caps (rtpgstdepay, outbuf, &size);
+      if (outcaps == NULL)
+        goto no_caps;
+
+      GST_DEBUG_OBJECT (rtpgstdepay,
+          "inline caps %u, length %u, %" GST_PTR_FORMAT, CV, size, outcaps);
 
-      /* parse and store in cache */
-      outcaps = gst_caps_from_string ((gchar *) & map.data[offset]);
       store_cache (rtpgstdepay, CV, outcaps);
 
       /* skip caps */
-      offset += csize;
-      left -= csize;
+      offset += size;
+      avail -= size;
+    }
+    if (payload[1]) {
+      guint size;
+      GstEvent *event;
+
+      /* we have an event */
+      event = read_event (rtpgstdepay, payload[1], outbuf, &size);
+      if (event == NULL)
+        goto no_event;
 
       GST_DEBUG_OBJECT (rtpgstdepay,
-          "inline caps %u, length %u, %" GST_PTR_FORMAT, CV, csize, outcaps);
+          "inline event, length %u, %" GST_PTR_FORMAT, size, event);
 
-      /* create real data buffer when needed */
-      if (map.size)
-        subbuf =
-            gst_buffer_copy_region (outbuf, GST_BUFFER_COPY_ALL, offset, left);
-      else
-        subbuf = NULL;
+      gst_pad_push_event (depayload->srcpad, event);
 
-      gst_buffer_unmap (outbuf, &map);
-      gst_buffer_unref (outbuf);
-      outbuf = subbuf;
+      /* no buffer after event */
+      avail = 0;
     }
 
-    /* see what caps we need */
-    if (CV != rtpgstdepay->current_CV) {
-      /* we need to switch caps, check if we have the caps */
-      if ((outcaps = rtpgstdepay->CV_cache[CV]) == NULL)
-        goto missing_caps;
+    if (avail) {
+      if (offset != 0) {
+        GstBuffer *temp;
 
-      GST_DEBUG_OBJECT (rtpgstdepay,
-          "need caps switch from %u to %u, %" GST_PTR_FORMAT,
-          rtpgstdepay->current_CV, CV, outcaps);
+        GST_DEBUG_OBJECT (rtpgstdepay, "sub buffer: offset %u, size %u", offset,
+            avail);
 
-      /* and set caps */
-      if (gst_pad_set_caps (depayload->srcpad, outcaps))
-        rtpgstdepay->current_CV = CV;
-    }
+        temp =
+            gst_buffer_copy_region (outbuf, GST_BUFFER_COPY_ALL, offset, avail);
+
+        gst_buffer_unref (outbuf);
+        outbuf = temp;
+      }
+
+      /* see what caps we need */
+      if (CV != rtpgstdepay->current_CV) {
+        /* we need to switch caps, check if we have the caps */
+        if ((outcaps = rtpgstdepay->CV_cache[CV]) == NULL)
+          goto missing_caps;
+
+        GST_DEBUG_OBJECT (rtpgstdepay,
+            "need caps switch from %u to %u, %" GST_PTR_FORMAT,
+            rtpgstdepay->current_CV, CV, outcaps);
+
+        /* and set caps */
+        if (gst_pad_set_caps (depayload->srcpad, outcaps))
+          rtpgstdepay->current_CV = CV;
+      }
 
-    if (outbuf) {
       if (payload[0] & 0x8)
         GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT);
+    } else {
+      gst_buffer_unref (outbuf);
+      outbuf = NULL;
     }
   }
   gst_rtp_buffer_unmap (&rtp);
+
   return outbuf;
 
   /* ERRORS */
@@ -302,12 +447,24 @@ empty_packet:
     gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
-too_small:
+wrong_frag:
   {
-    GST_ELEMENT_WARNING (rtpgstdepay, STREAM, DECODE,
-        ("Buffer too small."), (NULL));
-    if (outbuf)
-      gst_buffer_unref (outbuf);
+    gst_adapter_clear (rtpgstdepay->adapter);
+    gst_rtp_buffer_unmap (&rtp);
+    GST_LOG_OBJECT (rtpgstdepay, "wrong fragment, skipping");
+    return NULL;
+  }
+no_caps:
+  {
+    GST_WARNING_OBJECT (rtpgstdepay, "failed to parse caps");
+    gst_buffer_unref (outbuf);
+    gst_rtp_buffer_unmap (&rtp);
+    return NULL;
+  }
+no_event:
+  {
+    GST_WARNING_OBJECT (rtpgstdepay, "failed to parse event");
+    gst_buffer_unref (outbuf);
     gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
@@ -315,8 +472,7 @@ missing_caps:
   {
     GST_ELEMENT_WARNING (rtpgstdepay, STREAM, DECODE,
         ("Missing caps %u.", CV), (NULL));
-    if (outbuf)
-      gst_buffer_unref (outbuf);
+    gst_buffer_unref (outbuf);
     gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
diff --git a/gst/rtp/gstrtpgstdepay.h b/gst/rtp/gstrtpgstdepay.h
index aa2aa8e7b..5fbbde858 100644
--- a/gst/rtp/gstrtpgstdepay.h
+++ b/gst/rtp/gstrtpgstdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_GST_DEPAY_H__
diff --git a/gst/rtp/gstrtpgstpay.c b/gst/rtp/gstrtpgstpay.c
index 86e7afa20..9b53ab7e7 100644
--- a/gst/rtp/gstrtpgstpay.c
+++ b/gst/rtp/gstrtpgstpay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -27,26 +27,33 @@
 
 #include "gstrtpgstpay.h"
 
+GST_DEBUG_CATEGORY_STATIC (gst_rtp_pay_debug);
+#define GST_CAT_DEFAULT gst_rtp_pay_debug
+
 /*
  *  0                   1                   2                   3
  *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * |C| CV  |D|0|0|0|                  MBZ                          |
+ * |C| CV  |D|0|0|0|     ETYPE     |  MBZ                          |
  * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  * |                          Frag_offset                          |
  * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  *
- * C: caps inlined flag 
+ * C: caps inlined flag
  *   When C set, first part of payload contains caps definition. Caps definition
  *   starts with variable-length length prefix and then a string of that length.
  *   the length is encoded in big endian 7 bit chunks, the top 1 bit of a byte
  *   is the continuation marker and the 7 next bits the data. A continuation
- *   marker of 1 means that the next byte contains more data. 
+ *   marker of 1 means that the next byte contains more data.
  *
  * CV: caps version, 0 = caps from SDP, 1 - 7 inlined caps
  * D: delta unit buffer
- *
- *
+ * ETYPE: type of event. Payload contains the event, prefixed with a
+ *        variable length field.
+ *   0 = NO event
+ *   1 = GST_EVENT_TAG
+ *   2 = GST_EVENT_CUSTOM_DOWNSTREAM
+ *   3 = GST_EVENT_CUSTOM_BOTH
  */
 
 static GstStaticPadTemplate gst_rtp_gst_pay_sink_template =
@@ -65,10 +72,14 @@ GST_STATIC_PAD_TEMPLATE ("src",
         "clock-rate = (int) 90000, " "encoding-name = (string) \"X-GST\"")
     );
 
+static void gst_rtp_gst_pay_finalize (GObject * obj);
+
 static gboolean gst_rtp_gst_pay_setcaps (GstRTPBasePayload * payload,
     GstCaps * caps);
 static GstFlowReturn gst_rtp_gst_pay_handle_buffer (GstRTPBasePayload * payload,
     GstBuffer * buffer);
+static gboolean gst_rtp_gst_pay_sink_event (GstRTPBasePayload * payload,
+    GstEvent * event);
 
 #define gst_rtp_gst_pay_parent_class parent_class
 G_DEFINE_TYPE (GstRtpGSTPay, gst_rtp_gst_pay, GST_TYPE_RTP_BASE_PAYLOAD);
@@ -76,12 +87,16 @@ G_DEFINE_TYPE (GstRtpGSTPay, gst_rtp_gst_pay, GST_TYPE_RTP_BASE_PAYLOAD);
 static void
 gst_rtp_gst_pay_class_init (GstRtpGSTPayClass * klass)
 {
+  GObjectClass *gobject_class;
   GstElementClass *gstelement_class;
   GstRTPBasePayloadClass *gstrtpbasepayload_class;
 
+  gobject_class = (GObjectClass *) klass;
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasepayload_class = (GstRTPBasePayloadClass *) klass;
 
+  gobject_class->finalize = gst_rtp_gst_pay_finalize;
+
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&gst_rtp_gst_pay_src_template));
   gst_element_class_add_pad_template (gstelement_class,
@@ -94,81 +109,59 @@ gst_rtp_gst_pay_class_init (GstRtpGSTPayClass * klass)
 
   gstrtpbasepayload_class->set_caps = gst_rtp_gst_pay_setcaps;
   gstrtpbasepayload_class->handle_buffer = gst_rtp_gst_pay_handle_buffer;
+  gstrtpbasepayload_class->sink_event = gst_rtp_gst_pay_sink_event;
+
+  GST_DEBUG_CATEGORY_INIT (gst_rtp_pay_debug, "rtpgstpay", 0,
+      "rtpgstpay element");
 }
 
 static void
 gst_rtp_gst_pay_init (GstRtpGSTPay * rtpgstpay)
 {
+  rtpgstpay->adapter = gst_adapter_new ();
+  gst_rtp_base_payload_set_options (GST_RTP_BASE_PAYLOAD (rtpgstpay),
+      "application", TRUE, "X-GST", 90000);
 }
 
-static gboolean
-gst_rtp_gst_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
+static void
+gst_rtp_gst_pay_finalize (GObject * obj)
 {
-  gboolean res;
-  gchar *capsstr, *capsenc;
+  GstRtpGSTPay *rtpgstpay;
 
-  capsstr = gst_caps_to_string (caps);
-  capsenc = g_base64_encode ((guchar *) capsstr, strlen (capsstr));
-  g_free (capsstr);
+  rtpgstpay = GST_RTP_GST_PAY (obj);
 
-  gst_rtp_base_payload_set_options (payload, "application", TRUE, "X-GST",
-      90000);
-  res =
-      gst_rtp_base_payload_set_outcaps (payload, "caps", G_TYPE_STRING, capsenc,
-      NULL);
-  g_free (capsenc);
+  g_object_unref (rtpgstpay->adapter);
 
-  return res;
+  G_OBJECT_CLASS (parent_class)->finalize (obj);
 }
 
 static GstFlowReturn
-gst_rtp_gst_pay_handle_buffer (GstRTPBasePayload * basepayload,
-    GstBuffer * buffer)
+gst_rtp_gst_pay_flush (GstRtpGSTPay * rtpgstpay, GstClockTime timestamp)
 {
-  GstRtpGSTPay *rtpgstpay;
-  GstMapInfo map;
-  guint8 *ptr;
-  gsize left;
-  GstBuffer *outbuf;
   GstFlowReturn ret;
-  GstClockTime timestamp;
-  guint32 frag_offset;
-  guint flags;
-
-  rtpgstpay = GST_RTP_GST_PAY (basepayload);
+  guint avail;
+  guint frag_offset;
+  GstBufferList *list;
 
-  gst_buffer_map (buffer, &map, GST_MAP_READ);
-  timestamp = GST_BUFFER_TIMESTAMP (buffer);
-
-  ret = GST_FLOW_OK;
-
-  /* caps always from SDP for now */
-  flags = 0;
-  if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT))
-    flags |= (1 << 3);
-
-  /*
-   *  0                   1                   2                   3
-   *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-   * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-   * |C| CV  |D|X|Y|Z|                  MBZ                          |
-   * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-   * |                          Frag_offset                          |
-   * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-   */
   frag_offset = 0;
-  ptr = map.data;
-  left = map.size;
+  avail = gst_adapter_available (rtpgstpay->adapter);
+  if (avail == 0)
+    return GST_FLOW_OK;
+
+  list = gst_buffer_list_new ();
 
-  while (left > 0) {
+  while (avail) {
     guint towrite;
     guint8 *payload;
     guint payload_len;
     guint packet_len;
+    GstBuffer *outbuf;
     GstRTPBuffer rtp = { NULL };
+    GstBuffer *paybuf;
+
 
     /* this will be the total lenght of the packet */
-    packet_len = gst_rtp_buffer_calc_packet_len (8 + left, 0, 0);
+    packet_len = gst_rtp_buffer_calc_packet_len (8 + avail, 0, 0);
 
     /* fill one MTU or all available bytes */
     towrite = MIN (packet_len, GST_RTP_BASE_PAYLOAD_MTU (rtpgstpay));
@@ -176,14 +169,27 @@ gst_rtp_gst_pay_handle_buffer (GstRTPBasePayload * basepayload,
     /* this is the payload length */
     payload_len = gst_rtp_buffer_calc_payload_len (towrite, 0, 0);
 
-    /* create buffer to hold the payload */
-    outbuf = gst_rtp_buffer_new_allocate (payload_len, 0, 0);
+    /* create buffer to hold the header */
+    outbuf = gst_rtp_buffer_new_allocate (8, 0, 0);
 
     gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
     payload = gst_rtp_buffer_get_payload (&rtp);
 
-    payload[0] = flags;
-    payload[1] = payload[2] = payload[3] = 0;
+    GST_DEBUG_OBJECT (rtpgstpay, "new packet len %u, frag %u", packet_len,
+        frag_offset);
+
+    /*
+     *  0                   1                   2                   3
+     *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+     * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+     * |C| CV  |D|0|0|0|     ETYPE     |  MBZ                          |
+     * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+     * |                          Frag_offset                          |
+     * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+     */
+    payload[0] = rtpgstpay->flags;
+    payload[1] = rtpgstpay->etype;
+    payload[2] = payload[3] = 0;
     payload[4] = frag_offset >> 24;
     payload[5] = frag_offset >> 16;
     payload[6] = frag_offset >> 8;
@@ -192,23 +198,183 @@ gst_rtp_gst_pay_handle_buffer (GstRTPBasePayload * basepayload,
     payload += 8;
     payload_len -= 8;
 
-    memcpy (payload, ptr, payload_len);
-
-    ptr += payload_len;
-    left -= payload_len;
     frag_offset += payload_len;
+    avail -= payload_len;
 
-    if (left == 0)
+    if (avail == 0)
       gst_rtp_buffer_set_marker (&rtp, TRUE);
 
     gst_rtp_buffer_unmap (&rtp);
 
+    /* create a new buf to hold the payload */
+    GST_DEBUG_OBJECT (rtpgstpay, "take %u bytes from adapter", payload_len);
+    paybuf = gst_adapter_take_buffer (rtpgstpay->adapter, payload_len);
+
+    /* create a new group to hold the rtp header and the payload */
+    gst_buffer_append (outbuf, paybuf);
+
     GST_BUFFER_TIMESTAMP (outbuf) = timestamp;
 
-    ret = gst_rtp_base_payload_push (basepayload, outbuf);
+    /* and add to list */
+    gst_buffer_list_insert (list, -1, outbuf);
+  }
+  /* push the whole buffer list at once */
+  ret = gst_rtp_base_payload_push_list (GST_RTP_BASE_PAYLOAD (rtpgstpay), list);
+
+  rtpgstpay->flags &= 0x70;
+  rtpgstpay->etype = 0;
+
+  return ret;
+}
+
+static GstBuffer *
+make_data_buffer (GstRtpGSTPay * rtpgstpay, gchar * data, guint size)
+{
+  guint plen;
+  guint8 *ptr;
+  GstBuffer *outbuf;
+  GstMapInfo map;
+
+  /* calculate length */
+  plen = 1;
+  while (size >> (7 * plen))
+    plen++;
+
+  outbuf = gst_buffer_new_allocate (NULL, plen + size, NULL);
+
+  gst_buffer_map (outbuf, &map, GST_MAP_WRITE);
+  ptr = map.data;
+
+  /* write length */
+  while (plen) {
+    plen--;
+    *ptr++ = ((plen > 0) ? 0x80 : 0) | ((size >> (7 * plen)) & 0x7f);
   }
-  gst_buffer_unmap (buffer, &map);
-  gst_buffer_unref (buffer);
+  /* copy data */
+  memcpy (ptr, data, size);
+  gst_buffer_unmap (outbuf, &map);
+
+  return outbuf;
+}
+
+static gboolean
+gst_rtp_gst_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
+{
+  GstRtpGSTPay *rtpgstpay;
+  gboolean res;
+  gchar *capsstr, *capsenc, *capsver;
+  guint capslen;
+  GstBuffer *outbuf;
+
+  rtpgstpay = GST_RTP_GST_PAY (payload);
+
+  capsstr = gst_caps_to_string (caps);
+  capslen = strlen (capsstr);
+
+  rtpgstpay->current_CV = rtpgstpay->next_CV;
+
+  /* encode without 0 byte */
+  capsenc = g_base64_encode ((guchar *) capsstr, capslen);
+  GST_DEBUG_OBJECT (payload, "caps=%s, caps(base64)=%s", capsstr, capsenc);
+  /* for 0 byte */
+  capslen++;
+
+  /* make a data buffer of it */
+  outbuf = make_data_buffer (rtpgstpay, capsstr, capslen);
+  g_free (capsstr);
+
+  /* store in adapter, we don't flush yet, buffer might follow */
+  rtpgstpay->flags = (1 << 7) | (rtpgstpay->current_CV << 4);
+  rtpgstpay->next_CV = (rtpgstpay->next_CV + 1) & 0x7;
+  gst_adapter_push (rtpgstpay->adapter, outbuf);
+
+  /* make caps for SDP */
+  capsver = g_strdup_printf ("%d", rtpgstpay->current_CV);
+  res =
+      gst_rtp_base_payload_set_outcaps (payload, "caps", G_TYPE_STRING, capsenc,
+      "capsversion", G_TYPE_STRING, capsver, NULL);
+  g_free (capsenc);
+  g_free (capsver);
+
+  return res;
+}
+
+static gboolean
+gst_rtp_gst_pay_sink_event (GstRTPBasePayload * payload, GstEvent * event)
+{
+  gboolean ret;
+  GstRtpGSTPay *rtpgstpay;
+  guint etype;
+
+  rtpgstpay = GST_RTP_GST_PAY (payload);
+
+  ret =
+      GST_RTP_BASE_PAYLOAD_CLASS (parent_class)->sink_event (payload,
+      gst_event_ref (event));
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_TAG:
+      etype = 1;
+      break;
+    case GST_EVENT_CUSTOM_DOWNSTREAM:
+      etype = 2;
+      break;
+    case GST_EVENT_CUSTOM_BOTH:
+      etype = 2;
+      break;
+    default:
+      etype = 0;
+      GST_LOG_OBJECT (rtpgstpay, "no event for %s",
+          GST_EVENT_TYPE_NAME (event));
+      break;
+  }
+  if (etype) {
+    const GstStructure *s;
+    gchar *estr;
+    guint elen;
+    GstBuffer *outbuf;
+
+    /* make sure the adapter is flushed */
+    gst_rtp_gst_pay_flush (rtpgstpay, GST_CLOCK_TIME_NONE);
+
+    GST_DEBUG_OBJECT (rtpgstpay, "make event type %d for %s",
+        etype, GST_EVENT_TYPE_NAME (event));
+    s = gst_event_get_structure (event);
+
+    estr = gst_structure_to_string (s);
+    elen = strlen (estr);
+    outbuf = make_data_buffer (rtpgstpay, estr, elen);
+    g_free (estr);
+
+    rtpgstpay->etype = etype;
+    gst_adapter_push (rtpgstpay->adapter, outbuf);
+    /* flush the adapter immediately */
+    gst_rtp_gst_pay_flush (rtpgstpay, GST_CLOCK_TIME_NONE);
+  }
+
+  gst_event_unref (event);
+
+  return ret;
+}
+
+static GstFlowReturn
+gst_rtp_gst_pay_handle_buffer (GstRTPBasePayload * basepayload,
+    GstBuffer * buffer)
+{
+  GstFlowReturn ret;
+  GstRtpGSTPay *rtpgstpay;
+  GstClockTime timestamp;
+
+  rtpgstpay = GST_RTP_GST_PAY (basepayload);
+
+  timestamp = GST_BUFFER_TIMESTAMP (buffer);
+
+  /* caps always from SDP for now */
+  if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT))
+    rtpgstpay->flags |= (1 << 3);
+
+  gst_adapter_push (rtpgstpay->adapter, buffer);
+  ret = gst_rtp_gst_pay_flush (rtpgstpay, timestamp);
 
   return ret;
 }
diff --git a/gst/rtp/gstrtpgstpay.h b/gst/rtp/gstrtpgstpay.h
index e10401fe0..bb50085cc 100644
--- a/gst/rtp/gstrtpgstpay.h
+++ b/gst/rtp/gstrtpgstpay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_GST_PAY_H__
@@ -22,6 +22,7 @@
 
 #include <gst/gst.h>
 #include <gst/rtp/gstrtpbasepayload.h>
+#include <gst/base/gstadapter.h>
 
 G_BEGIN_DECLS
 
@@ -42,6 +43,13 @@ typedef struct _GstRtpGSTPayClass GstRtpGSTPayClass;
 struct _GstRtpGSTPay
 {
   GstRTPBasePayload payload;
+
+  GstAdapter *adapter;
+  guint8 flags;
+  guint8 etype;
+
+  guint8 current_CV; /* CV field of incoming caps*/
+  guint8 next_CV;
 };
 
 struct _GstRtpGSTPayClass
diff --git a/gst/rtp/gstrtph263depay.c b/gst/rtp/gstrtph263depay.c
index e05704eba..20e8ccba5 100644
--- a/gst/rtp/gstrtph263depay.c
+++ b/gst/rtp/gstrtph263depay.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -54,10 +54,9 @@ static GstStaticPadTemplate gst_rtp_h263_depay_sink_template =
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"video\", "
         "payload = (int) " GST_RTP_PAYLOAD_H263_STRING ", "
-        "clock-rate = (int) 90000, " "encoding-name = (string) \"H263\"; "
+        "clock-rate = (int) 90000; "
         "application/x-rtp, "
         "media = (string) \"video\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 90000, " "encoding-name = (string) \"H263\"")
     );
 
diff --git a/gst/rtp/gstrtph263depay.h b/gst/rtp/gstrtph263depay.h
index 038b8815a..2d9ca55c7 100644
--- a/gst/rtp/gstrtph263depay.h
+++ b/gst/rtp/gstrtph263depay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_H263_DEPAY_H__
diff --git a/gst/rtp/gstrtph263pay.c b/gst/rtp/gstrtph263pay.c
index 7def26e99..a9672ec11 100644
--- a/gst/rtp/gstrtph263pay.c
+++ b/gst/rtp/gstrtph263pay.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  */
 
diff --git a/gst/rtp/gstrtph263pay.h b/gst/rtp/gstrtph263pay.h
index 211cecb33..d41c3edaf 100644
--- a/gst/rtp/gstrtph263pay.h
+++ b/gst/rtp/gstrtph263pay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  * Author: Dejan Sakelsak sahel@kiberpipa.org
  */
diff --git a/gst/rtp/gstrtph263pdepay.c b/gst/rtp/gstrtph263pdepay.c
index a669a58ee..e788e2f6e 100644
--- a/gst/rtp/gstrtph263pdepay.c
+++ b/gst/rtp/gstrtph263pdepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -39,7 +39,6 @@ static GstStaticPadTemplate gst_rtp_h263p_depay_sink_template =
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"video\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) [1, MAX], "
         "encoding-name = (string) \"H263-1998\"; "
         /* optional params */
@@ -65,7 +64,6 @@ static GstStaticPadTemplate gst_rtp_h263p_depay_sink_template =
          */
         "application/x-rtp, "
         "media = (string) \"video\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) [1, MAX], "
         "encoding-name = (string) \"H263-2000\" "
         /* optional params */
diff --git a/gst/rtp/gstrtph263pdepay.h b/gst/rtp/gstrtph263pdepay.h
index 624e8ffe1..bbdb2b0a4 100644
--- a/gst/rtp/gstrtph263pdepay.h
+++ b/gst/rtp/gstrtph263pdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_H263P_DEPAY_H__
diff --git a/gst/rtp/gstrtph263ppay.c b/gst/rtp/gstrtph263ppay.c
index 3c93d912a..073a6b59f 100644
--- a/gst/rtp/gstrtph263ppay.c
+++ b/gst/rtp/gstrtph263ppay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtph263ppay.h b/gst/rtp/gstrtph263ppay.h
index 7e0531788..23ec8b8e9 100644
--- a/gst/rtp/gstrtph263ppay.h
+++ b/gst/rtp/gstrtph263ppay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_H263P_PAY_H__
diff --git a/gst/rtp/gstrtph264depay.c b/gst/rtp/gstrtph264depay.c
index c49aaa21c..64f8c8e66 100644
--- a/gst/rtp/gstrtph264depay.c
+++ b/gst/rtp/gstrtph264depay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -55,7 +55,6 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"video\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 90000, " "encoding-name = (string) \"H264\"")
         /** optional parameters **/
     /* "profile-level-id = (string) ANY, " */
diff --git a/gst/rtp/gstrtph264depay.h b/gst/rtp/gstrtph264depay.h
index c1f352b4e..e178dcf6d 100644
--- a/gst/rtp/gstrtph264depay.h
+++ b/gst/rtp/gstrtph264depay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_H264_DEPAY_H__
diff --git a/gst/rtp/gstrtph264pay.c b/gst/rtp/gstrtph264pay.c
index 699f6d37b..79727bac0 100644
--- a/gst/rtp/gstrtph264pay.c
+++ b/gst/rtp/gstrtph264pay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtph264pay.h b/gst/rtp/gstrtph264pay.h
index d5b9dfa13..533591045 100644
--- a/gst/rtp/gstrtph264pay.h
+++ b/gst/rtp/gstrtph264pay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_H264_PAY_H__
diff --git a/gst/rtp/gstrtpilbcdepay.c b/gst/rtp/gstrtpilbcdepay.c
index 3029c7ffe..8b4285e1c 100644
--- a/gst/rtp/gstrtpilbcdepay.c
+++ b/gst/rtp/gstrtpilbcdepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -48,7 +48,6 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 8000, "
         "encoding-name = (string) \"ILBC\", "
         "mode = (string) { \"20\", \"30\" }")
@@ -191,8 +190,8 @@ gst_rtp_ilbc_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   gst_rtp_buffer_unmap (&rtp);
 
   if (marker && outbuf) {
-    /* mark start of talkspurt with DISCONT */
-    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
+    /* mark start of talkspurt with RESYNC */
+    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
   }
 
   return outbuf;
diff --git a/gst/rtp/gstrtpilbcdepay.h b/gst/rtp/gstrtpilbcdepay.h
index 18db32759..01fd225ea 100644
--- a/gst/rtp/gstrtpilbcdepay.h
+++ b/gst/rtp/gstrtpilbcdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_ILBC_DEPAY_H__
diff --git a/gst/rtp/gstrtpilbcpay.c b/gst/rtp/gstrtpilbcpay.c
index 4c4bb59e6..7d6ea280b 100644
--- a/gst/rtp/gstrtpilbcpay.c
+++ b/gst/rtp/gstrtpilbcpay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpilbcpay.h b/gst/rtp/gstrtpilbcpay.h
index daa369708..14363c077 100644
--- a/gst/rtp/gstrtpilbcpay.h
+++ b/gst/rtp/gstrtpilbcpay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_ILBC_PAY_H__
diff --git a/gst/rtp/gstrtpj2kdepay.c b/gst/rtp/gstrtpj2kdepay.c
index 201727088..9829258fc 100644
--- a/gst/rtp/gstrtpj2kdepay.c
+++ b/gst/rtp/gstrtpj2kdepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -42,7 +42,6 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"video\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 90000, " "encoding-name = (string) \"JPEG2000\"")
     );
 
diff --git a/gst/rtp/gstrtpj2kdepay.h b/gst/rtp/gstrtpj2kdepay.h
index 020688e15..e5b9d6bea 100644
--- a/gst/rtp/gstrtpj2kdepay.h
+++ b/gst/rtp/gstrtpj2kdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_J2K_DEPAY_H__
diff --git a/gst/rtp/gstrtpj2kpay.c b/gst/rtp/gstrtpj2kpay.c
index ed1856adc..6cefc3142 100644
--- a/gst/rtp/gstrtpj2kpay.c
+++ b/gst/rtp/gstrtpj2kpay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/rtp/gstrtpj2kpay.h b/gst/rtp/gstrtpj2kpay.h
index 88737d635..7160a6220 100644
--- a/gst/rtp/gstrtpj2kpay.h
+++ b/gst/rtp/gstrtpj2kpay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_J2K_PAY_H__
diff --git a/gst/rtp/gstrtpjpegdepay.c b/gst/rtp/gstrtpjpegdepay.c
index 9b3b14064..f10bf464f 100644
--- a/gst/rtp/gstrtpjpegdepay.c
+++ b/gst/rtp/gstrtpjpegdepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -45,12 +45,12 @@ static GstStaticPadTemplate gst_rtp_jpeg_depay_sink_template =
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"video\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 90000, " "encoding-name = (string) \"JPEG\"; "
         /* optional SDP attributes */
         /*
          * "a-framerate = (string) 0.00, "
          * "x-framerate = (string) 0.00, "
+         * "a-framesize = (string) 1234-1234, "
          * "x-dimensions = (string) \"1234,1234\", "
          */
         "application/x-rtp, "
@@ -61,6 +61,7 @@ static GstStaticPadTemplate gst_rtp_jpeg_depay_sink_template =
         /*
          * "a-framerate = (string) 0.00, "
          * "x-framerate = (string) 0.00, "
+         * "a-framesize = (string) 1234-1234, "
          * "x-dimensions = (string) \"1234,1234\""
          */
     )
@@ -457,6 +458,15 @@ gst_rtp_jpeg_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
     }
   }
 
+  if ((media_attr = gst_structure_get_string (structure, "a-framesize"))) {
+    gint w, h;
+
+    if (sscanf (media_attr, "%d-%d", &w, &h) == 2) {
+      rtpjpegdepay->media_width = w;
+      rtpjpegdepay->media_height = h;
+    }
+  }
+
   /* try to get a framerate */
   media_attr = gst_structure_get_string (structure, "a-framerate");
   if (!media_attr)
diff --git a/gst/rtp/gstrtpjpegdepay.h b/gst/rtp/gstrtpjpegdepay.h
index 0b9757056..cb74f12d4 100644
--- a/gst/rtp/gstrtpjpegdepay.h
+++ b/gst/rtp/gstrtpjpegdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_JPEG_DEPAY_H__
diff --git a/gst/rtp/gstrtpjpegpay.c b/gst/rtp/gstrtpjpegpay.c
index 7d93c115e..91bd54c5d 100644
--- a/gst/rtp/gstrtpjpegpay.c
+++ b/gst/rtp/gstrtpjpegpay.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -55,7 +55,9 @@ GST_STATIC_PAD_TEMPLATE ("src",
     GST_STATIC_CAPS ("application/x-rtp, "
         "  media = (string) \"video\", "
         "  payload = (int) 26 ,        "
-        "  clock-rate = (int) 90000,   " "  encoding-name = (string) \"JPEG\"")
+        "  clock-rate = (int) 90000,   "
+        "  encoding-name = (string) \"JPEG\", "
+        "  width = (int) [ 1, 65536 ], " "  height = (int) [ 1, 65536 ]")
     );
 
 GST_DEBUG_CATEGORY_STATIC (rtpjpegpay_debug);
@@ -280,6 +282,8 @@ gst_rtp_jpeg_pay_init (GstRtpJPEGPay * pay)
   pay->quality = DEFAULT_JPEG_QUALITY;
   pay->quant = DEFAULT_JPEG_QUANT;
   pay->type = DEFAULT_JPEG_TYPE;
+  pay->width = -1;
+  pay->height = -1;
 }
 
 static gboolean
@@ -288,26 +292,73 @@ gst_rtp_jpeg_pay_setcaps (GstRTPBasePayload * basepayload, GstCaps * caps)
   GstStructure *caps_structure = gst_caps_get_structure (caps, 0);
   GstRtpJPEGPay *pay;
   gboolean res;
-  gint width = 0, height = 0;
+  gint width = -1, height = -1;
+  gint num = 0, denom;
+  gchar *rate = NULL;
+  gchar *dim = NULL;
+  gchar *size;
 
   pay = GST_RTP_JPEG_PAY (basepayload);
 
-  /* these properties are not mandatory, we can get them from the SOF, if there
+  /* these properties are mandatory, but they might be adjusted by the SOF, if there
    * is one. */
-  if (gst_structure_get_int (caps_structure, "height", &height)) {
-    if (height <= 0 || height > 2040)
-      goto invalid_dimension;
+  if (!gst_structure_get_int (caps_structure, "height", &height) || height <= 0) {
+    goto invalid_dimension;
+  }
+
+  if (!gst_structure_get_int (caps_structure, "width", &width) || width <= 0) {
+    goto invalid_dimension;
   }
-  pay->height = GST_ROUND_UP_8 (height) / 8;
 
-  if (gst_structure_get_int (caps_structure, "width", &width)) {
-    if (width <= 0 || width > 2040)
-      goto invalid_dimension;
+  if (gst_structure_get_fraction (caps_structure, "framerate", &num, &denom) &&
+      (num < 0 || denom <= 0)) {
+    goto invalid_framerate;
+  }
+
+  if (height > 2040 || width > 2040) {
+    pay->height = 0;
+    pay->width = 0;
+  } else {
+    pay->height = GST_ROUND_UP_8 (height) / 8;
+    pay->width = GST_ROUND_UP_8 (width) / 8;
   }
-  pay->width = GST_ROUND_UP_8 (width) / 8;
 
   gst_rtp_base_payload_set_options (basepayload, "video", TRUE, "JPEG", 90000);
-  res = gst_rtp_base_payload_set_outcaps (basepayload, NULL);
+
+  if (num > 0) {
+    gdouble framerate;
+    gst_util_fraction_to_double (num, denom, &framerate);
+    rate = g_strdup_printf ("%f", framerate);
+  }
+
+  size = g_strdup_printf ("%d-%d", width, height);
+
+  if (pay->width == 0) {
+    GST_DEBUG_OBJECT (pay,
+        "width or height are greater than 2040, adding x-dimensions to caps");
+    dim = g_strdup_printf ("%d,%d", width, height);
+  }
+
+  if (rate != NULL && dim != NULL) {
+    res = gst_rtp_base_payload_set_outcaps (basepayload, "a-framerate",
+        G_TYPE_STRING, rate, "a-framesize", G_TYPE_STRING, size,
+        "x-dimensions", G_TYPE_STRING, dim, NULL);
+  } else if (rate != NULL && dim == NULL) {
+    res = gst_rtp_base_payload_set_outcaps (basepayload, "a-framerate",
+        G_TYPE_STRING, rate, "a-framesize", G_TYPE_STRING, size, NULL);
+  } else if (rate == NULL && dim != NULL) {
+    res = gst_rtp_base_payload_set_outcaps (basepayload, "x-dimensions",
+        G_TYPE_STRING, dim, "a-framesize", G_TYPE_STRING, size, NULL);
+  } else {
+    res = gst_rtp_base_payload_set_outcaps (basepayload, "a-framesize",
+        G_TYPE_STRING, size, NULL);
+  }
+
+  if (dim != NULL)
+    g_free (dim);
+  if (rate != NULL)
+    g_free (rate);
+  g_free (size);
 
   return res;
 
@@ -317,6 +368,11 @@ invalid_dimension:
     GST_ERROR_OBJECT (pay, "Invalid width/height from caps");
     return FALSE;
   }
+invalid_framerate:
+  {
+    GST_ERROR_OBJECT (pay, "Invalid framerate from caps");
+    return FALSE;
+  }
 }
 
 static guint
@@ -439,13 +495,26 @@ gst_rtp_jpeg_pay_read_sof (GstRtpJPEGPay * pay, const guint8 * data,
 
   GST_LOG_OBJECT (pay, "got dimensions %ux%u", height, width);
 
-  if (height == 0 || height > 2040)
+  if (height == 0) {
     goto invalid_dimension;
-  if (width == 0 || width > 2040)
+  }
+  if (height > 2040) {
+    height = 0;
+  }
+  if (width == 0) {
     goto invalid_dimension;
+  }
+  if (width > 2040) {
+    width = 0;
+  }
 
-  pay->height = GST_ROUND_UP_8 (height) / 8;
-  pay->width = GST_ROUND_UP_8 (width) / 8;
+  if (height == 0 || width == 0) {
+    pay->height = 0;
+    pay->width = 0;
+  } else {
+    pay->height = GST_ROUND_UP_8 (height) / 8;
+    pay->width = GST_ROUND_UP_8 (width) / 8;
+  }
 
   /* we only support 3 components */
   if (data[off++] != 3)
@@ -502,37 +571,37 @@ gst_rtp_jpeg_pay_read_sof (GstRtpJPEGPay * pay, const guint8 * data,
   /* ERRORS */
 wrong_size:
   {
-    GST_ELEMENT_ERROR (pay, STREAM, FORMAT,
+    GST_ELEMENT_WARNING (pay, STREAM, FORMAT,
         ("Wrong size %u (needed %u).", size, off + 17), (NULL));
     return FALSE;
   }
 wrong_length:
   {
-    GST_ELEMENT_ERROR (pay, STREAM, FORMAT,
+    GST_ELEMENT_WARNING (pay, STREAM, FORMAT,
         ("Wrong SOF length %u.", sof_size), (NULL));
     return FALSE;
   }
 bad_precision:
   {
-    GST_ELEMENT_ERROR (pay, STREAM, FORMAT,
+    GST_ELEMENT_WARNING (pay, STREAM, FORMAT,
         ("Wrong precision, expecting 8."), (NULL));
     return FALSE;
   }
 invalid_dimension:
   {
-    GST_ELEMENT_ERROR (pay, STREAM, FORMAT,
+    GST_ELEMENT_WARNING (pay, STREAM, FORMAT,
         ("Wrong dimension, size %ux%u", width, height), (NULL));
     return FALSE;
   }
 bad_components:
   {
-    GST_ELEMENT_ERROR (pay, STREAM, FORMAT,
+    GST_ELEMENT_WARNING (pay, STREAM, FORMAT,
         ("Wrong number of components"), (NULL));
     return FALSE;
   }
 invalid_comp:
   {
-    GST_ELEMENT_ERROR (pay, STREAM, FORMAT, ("Invalid component"), (NULL));
+    GST_ELEMENT_WARNING (pay, STREAM, FORMAT, ("Invalid component"), (NULL));
     return FALSE;
   }
 }
@@ -683,8 +752,9 @@ gst_rtp_jpeg_pay_handle_buffer (GstRTPBasePayload * basepayload,
 
   /* by now we should either have negotiated the width/height or the SOF header
    * should have filled us in */
-  if (pay->width == 0 || pay->height == 0)
+  if (pay->width < 0 || pay->height < 0) {
     goto no_dimension;
+  }
 
   GST_LOG_OBJECT (pay, "header size %u", jpeg_header_size);
 
@@ -836,31 +906,31 @@ gst_rtp_jpeg_pay_handle_buffer (GstRTPBasePayload * basepayload,
   /* ERRORS */
 unsupported_jpeg:
   {
-    GST_ELEMENT_ERROR (pay, STREAM, FORMAT, ("Unsupported JPEG"), (NULL));
+    GST_ELEMENT_WARNING (pay, STREAM, FORMAT, ("Unsupported JPEG"), (NULL));
     gst_buffer_unmap (buffer, &map);
     gst_buffer_unref (buffer);
-    return GST_FLOW_NOT_SUPPORTED;
+    return GST_FLOW_OK;
   }
 no_dimension:
   {
-    GST_ELEMENT_ERROR (pay, STREAM, FORMAT, ("No size given"), (NULL));
+    GST_ELEMENT_WARNING (pay, STREAM, FORMAT, ("No size given"), (NULL));
     gst_buffer_unmap (buffer, &map);
     gst_buffer_unref (buffer);
-    return GST_FLOW_NOT_NEGOTIATED;
+    return GST_FLOW_OK;
   }
 invalid_format:
   {
     /* error was posted */
     gst_buffer_unmap (buffer, &map);
     gst_buffer_unref (buffer);
-    return GST_FLOW_ERROR;
+    return GST_FLOW_OK;
   }
 invalid_quant:
   {
-    GST_ELEMENT_ERROR (pay, STREAM, FORMAT, ("Invalid quant tables"), (NULL));
+    GST_ELEMENT_WARNING (pay, STREAM, FORMAT, ("Invalid quant tables"), (NULL));
     gst_buffer_unmap (buffer, &map);
     gst_buffer_unref (buffer);
-    return GST_FLOW_ERROR;
+    return GST_FLOW_OK;
   }
 }
 
diff --git a/gst/rtp/gstrtpjpegpay.h b/gst/rtp/gstrtpjpegpay.h
index 2d3129974..4d65ea71e 100644
--- a/gst/rtp/gstrtpjpegpay.h
+++ b/gst/rtp/gstrtpjpegpay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_JPEG_PAY_H__
diff --git a/gst/rtp/gstrtpmp1sdepay.c b/gst/rtp/gstrtpmp1sdepay.c
index be5a9b434..63545e78c 100644
--- a/gst/rtp/gstrtpmp1sdepay.c
+++ b/gst/rtp/gstrtpmp1sdepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -54,11 +54,9 @@ static GstStaticPadTemplate gst_rtp_mp1s_depay_sink_template =
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"other\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) [1, MAX ], " "encoding-name = (string) \"MP1S\";"
         "application/x-rtp, "
         "media = (string) \"video\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) [1, MAX ], " "encoding-name = (string) \"MP1S\"")
     );
 
diff --git a/gst/rtp/gstrtpmp1sdepay.h b/gst/rtp/gstrtpmp1sdepay.h
index 5eb413759..582933bad 100644
--- a/gst/rtp/gstrtpmp1sdepay.h
+++ b/gst/rtp/gstrtpmp1sdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_MP1S_DEPAY_H__
diff --git a/gst/rtp/gstrtpmp2tdepay.c b/gst/rtp/gstrtpmp2tdepay.c
index 026e623d0..345d90616 100644
--- a/gst/rtp/gstrtpmp2tdepay.c
+++ b/gst/rtp/gstrtpmp2tdepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -55,7 +55,6 @@ static GstStaticPadTemplate gst_rtp_mp2t_depay_sink_template =
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"video\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) [1, MAX ], "
         "encoding-name = (string) { MP2T, MP2T-ES } ;"
         /* All optional parameters
diff --git a/gst/rtp/gstrtpmp2tdepay.h b/gst/rtp/gstrtpmp2tdepay.h
index 87f2b3384..aa936dca9 100644
--- a/gst/rtp/gstrtpmp2tdepay.h
+++ b/gst/rtp/gstrtpmp2tdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_MP2T_DEPAY_H__
diff --git a/gst/rtp/gstrtpmp2tpay.c b/gst/rtp/gstrtpmp2tpay.c
index 79fff727c..f3851675b 100644
--- a/gst/rtp/gstrtpmp2tpay.c
+++ b/gst/rtp/gstrtpmp2tpay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpmp2tpay.h b/gst/rtp/gstrtpmp2tpay.h
index bd14c1791..12f49599f 100644
--- a/gst/rtp/gstrtpmp2tpay.h
+++ b/gst/rtp/gstrtpmp2tpay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/rtp/gstrtpmp4adepay.c b/gst/rtp/gstrtpmp4adepay.c
index 0a5cfaa67..e70d5b335 100644
--- a/gst/rtp/gstrtpmp4adepay.c
+++ b/gst/rtp/gstrtpmp4adepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -45,7 +45,6 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) [1, MAX ], "
         "encoding-name = (string) \"MP4A-LATM\""
         /* All optional parameters
@@ -325,7 +324,7 @@ gst_rtp_mp4a_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     GstClockTime timestamp;
 
     avail = gst_adapter_available (rtpmp4adepay->adapter);
-    timestamp = gst_adapter_prev_timestamp (rtpmp4adepay->adapter, NULL);
+    timestamp = gst_adapter_prev_pts (rtpmp4adepay->adapter, NULL);
 
     GST_LOG_OBJECT (rtpmp4adepay, "have marker and %u available", avail);
 
diff --git a/gst/rtp/gstrtpmp4adepay.h b/gst/rtp/gstrtpmp4adepay.h
index 82b5b2640..b44349f8d 100644
--- a/gst/rtp/gstrtpmp4adepay.h
+++ b/gst/rtp/gstrtpmp4adepay.h
@@ -12,8 +12,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_MP4A_DEPAY_H__
diff --git a/gst/rtp/gstrtpmp4apay.c b/gst/rtp/gstrtpmp4apay.c
index 6f860ba54..17a80a81a 100644
--- a/gst/rtp/gstrtpmp4apay.c
+++ b/gst/rtp/gstrtpmp4apay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpmp4apay.h b/gst/rtp/gstrtpmp4apay.h
index 867167129..49d9b650d 100644
--- a/gst/rtp/gstrtpmp4apay.h
+++ b/gst/rtp/gstrtpmp4apay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_MP4A_PAY_H__
diff --git a/gst/rtp/gstrtpmp4gdepay.c b/gst/rtp/gstrtpmp4gdepay.c
index d0a1ef351..db472daa5 100644
--- a/gst/rtp/gstrtpmp4gdepay.c
+++ b/gst/rtp/gstrtpmp4gdepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -46,7 +46,6 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) { \"video\", \"audio\", \"application\" }, "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) [1, MAX ], "
         "encoding-name = (string) \"MPEG4-GENERIC\", "
         /* required string params */
diff --git a/gst/rtp/gstrtpmp4gdepay.h b/gst/rtp/gstrtpmp4gdepay.h
index 88df29c5b..5d5997af3 100644
--- a/gst/rtp/gstrtpmp4gdepay.h
+++ b/gst/rtp/gstrtpmp4gdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_MP4G_DEPAY_H__
diff --git a/gst/rtp/gstrtpmp4gpay.c b/gst/rtp/gstrtpmp4gpay.c
index c1f22ad93..690e63504 100644
--- a/gst/rtp/gstrtpmp4gpay.c
+++ b/gst/rtp/gstrtpmp4gpay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpmp4gpay.h b/gst/rtp/gstrtpmp4gpay.h
index 65efb9e65..fed9c930b 100644
--- a/gst/rtp/gstrtpmp4gpay.h
+++ b/gst/rtp/gstrtpmp4gpay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_MP4G_PAY_H__
diff --git a/gst/rtp/gstrtpmp4vdepay.c b/gst/rtp/gstrtpmp4vdepay.c
index d04fe8b21..3ff58d514 100644
--- a/gst/rtp/gstrtpmp4vdepay.c
+++ b/gst/rtp/gstrtpmp4vdepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -43,7 +43,6 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"video\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) [1, MAX ], " "encoding-name = (string) \"MP4V-ES\""
         /* All optional parameters
          *
diff --git a/gst/rtp/gstrtpmp4vdepay.h b/gst/rtp/gstrtpmp4vdepay.h
index 75013e0bf..436e0db31 100644
--- a/gst/rtp/gstrtpmp4vdepay.h
+++ b/gst/rtp/gstrtpmp4vdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_MP4V_DEPAY_H__
diff --git a/gst/rtp/gstrtpmp4vpay.c b/gst/rtp/gstrtpmp4vpay.c
index 6b91a434d..5185d0362 100644
--- a/gst/rtp/gstrtpmp4vpay.c
+++ b/gst/rtp/gstrtpmp4vpay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpmp4vpay.h b/gst/rtp/gstrtpmp4vpay.h
index 6cb552a87..a974a91dd 100644
--- a/gst/rtp/gstrtpmp4vpay.h
+++ b/gst/rtp/gstrtpmp4vpay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_MP4V_PAY_H__
diff --git a/gst/rtp/gstrtpmpadepay.c b/gst/rtp/gstrtpmpadepay.c
index 25d7466bf..bc9ff06e0 100644
--- a/gst/rtp/gstrtpmpadepay.c
+++ b/gst/rtp/gstrtpmpadepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -42,7 +42,6 @@ static GstStaticPadTemplate gst_rtp_mpa_depay_sink_template =
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 90000, " "encoding-name = (string) \"MPA\";"
         "application/x-rtp, "
         "media = (string) \"audio\", "
@@ -151,8 +150,8 @@ gst_rtp_mpa_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   marker = gst_rtp_buffer_get_marker (&rtp);
 
   if (marker) {
-    /* mark start of talkspurt with discont */
-    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
+    /* mark start of talkspurt with RESYNC */
+    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
   }
   GST_DEBUG_OBJECT (rtpmpadepay,
       "gst_rtp_mpa_depay_chain: pushing buffer of size %" G_GSIZE_FORMAT "",
diff --git a/gst/rtp/gstrtpmpadepay.h b/gst/rtp/gstrtpmpadepay.h
index 36196f5de..1070d779b 100644
--- a/gst/rtp/gstrtpmpadepay.h
+++ b/gst/rtp/gstrtpmpadepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_MPA_DEPAY_H__
diff --git a/gst/rtp/gstrtpmpapay.c b/gst/rtp/gstrtpmpapay.c
index 075a9775e..0c7402d35 100644
--- a/gst/rtp/gstrtpmpapay.c
+++ b/gst/rtp/gstrtpmpapay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpmpapay.h b/gst/rtp/gstrtpmpapay.h
index 3a5c854e2..db298528e 100644
--- a/gst/rtp/gstrtpmpapay.h
+++ b/gst/rtp/gstrtpmpapay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_MPA_PAY_H__
diff --git a/gst/rtp/gstrtpmparobustdepay.c b/gst/rtp/gstrtpmparobustdepay.c
index 193b22eb2..afdd2ba30 100644
--- a/gst/rtp/gstrtpmparobustdepay.c
+++ b/gst/rtp/gstrtpmparobustdepay.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -44,13 +44,11 @@ static GstStaticPadTemplate gst_rtp_mpa_robust_depay_sink_template =
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 90000, "
         "encoding-name = (string) \"MPA-ROBUST\" " "; "
         /* draft versions appear still in use out there */
         "application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) [1, MAX], "
         "encoding-name = (string) { \"X-MP3-DRAFT-00\", \"X-MP3-DRAFT-01\", "
         " \"X-MP3-DRAFT-02\", \"X-MP3-DRAFT-03\", \"X-MP3-DRAFT-04\", "
@@ -716,7 +714,7 @@ gst_rtp_mpa_robust_depay_process (GstRTPBaseDepayload * depayload,
         av += gst_buffer_get_size (buf);
         gst_adapter_push (rtpmpadepay->adapter, buf);
         if (av == size) {
-          timestamp = gst_adapter_prev_timestamp (rtpmpadepay->adapter, NULL);
+          timestamp = gst_adapter_prev_pts (rtpmpadepay->adapter, NULL);
           buf = gst_adapter_take_buffer (rtpmpadepay->adapter, size);
           GST_BUFFER_TIMESTAMP (buf) = timestamp;
           gst_rtp_mpa_robust_depay_submit_adu (rtpmpadepay, buf);
diff --git a/gst/rtp/gstrtpmparobustdepay.h b/gst/rtp/gstrtpmparobustdepay.h
index d8fa84e8b..fc9ec0b69 100644
--- a/gst/rtp/gstrtpmparobustdepay.h
+++ b/gst/rtp/gstrtpmparobustdepay.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_MPA_ROBUST_DEPAY_H__
diff --git a/gst/rtp/gstrtpmpvdepay.c b/gst/rtp/gstrtpmpvdepay.c
index a1f732804..7d8646cd2 100644
--- a/gst/rtp/gstrtpmpvdepay.c
+++ b/gst/rtp/gstrtpmpvdepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -45,7 +45,6 @@ static GstStaticPadTemplate gst_rtp_mpv_depay_sink_template =
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"video\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 90000, " "encoding-name = (string) \"MPV\";"
         "application/x-rtp, "
         "media = (string) \"video\", "
diff --git a/gst/rtp/gstrtpmpvdepay.h b/gst/rtp/gstrtpmpvdepay.h
index 49e3e2d87..80f6c4332 100644
--- a/gst/rtp/gstrtpmpvdepay.h
+++ b/gst/rtp/gstrtpmpvdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_MPV_DEPAY_H__
diff --git a/gst/rtp/gstrtpmpvpay.c b/gst/rtp/gstrtpmpvpay.c
index bd1136945..9e9b65d29 100644
--- a/gst/rtp/gstrtpmpvpay.c
+++ b/gst/rtp/gstrtpmpvpay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpmpvpay.h b/gst/rtp/gstrtpmpvpay.h
index 94d0b5c4e..bcebad932 100644
--- a/gst/rtp/gstrtpmpvpay.h
+++ b/gst/rtp/gstrtpmpvpay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/rtp/gstrtppcmadepay.c b/gst/rtp/gstrtppcmadepay.c
index dab655299..d4fb2afb7 100644
--- a/gst/rtp/gstrtppcmadepay.c
+++ b/gst/rtp/gstrtppcmadepay.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -46,10 +46,9 @@ static GstStaticPadTemplate gst_rtp_pcma_depay_sink_template =
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
         "payload = (int) " GST_RTP_PAYLOAD_PCMA_STRING ", "
-        "clock-rate = (int) 8000, encoding-name = (string) \"PCMA\";"
+        "clock-rate = (int) 8000;"
         "application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) [1, MAX ], encoding-name = (string) \"PCMA\"")
     );
 
@@ -149,8 +148,8 @@ gst_rtp_pcma_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
         gst_util_uint64_scale_int (len, GST_SECOND, depayload->clock_rate);
 
     if (marker) {
-      /* mark start of talkspurt with DISCONT */
-      GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
+      /* mark start of talkspurt with RESYNC */
+      GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
     }
   }
 
diff --git a/gst/rtp/gstrtppcmapay.c b/gst/rtp/gstrtppcmapay.c
index 5401de0a9..7ec7e592b 100644
--- a/gst/rtp/gstrtppcmapay.c
+++ b/gst/rtp/gstrtppcmapay.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtppcmudepay.c b/gst/rtp/gstrtppcmudepay.c
index 3d667e307..14367a10b 100644
--- a/gst/rtp/gstrtppcmudepay.c
+++ b/gst/rtp/gstrtppcmudepay.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -46,10 +46,9 @@ static GstStaticPadTemplate gst_rtp_pcmu_depay_sink_template =
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
         "payload = (int) " GST_RTP_PAYLOAD_PCMU_STRING ", "
-        "encoding-name = (string) \"PCMU\", clock-rate = (int) 8000; "
+        "clock-rate = (int) 8000; "
         "application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "encoding-name = (string) \"PCMU\", clock-rate = (int) [1, MAX ]")
     );
 
@@ -150,8 +149,8 @@ gst_rtp_pcmu_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
         gst_util_uint64_scale_int (len, GST_SECOND, depayload->clock_rate);
 
     if (marker) {
-      /* mark start of talkspurt with DISCONT */
-      GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
+      /* mark start of talkspurt with RESYNC */
+      GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
     }
   }
 
diff --git a/gst/rtp/gstrtppcmupay.c b/gst/rtp/gstrtppcmupay.c
index c15b4b88a..3d69cb302 100644
--- a/gst/rtp/gstrtppcmupay.c
+++ b/gst/rtp/gstrtppcmupay.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpqcelpdepay.c b/gst/rtp/gstrtpqcelpdepay.c
index d11da123c..acb65e4ca 100644
--- a/gst/rtp/gstrtpqcelpdepay.c
+++ b/gst/rtp/gstrtpqcelpdepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -54,7 +54,6 @@ static GstStaticPadTemplate gst_rtp_qcelp_depay_sink_template =
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 8000, "
         "encoding-name = (string) \"QCELP\"; "
         "application/x-rtp, "
diff --git a/gst/rtp/gstrtpqcelpdepay.h b/gst/rtp/gstrtpqcelpdepay.h
index bd01d33c7..ade274de0 100644
--- a/gst/rtp/gstrtpqcelpdepay.h
+++ b/gst/rtp/gstrtpqcelpdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_QCELP_DEPAY_H__
diff --git a/gst/rtp/gstrtpqdmdepay.c b/gst/rtp/gstrtpqdmdepay.c
index b43a50b5c..f854ab14b 100644
--- a/gst/rtp/gstrtpqdmdepay.c
+++ b/gst/rtp/gstrtpqdmdepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -41,9 +41,7 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
-        "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
-        "encoding-name = (string)\"X-QDM\"")
+        "media = (string) \"audio\", " "encoding-name = (string)\"X-QDM\"")
     );
 
 #define gst_rtp_qdm2_depay_parent_class parent_class
diff --git a/gst/rtp/gstrtpqdmdepay.h b/gst/rtp/gstrtpqdmdepay.h
index 38f8681c0..8a6b2b20a 100644
--- a/gst/rtp/gstrtpqdmdepay.h
+++ b/gst/rtp/gstrtpqdmdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_QDM2_DEPAY_H__
diff --git a/gst/rtp/gstrtpsbcdepay.c b/gst/rtp/gstrtpsbcdepay.c
new file mode 100644
index 000000000..28c00fcfd
--- /dev/null
+++ b/gst/rtp/gstrtpsbcdepay.c
@@ -0,0 +1,287 @@
+/*
+ * GStreamer RTP SBC depayloader
+ *
+ * Copyright (C) 2012  Collabora Ltd.
+ *   @author: 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <gst/rtp/gstrtpbuffer.h>
+#include "gstrtpsbcdepay.h"
+
+GST_DEBUG_CATEGORY_STATIC (rtpsbcdepay_debug);
+#define GST_CAT_DEFAULT (rtpsbcdepay_debug)
+
+static GstStaticPadTemplate gst_rtp_sbc_depay_src_template =
+GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-sbc, "
+        "rate = (int) { 16000, 32000, 44100, 48000 }, "
+        "channels = (int) [ 1, 2 ], "
+        "mode = (string) { mono, dual, stereo, joint }, "
+        "blocks = (int) { 4, 8, 12, 16 }, "
+        "subbands = (int) { 4, 8 }, "
+        "allocation-method = (string) { snr, loudness }, "
+        "bitpool = (int) [ 2, 64 ]")
+    );
+
+static GstStaticPadTemplate gst_rtp_sbc_depay_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("application/x-rtp, "
+        "media = (string) audio,"
+        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
+        "clock-rate = (int) { 16000, 32000, 44100, 48000 },"
+        "encoding-name = (string) SBC")
+    );
+
+#define gst_rtp_sbc_depay_parent_class parent_class
+G_DEFINE_TYPE (GstRtpSbcDepay, gst_rtp_sbc_depay, GST_TYPE_RTP_BASE_DEPAYLOAD);
+
+static void gst_rtp_sbc_depay_finalize (GObject * object);
+
+static gboolean gst_rtp_sbc_depay_setcaps (GstRTPBaseDepayload * base,
+    GstCaps * caps);
+static GstBuffer *gst_rtp_sbc_depay_process (GstRTPBaseDepayload * base,
+    GstBuffer * in);
+
+static void
+gst_rtp_sbc_depay_class_init (GstRtpSbcDepayClass * klass)
+{
+  GstRTPBaseDepayloadClass *gstbasertpdepayload_class =
+      GST_RTP_BASE_DEPAYLOAD_CLASS (klass);
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
+  gobject_class->finalize = gst_rtp_sbc_depay_finalize;
+
+  gstbasertpdepayload_class->set_caps = gst_rtp_sbc_depay_setcaps;
+  gstbasertpdepayload_class->process = gst_rtp_sbc_depay_process;
+
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&gst_rtp_sbc_depay_src_template));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&gst_rtp_sbc_depay_sink_template));
+
+  GST_DEBUG_CATEGORY_INIT (rtpsbcdepay_debug, "rtpsbcdepay", 0,
+      "SBC Audio RTP Depayloader");
+
+  gst_element_class_set_static_metadata (element_class,
+      "RTP SBC audio depayloader",
+      "Codec/Depayloader/Network/RTP",
+      "Extracts SBC audio from RTP packets",
+      "Arun Raghavan <arun.raghavan@collabora.co.uk>");
+}
+
+static void
+gst_rtp_sbc_depay_init (GstRtpSbcDepay * rtpsbcdepay)
+{
+  rtpsbcdepay->adapter = gst_adapter_new ();
+}
+
+static void
+gst_rtp_sbc_depay_finalize (GObject * object)
+{
+  GstRtpSbcDepay *depay = GST_RTP_SBC_DEPAY (object);
+
+  gst_object_unref (depay->adapter);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+/* FIXME: This duplicates similar functionality rtpsbcpay, but there isn't a
+ * simple way to consolidate the two. This is best done by moving the function
+ * to the codec-utils library in gst-plugins-base when these elements move to
+ * GStreamer. */
+static int
+gst_rtp_sbc_depay_get_params (GstRtpSbcDepay * depay, const guint8 * data,
+    gint size, int *framelen, int *samples)
+{
+  int blocks, channel_mode, channels, subbands, bitpool;
+  int length;
+
+  if (size < 3) {
+    /* Not enough data for the header */
+    return -1;
+  }
+
+  /* Sanity check */
+  if (data[0] != 0x9c) {
+    GST_WARNING_OBJECT (depay, "Bad packet: couldn't find syncword");
+    return -2;
+  }
+
+  blocks = (data[1] >> 4) & 0x3;
+  blocks = (blocks + 1) * 4;
+  channel_mode = (data[1] >> 2) & 0x3;
+  channels = channel_mode ? 2 : 1;
+  subbands = (data[1] & 0x1);
+  subbands = (subbands + 1) * 4;
+  bitpool = data[2];
+
+  length = 4 + ((4 * subbands * channels) / 8);
+
+  if (channel_mode == 0 || channel_mode == 1) {
+    /* Mono || Dual channel */
+    length += ((blocks * channels * bitpool)
+        + 4 /* round up */ ) / 8;
+  } else {
+    /* Stereo || Joint stereo */
+    gboolean joint = (channel_mode == 3);
+
+    length += ((joint * subbands) + (blocks * bitpool)
+        + 4 /* round up */ ) / 8;
+  }
+
+  *framelen = length;
+  *samples = blocks * subbands;
+
+  return 0;
+}
+
+static gboolean
+gst_rtp_sbc_depay_setcaps (GstRTPBaseDepayload * base, GstCaps * caps)
+{
+  GstRtpSbcDepay *depay = GST_RTP_SBC_DEPAY (base);
+  GstStructure *structure;
+  GstCaps *outcaps, *oldcaps;
+
+  structure = gst_caps_get_structure (caps, 0);
+
+  if (!gst_structure_get_int (structure, "clock-rate", &depay->rate))
+    goto bad_caps;
+
+  outcaps = gst_caps_new_simple ("audio/x-sbc", "rate", G_TYPE_INT,
+      depay->rate, NULL);
+
+  gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (base), outcaps);
+
+  oldcaps = gst_pad_get_current_caps (GST_RTP_BASE_DEPAYLOAD_SINKPAD (base));
+  if (oldcaps && !gst_caps_can_intersect (oldcaps, caps)) {
+    /* Caps have changed, flush old data */
+    gst_adapter_clear (depay->adapter);
+  }
+
+  gst_caps_unref (outcaps);
+
+  return TRUE;
+
+bad_caps:
+  GST_WARNING_OBJECT (depay, "Can't support the caps we got: %"
+      GST_PTR_FORMAT, caps);
+  return FALSE;
+}
+
+static GstBuffer *
+gst_rtp_sbc_depay_process (GstRTPBaseDepayload * base, GstBuffer * in)
+{
+  GstRtpSbcDepay *depay = GST_RTP_SBC_DEPAY (base);
+  GstBuffer *data = NULL;
+  GstRTPBuffer rtp = { NULL };
+
+  gboolean fragment, start, last;
+  guint8 nframes;
+  guint8 *payload;
+  guint payload_len;
+
+  gst_rtp_buffer_map (in, GST_MAP_READ, &rtp);
+
+  GST_LOG_OBJECT (depay, "Got %" G_GSIZE_FORMAT " bytes",
+      gst_buffer_get_size (in));
+
+  if (gst_rtp_buffer_get_marker (&rtp)) {
+    /* Marker isn't supposed to be set */
+    GST_WARNING_OBJECT (depay, "Marker bit was set");
+    goto bad_packet;
+  }
+
+  payload = gst_rtp_buffer_get_payload (&rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+
+  fragment = payload[0] & 0x80;
+  start = payload[0] & 0x40;
+  last = payload[0] & 0x20;
+  nframes = payload[0] & 0x0f;
+
+  payload += 1;
+  payload_len -= 1;
+
+  data = gst_rtp_buffer_get_payload_subbuffer (&rtp, 1, -1);
+
+  if (fragment) {
+    /* Got a packet with a fragment */
+    GST_LOG_OBJECT (depay, "Got fragment");
+
+    if (start && gst_adapter_available (depay->adapter)) {
+      GST_WARNING_OBJECT (depay, "Missing last fragment");
+      gst_adapter_clear (depay->adapter);
+
+    } else if (!start && !gst_adapter_available (depay->adapter)) {
+      GST_WARNING_OBJECT (depay, "Missing start fragment");
+      gst_buffer_unref (data);
+      data = NULL;
+      goto out;
+    }
+
+    gst_adapter_push (depay->adapter, data);
+
+    if (last) {
+      data = gst_adapter_take_buffer (depay->adapter,
+          gst_adapter_available (depay->adapter));
+    } else
+      data = NULL;
+
+  } else {
+    /* !fragment */
+    gint framelen, samples;
+
+    GST_LOG_OBJECT (depay, "Got %d frames", nframes);
+
+    if (gst_rtp_sbc_depay_get_params (depay, payload,
+            payload_len, &framelen, &samples) < 0) {
+      gst_adapter_clear (depay->adapter);
+      goto bad_packet;
+    }
+
+    GST_LOG_OBJECT (depay, "Got payload of %d", payload_len);
+
+    if (nframes * framelen > (gint) payload_len) {
+      GST_WARNING_OBJECT (depay, "Short packet");
+      goto bad_packet;
+    } else if (nframes * framelen < (gint) payload_len) {
+      GST_WARNING_OBJECT (depay, "Junk at end of packet");
+    }
+  }
+
+out:
+  gst_rtp_buffer_unmap (&rtp);
+  return data;
+
+bad_packet:
+  GST_ELEMENT_WARNING (depay, STREAM, DECODE,
+      ("Received invalid RTP payload, dropping"), (NULL));
+  goto out;
+}
+
+gboolean
+gst_rtp_sbc_depay_plugin_init (GstPlugin * plugin)
+{
+  return gst_element_register (plugin, "rtpsbcdepay", GST_RANK_SECONDARY,
+      GST_TYPE_RTP_SBC_DEPAY);
+}
diff --git a/gst/rtp/gstrtpsbcdepay.h b/gst/rtp/gstrtpsbcdepay.h
new file mode 100644
index 000000000..4147a31fd
--- /dev/null
+++ b/gst/rtp/gstrtpsbcdepay.h
@@ -0,0 +1,65 @@
+/*
+ *
+ *  BlueZ - Bluetooth protocol stack for Linux
+ *
+ *  Copyright (C) 2012  Collabora Ltd.
+ *
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2.1 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
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this library; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#ifndef __GST_RTP_SBC_DEPAY_H
+#define __GST_RTP_SBC_DEPAY_H
+
+#include <gst/gst.h>
+#include <gst/base/gstadapter.h>
+#include <gst/rtp/gstrtpbasedepayload.h>
+
+G_BEGIN_DECLS
+#define GST_TYPE_RTP_SBC_DEPAY \
+	(gst_rtp_sbc_depay_get_type())
+#define GST_RTP_SBC_DEPAY(obj) \
+	(G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_SBC_DEPAY,\
+		GstRtpSbcDepay))
+#define GST_RTP_SBC_DEPAY_CLASS(klass) \
+	(G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_SBC_DEPAY,\
+		GstRtpSbcDepayClass))
+#define GST_IS_RTP_SBC_DEPAY(obj) \
+	(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_SBC_DEPAY))
+#define GST_IS_RTP_SBC_DEPAY_CLASS(obj) \
+	(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_SBC_DEPAY))
+typedef struct _GstRtpSbcDepay GstRtpSbcDepay;
+typedef struct _GstRtpSbcDepayClass GstRtpSbcDepayClass;
+
+struct _GstRtpSbcDepay
+{
+  GstRTPBaseDepayload base;
+
+  int rate;
+  GstAdapter *adapter;
+};
+
+struct _GstRtpSbcDepayClass
+{
+  GstRTPBaseDepayloadClass parent_class;
+};
+
+GType gst_rtp_sbc_depay_get_type (void);
+
+gboolean gst_rtp_sbc_depay_plugin_init (GstPlugin * plugin);
+
+G_END_DECLS
+#endif
diff --git a/gst/rtp/gstrtpsbcpay.c b/gst/rtp/gstrtpsbcpay.c
new file mode 100644
index 000000000..8a8f5cdaf
--- /dev/null
+++ b/gst/rtp/gstrtpsbcpay.c
@@ -0,0 +1,350 @@
+/*  GStreamer RTP SBC payloader
+ *  BlueZ - Bluetooth protocol stack for Linux
+ *
+ *  Copyright (C) 2004-2010  Marcel Holtmann <marcel@holtmann.org>
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2.1 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
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this library; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "gstrtpsbcpay.h"
+#include <math.h>
+#include <string.h>
+
+#define RTP_SBC_PAYLOAD_HEADER_SIZE 1
+#define DEFAULT_MIN_FRAMES 0
+#define RTP_SBC_HEADER_TOTAL (12 + RTP_SBC_PAYLOAD_HEADER_SIZE)
+
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+
+/* FIXME: this seems all a bit over the top for a single byte.. */
+struct rtp_payload
+{
+  guint8 frame_count:4;
+  guint8 rfa0:1;
+  guint8 is_last_fragment:1;
+  guint8 is_first_fragment:1;
+  guint8 is_fragmented:1;
+} __attribute__ ((packed));
+
+#elif G_BYTE_ORDER == G_BIG_ENDIAN
+
+struct rtp_payload
+{
+  guint8 is_fragmented:1;
+  guint8 is_first_fragment:1;
+  guint8 is_last_fragment:1;
+  guint8 rfa0:1;
+  guint8 frame_count:4;
+} __attribute__ ((packed));
+
+#else
+#error "Unknown byte order"
+#endif
+
+enum
+{
+  PROP_0,
+  PROP_MIN_FRAMES
+};
+
+GST_DEBUG_CATEGORY_STATIC (gst_rtp_sbc_pay_debug);
+#define GST_CAT_DEFAULT gst_rtp_sbc_pay_debug
+
+#define parent_class gst_rtp_sbc_pay_parent_class
+G_DEFINE_TYPE (GstRtpSBCPay, gst_rtp_sbc_pay, GST_TYPE_RTP_BASE_PAYLOAD);
+
+static GstStaticPadTemplate gst_rtp_sbc_pay_sink_factory =
+GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-sbc, "
+        "rate = (int) { 16000, 32000, 44100, 48000 }, "
+        "channels = (int) [ 1, 2 ], "
+        "channel-mode = (string) { mono, dual, stereo, joint }, "
+        "blocks = (int) { 4, 8, 12, 16 }, "
+        "subbands = (int) { 4, 8 }, "
+        "allocation-method = (string) { snr, loudness }, "
+        "bitpool = (int) [ 2, 64 ]")
+    );
+
+static GstStaticPadTemplate gst_rtp_sbc_pay_src_factory =
+GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("application/x-rtp, "
+        "media = (string) audio,"
+        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
+        "clock-rate = (int) { 16000, 32000, 44100, 48000 },"
+        "encoding-name = (string) SBC")
+    );
+
+static void gst_rtp_sbc_pay_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_rtp_sbc_pay_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+
+static gint
+gst_rtp_sbc_pay_get_frame_len (gint subbands, gint channels,
+    gint blocks, gint bitpool, const gchar * channel_mode)
+{
+  gint len;
+  gint join;
+
+  len = 4 + (4 * subbands * channels) / 8;
+
+  if (strcmp (channel_mode, "mono") == 0 || strcmp (channel_mode, "dual") == 0)
+    len += ((blocks * channels * bitpool) + 7) / 8;
+  else {
+    join = strcmp (channel_mode, "joint") == 0 ? 1 : 0;
+    len += ((join * subbands + blocks * bitpool) + 7) / 8;
+  }
+
+  return len;
+}
+
+static gboolean
+gst_rtp_sbc_pay_set_caps (GstRTPBasePayload * payload, GstCaps * caps)
+{
+  GstRtpSBCPay *sbcpay;
+  gint rate, subbands, channels, blocks, bitpool;
+  gint frame_len;
+  const gchar *channel_mode;
+  GstStructure *structure;
+
+  sbcpay = GST_RTP_SBC_PAY (payload);
+
+  structure = gst_caps_get_structure (caps, 0);
+  if (!gst_structure_get_int (structure, "rate", &rate))
+    return FALSE;
+  if (!gst_structure_get_int (structure, "channels", &channels))
+    return FALSE;
+  if (!gst_structure_get_int (structure, "blocks", &blocks))
+    return FALSE;
+  if (!gst_structure_get_int (structure, "bitpool", &bitpool))
+    return FALSE;
+  if (!gst_structure_get_int (structure, "subbands", &subbands))
+    return FALSE;
+
+  channel_mode = gst_structure_get_string (structure, "channel-mode");
+  if (!channel_mode)
+    return FALSE;
+
+  frame_len = gst_rtp_sbc_pay_get_frame_len (subbands, channels, blocks,
+      bitpool, channel_mode);
+
+  sbcpay->frame_length = frame_len;
+
+  gst_rtp_base_payload_set_options (payload, "audio", TRUE, "SBC", rate);
+
+  GST_DEBUG_OBJECT (payload, "calculated frame length: %d ", frame_len);
+
+  return gst_rtp_base_payload_set_outcaps (payload, NULL);
+}
+
+static GstFlowReturn
+gst_rtp_sbc_pay_flush_buffers (GstRtpSBCPay * sbcpay)
+{
+  GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
+  guint available;
+  guint max_payload;
+  GstBuffer *outbuf;
+  guint8 *payload_data;
+  guint frame_count;
+  guint payload_length;
+  struct rtp_payload *payload;
+
+  if (sbcpay->frame_length == 0) {
+    GST_ERROR_OBJECT (sbcpay, "Frame length is 0");
+    return GST_FLOW_ERROR;
+  }
+
+  available = gst_adapter_available (sbcpay->adapter);
+
+  max_payload =
+      gst_rtp_buffer_calc_payload_len (GST_RTP_BASE_PAYLOAD_MTU (sbcpay) -
+      RTP_SBC_PAYLOAD_HEADER_SIZE, 0, 0);
+
+  max_payload = MIN (max_payload, available);
+  frame_count = max_payload / sbcpay->frame_length;
+  payload_length = frame_count * sbcpay->frame_length;
+  if (payload_length == 0)      /* Nothing to send */
+    return GST_FLOW_OK;
+
+  outbuf = gst_rtp_buffer_new_allocate (payload_length +
+      RTP_SBC_PAYLOAD_HEADER_SIZE, 0, 0);
+
+  /* get payload */
+  gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
+
+  gst_rtp_buffer_set_payload_type (&rtp, GST_RTP_BASE_PAYLOAD_PT (sbcpay));
+
+  /* write header and copy data into payload */
+  payload_data = gst_rtp_buffer_get_payload (&rtp);
+  payload = (struct rtp_payload *) payload_data;
+  memset (payload, 0, sizeof (struct rtp_payload));
+  payload->frame_count = frame_count;
+
+  gst_adapter_copy (sbcpay->adapter, payload_data +
+      RTP_SBC_PAYLOAD_HEADER_SIZE, 0, payload_length);
+
+  gst_rtp_buffer_unmap (&rtp);
+
+  gst_adapter_flush (sbcpay->adapter, payload_length);
+
+  /* FIXME: what about duration? */
+  GST_BUFFER_TIMESTAMP (outbuf) = sbcpay->timestamp;
+  GST_DEBUG_OBJECT (sbcpay, "Pushing %d bytes", payload_length);
+
+  return gst_rtp_base_payload_push (GST_RTP_BASE_PAYLOAD (sbcpay), outbuf);
+}
+
+static GstFlowReturn
+gst_rtp_sbc_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buffer)
+{
+  GstRtpSBCPay *sbcpay;
+  guint available;
+
+  /* FIXME check for negotiation */
+
+  sbcpay = GST_RTP_SBC_PAY (payload);
+  sbcpay->timestamp = GST_BUFFER_TIMESTAMP (buffer);
+
+  gst_adapter_push (sbcpay->adapter, buffer);
+
+  available = gst_adapter_available (sbcpay->adapter);
+  if (available + RTP_SBC_HEADER_TOTAL >=
+      GST_RTP_BASE_PAYLOAD_MTU (sbcpay) ||
+      (available > (sbcpay->min_frames * sbcpay->frame_length)))
+    return gst_rtp_sbc_pay_flush_buffers (sbcpay);
+
+  return GST_FLOW_OK;
+}
+
+static gboolean
+gst_rtp_sbc_pay_sink_event (GstRTPBasePayload * payload, GstEvent * event)
+{
+  GstRtpSBCPay *sbcpay = GST_RTP_SBC_PAY (payload);
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_EOS:
+      gst_rtp_sbc_pay_flush_buffers (sbcpay);
+      break;
+    default:
+      break;
+  }
+
+  return GST_RTP_BASE_PAYLOAD_CLASS (parent_class)->sink_event (payload, event);
+}
+
+static void
+gst_rtp_sbc_pay_finalize (GObject * object)
+{
+  GstRtpSBCPay *sbcpay = GST_RTP_SBC_PAY (object);
+
+  g_object_unref (sbcpay->adapter);
+
+  GST_CALL_PARENT (G_OBJECT_CLASS, finalize, (object));
+}
+
+static void
+gst_rtp_sbc_pay_class_init (GstRtpSBCPayClass * klass)
+{
+  GstRTPBasePayloadClass *payload_class = GST_RTP_BASE_PAYLOAD_CLASS (klass);
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
+  gobject_class->finalize = gst_rtp_sbc_pay_finalize;
+  gobject_class->set_property = gst_rtp_sbc_pay_set_property;
+  gobject_class->get_property = gst_rtp_sbc_pay_get_property;
+
+  payload_class->set_caps = GST_DEBUG_FUNCPTR (gst_rtp_sbc_pay_set_caps);
+  payload_class->handle_buffer =
+      GST_DEBUG_FUNCPTR (gst_rtp_sbc_pay_handle_buffer);
+  payload_class->sink_event = GST_DEBUG_FUNCPTR (gst_rtp_sbc_pay_sink_event);
+
+  /* properties */
+  g_object_class_install_property (G_OBJECT_CLASS (klass),
+      PROP_MIN_FRAMES,
+      g_param_spec_int ("min-frames", "minimum frame number",
+          "Minimum quantity of frames to send in one packet "
+          "(-1 for maximum allowed by the mtu)",
+          -1, G_MAXINT, DEFAULT_MIN_FRAMES, G_PARAM_READWRITE));
+
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&gst_rtp_sbc_pay_sink_factory));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&gst_rtp_sbc_pay_src_factory));
+
+  gst_element_class_set_static_metadata (element_class, "RTP packet payloader",
+      "Codec/Payloader/Network", "Payload SBC audio as RTP packets",
+      "Thiago Sousa Santos <thiagoss@lcc.ufcg.edu.br>");
+
+  GST_DEBUG_CATEGORY_INIT (gst_rtp_sbc_pay_debug, "rtpsbcpay", 0,
+      "RTP SBC payloader");
+}
+
+static void
+gst_rtp_sbc_pay_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstRtpSBCPay *sbcpay;
+
+  sbcpay = GST_RTP_SBC_PAY (object);
+
+  switch (prop_id) {
+    case PROP_MIN_FRAMES:
+      sbcpay->min_frames = g_value_get_int (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_rtp_sbc_pay_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstRtpSBCPay *sbcpay;
+
+  sbcpay = GST_RTP_SBC_PAY (object);
+
+  switch (prop_id) {
+    case PROP_MIN_FRAMES:
+      g_value_set_int (value, sbcpay->min_frames);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_rtp_sbc_pay_init (GstRtpSBCPay * self)
+{
+  self->adapter = gst_adapter_new ();
+  self->frame_length = 0;
+  self->timestamp = 0;
+
+  self->min_frames = DEFAULT_MIN_FRAMES;
+}
+
+gboolean
+gst_rtp_sbc_pay_plugin_init (GstPlugin * plugin)
+{
+  return gst_element_register (plugin, "rtpsbcpay", GST_RANK_NONE,
+      GST_TYPE_RTP_SBC_PAY);
+}
diff --git a/gst/rtp/gstrtpsbcpay.h b/gst/rtp/gstrtpsbcpay.h
new file mode 100644
index 000000000..42cf02e2d
--- /dev/null
+++ b/gst/rtp/gstrtpsbcpay.h
@@ -0,0 +1,64 @@
+/*  GStreamer RTP SBC payloader
+ *  BlueZ - Bluetooth protocol stack for Linux
+ *
+ *  Copyright (C) 2004-2010  Marcel Holtmann <marcel@holtmann.org>
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2.1 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
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this library; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#include <gst/gst.h>
+#include <gst/base/gstadapter.h>
+#include <gst/rtp/gstrtpbasepayload.h>
+#include <gst/rtp/gstrtpbuffer.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_RTP_SBC_PAY \
+	(gst_rtp_sbc_pay_get_type())
+#define GST_RTP_SBC_PAY(obj) \
+	(G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_SBC_PAY,\
+		GstRtpSBCPay))
+#define GST_RTP_SBC_PAY_CLASS(klass) \
+	(G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_SBC_PAY,\
+		GstRtpSBCPayClass))
+#define GST_IS_RTP_SBC_PAY(obj) \
+	(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_SBC_PAY))
+#define GST_IS_RTP_SBC_PAY_CLASS(obj) \
+	(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_SBC_PAY))
+
+typedef struct _GstRtpSBCPay GstRtpSBCPay;
+typedef struct _GstRtpSBCPayClass GstRtpSBCPayClass;
+
+struct _GstRtpSBCPay {
+	GstRTPBasePayload base;
+
+	GstAdapter *adapter;
+	GstClockTime timestamp;
+
+	guint frame_length;
+
+	guint min_frames;
+};
+
+struct _GstRtpSBCPayClass {
+	GstRTPBasePayloadClass parent_class;
+};
+
+GType gst_rtp_sbc_pay_get_type(void);
+
+gboolean gst_rtp_sbc_pay_plugin_init (GstPlugin * plugin);
+
+G_END_DECLS
diff --git a/gst/rtp/gstrtpsirendepay.c b/gst/rtp/gstrtpsirendepay.c
index e09964246..9d1e1ef62 100644
--- a/gst/rtp/gstrtpsirendepay.c
+++ b/gst/rtp/gstrtpsirendepay.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -34,7 +34,6 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 16000, "
         "encoding-name = (string) \"SIREN\", " "dct-length = (int) 320")
     );
diff --git a/gst/rtp/gstrtpsirendepay.h b/gst/rtp/gstrtpsirendepay.h
index 1483f1d19..d1ffb11e0 100644
--- a/gst/rtp/gstrtpsirendepay.h
+++ b/gst/rtp/gstrtpsirendepay.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_SIREN_DEPAY_H__
diff --git a/gst/rtp/gstrtpsirenpay.c b/gst/rtp/gstrtpsirenpay.c
index e62f18995..2277fecfe 100644
--- a/gst/rtp/gstrtpsirenpay.c
+++ b/gst/rtp/gstrtpsirenpay.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpsirenpay.h b/gst/rtp/gstrtpsirenpay.h
index ee9f3d230..eaba5b5a4 100644
--- a/gst/rtp/gstrtpsirenpay.h
+++ b/gst/rtp/gstrtpsirenpay.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_SIREN_PAY_H__
diff --git a/gst/rtp/gstrtpspeexdepay.c b/gst/rtp/gstrtpspeexdepay.c
index 3e30f0431..97250a765 100644
--- a/gst/rtp/gstrtpspeexdepay.c
+++ b/gst/rtp/gstrtpspeexdepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -45,7 +45,6 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate =  (int) [6000, 48000], "
         "encoding-name = (string) \"SPEEX\", "
         "encoding-params = (string) \"1\"")
diff --git a/gst/rtp/gstrtpspeexpay.c b/gst/rtp/gstrtpspeexpay.c
index bb56412fa..1f838664f 100644
--- a/gst/rtp/gstrtpspeexpay.c
+++ b/gst/rtp/gstrtpspeexpay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpsv3vdepay.c b/gst/rtp/gstrtpsv3vdepay.c
index 1c0f1087f..7e3bc8991 100644
--- a/gst/rtp/gstrtpsv3vdepay.c
+++ b/gst/rtp/gstrtpsv3vdepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -42,7 +42,6 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"video\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 90000, "
         "encoding-name = (string) { \"X-SV3V-ES\", \"X-SORENSON-VIDEO\" , \"X-SORENSONVIDEO\" , \"X-SorensonVideo\" }")
     );
diff --git a/gst/rtp/gstrtpsv3vdepay.h b/gst/rtp/gstrtpsv3vdepay.h
index 86db193b6..428684a7d 100644
--- a/gst/rtp/gstrtpsv3vdepay.h
+++ b/gst/rtp/gstrtpsv3vdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_SV3V_DEPAY_H__
diff --git a/gst/rtp/gstrtptheoradepay.c b/gst/rtp/gstrtptheoradepay.c
index 5c6fe8274..8fa348a65 100644
--- a/gst/rtp/gstrtptheoradepay.c
+++ b/gst/rtp/gstrtptheoradepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -36,7 +36,6 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"video\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 90000, " "encoding-name = (string) \"THEORA\""
         /* All required parameters 
          *
@@ -550,8 +549,11 @@ gst_rtp_theora_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
       gst_buffer_fill (outbuf, 0, payload, length);
     }
 
-    if (payload_len > 0 && (payload[0] & 0xC0) == 0x0)
+    if (payload_len > 0 && (payload[0] & 0xC0) == 0x0) {
       rtptheoradepay->needs_keyframe = FALSE;
+    } else {
+      GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT);
+    }
 
     payload += length;
     payload_len -= length;
diff --git a/gst/rtp/gstrtptheoradepay.h b/gst/rtp/gstrtptheoradepay.h
index 320e9b7ef..2b0b26016 100644
--- a/gst/rtp/gstrtptheoradepay.h
+++ b/gst/rtp/gstrtptheoradepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_THEORA_DEPAY_H__
diff --git a/gst/rtp/gstrtptheorapay.c b/gst/rtp/gstrtptheorapay.c
index 296e1457a..baca249c0 100644
--- a/gst/rtp/gstrtptheorapay.c
+++ b/gst/rtp/gstrtptheorapay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -87,6 +87,10 @@ static GstFlowReturn gst_rtp_theora_pay_handle_buffer (GstRTPBasePayload * pad,
 static gboolean gst_rtp_theora_pay_sink_event (GstRTPBasePayload * payload,
     GstEvent * event);
 
+static gboolean gst_rtp_theora_pay_parse_id (GstRTPBasePayload * basepayload,
+    guint8 * data, guint size);
+static gboolean gst_rtp_theora_pay_finish_headers (GstRTPBasePayload *
+    basepayload);
 
 static void gst_rtp_theora_pay_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec);
@@ -168,12 +172,83 @@ static gboolean
 gst_rtp_theora_pay_setcaps (GstRTPBasePayload * basepayload, GstCaps * caps)
 {
   GstRtpTheoraPay *rtptheorapay;
+  GstStructure *s;
+  const GValue *array;
+  gint asize, i;
+  GstBuffer *buf;
+  GstMapInfo map;
 
   rtptheorapay = GST_RTP_THEORA_PAY (basepayload);
 
+  s = gst_caps_get_structure (caps, 0);
+
   rtptheorapay->need_headers = TRUE;
 
+  if ((array = gst_structure_get_value (s, "streamheader")) == NULL)
+    goto done;
+
+  if (G_VALUE_TYPE (array) != GST_TYPE_ARRAY)
+    goto done;
+
+  if ((asize = gst_value_array_get_size (array)) < 3)
+    goto done;
+
+  for (i = 0; i < asize; i++) {
+    const GValue *value;
+
+    value = gst_value_array_get_value (array, i);
+    if ((buf = gst_value_get_buffer (value)) == NULL)
+      goto null_buffer;
+
+    gst_buffer_map (buf, &map, GST_MAP_READ);
+    /* no data packets allowed */
+    if (map.size < 1)
+      goto invalid_streamheader;
+
+    /* we need packets with id 0x80, 0x81, 0x82 */
+    if (map.data[0] != 0x80 + i)
+      goto invalid_streamheader;
+
+    if (i == 0) {
+      /* identification, we need to parse this in order to get the clock rate. */
+      if (G_UNLIKELY (!gst_rtp_theora_pay_parse_id (basepayload, map.data,
+                  map.size)))
+        goto parse_id_failed;
+    }
+    GST_DEBUG_OBJECT (rtptheorapay, "collecting header %d", i);
+    rtptheorapay->headers =
+        g_list_append (rtptheorapay->headers, gst_buffer_ref (buf));
+    gst_buffer_unmap (buf, &map);
+  }
+  if (!gst_rtp_theora_pay_finish_headers (basepayload))
+    goto finish_failed;
+
+done:
   return TRUE;
+
+  /* ERRORS */
+null_buffer:
+  {
+    GST_WARNING_OBJECT (rtptheorapay, "streamheader with null buffer received");
+    return FALSE;
+  }
+invalid_streamheader:
+  {
+    GST_WARNING_OBJECT (rtptheorapay, "unable to parse initial header");
+    gst_buffer_unmap (buf, &map);
+    return FALSE;
+  }
+parse_id_failed:
+  {
+    GST_WARNING_OBJECT (rtptheorapay, "unable to parse initial header");
+    gst_buffer_unmap (buf, &map);
+    return FALSE;
+  }
+finish_failed:
+  {
+    GST_WARNING_OBJECT (rtptheorapay, "unable to finish headers");
+    return FALSE;
+  }
 }
 
 static void
@@ -387,7 +462,6 @@ gst_rtp_theora_pay_finish_headers (GstRTPBasePayload * basepayload)
   /* store length for each header */
   for (walk = rtptheorapay->headers; walk; walk = g_list_next (walk)) {
     GstBuffer *buf = GST_BUFFER_CAST (walk->data);
-
     guint bsize, size, temp;
     guint flag;
 
@@ -412,7 +486,7 @@ gst_rtp_theora_pay_finish_headers (GstRTPBasePayload * basepayload)
       size--;
       data[size] = (bsize & 0x7f) | flag;
       bsize >>= 7;
-      flag = 0x80;
+      flag = 0x80;              /* Flag bit on all bytes of the length except the last */
     }
     data += temp;
   }
@@ -420,13 +494,14 @@ gst_rtp_theora_pay_finish_headers (GstRTPBasePayload * basepayload)
   /* copy header data */
   for (walk = rtptheorapay->headers; walk; walk = g_list_next (walk)) {
     GstBuffer *buf = GST_BUFFER_CAST (walk->data);
-    GstMapInfo map;
 
-    gst_buffer_map (buf, &map, GST_MAP_READ);
-    memcpy (data, map.data, map.size);
-    gst_buffer_unmap (buf, &map);
-    data += map.size;
+    gst_buffer_extract (buf, 0, data, gst_buffer_get_size (buf));
+    data += gst_buffer_get_size (buf);
+    gst_buffer_unref (buf);
   }
+  g_list_free (rtptheorapay->headers);
+  rtptheorapay->headers = NULL;
+  rtptheorapay->need_headers = FALSE;
 
   /* serialize to base64 */
   configuration = g_base64_encode (config, configlen);
@@ -607,9 +682,9 @@ gst_rtp_theora_pay_payload_buffer (GstRtpTheoraPay * rtptheorapay, guint8 TDT,
       }
     }
     if (fragmented) {
+      gst_rtp_buffer_unmap (&rtp);
       /* fragmented packets are always flushed and have ptks of 0 */
       rtptheorapay->payload_pkts = 0;
-      gst_rtp_buffer_unmap (&rtp);
       ret = gst_rtp_theora_pay_flush_packet (rtptheorapay);
 
       if (size > 0) {
@@ -688,20 +763,17 @@ gst_rtp_theora_pay_handle_buffer (GstRTPBasePayload * basepayload,
     keyframe = ((data[0] & 0x40) == 0);
   }
 
-  if (rtptheorapay->need_headers) {
-    /* we need to collect the headers and construct a config string from them */
-    if (TDT != 0) {
-      GST_DEBUG_OBJECT (rtptheorapay, "collecting header, buffer %p", buffer);
-      /* append header to the list of headers */
-      gst_buffer_unmap (buffer, &map);
-      rtptheorapay->headers = g_list_append (rtptheorapay->headers, buffer);
-      ret = GST_FLOW_OK;
-      goto done;
-    } else {
-      if (!gst_rtp_theora_pay_finish_headers (basepayload))
-        goto header_error;
-      rtptheorapay->need_headers = FALSE;
-    }
+  /* we need to collect the headers and construct a config string from them */
+  if (TDT != 0) {
+    GST_DEBUG_OBJECT (rtptheorapay, "collecting header, buffer %p", buffer);
+    /* append header to the list of headers */
+    gst_buffer_unmap (buffer, &map);
+    rtptheorapay->headers = g_list_append (rtptheorapay->headers, buffer);
+    ret = GST_FLOW_OK;
+    goto done;
+  } else if (rtptheorapay->headers) {
+    if (!gst_rtp_theora_pay_finish_headers (basepayload))
+      goto header_error;
   }
 
   /* there is a config request, see if we need to insert it */
diff --git a/gst/rtp/gstrtptheorapay.h b/gst/rtp/gstrtptheorapay.h
index 5d46937aa..0a1d4725d 100644
--- a/gst/rtp/gstrtptheorapay.h
+++ b/gst/rtp/gstrtptheorapay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_THEORA_PAY_H__
diff --git a/gst/rtp/gstrtpvorbisdepay.c b/gst/rtp/gstrtpvorbisdepay.c
index dea894daf..77097510d 100644
--- a/gst/rtp/gstrtpvorbisdepay.c
+++ b/gst/rtp/gstrtpvorbisdepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -40,7 +40,6 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) [1, MAX ], " "encoding-name = (string) \"VORBIS\""
         /* All required parameters 
          *
diff --git a/gst/rtp/gstrtpvorbisdepay.h b/gst/rtp/gstrtpvorbisdepay.h
index fb362f7b2..a343d04e1 100644
--- a/gst/rtp/gstrtpvorbisdepay.h
+++ b/gst/rtp/gstrtpvorbisdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_VORBIS_DEPAY_H__
diff --git a/gst/rtp/gstrtpvorbispay.c b/gst/rtp/gstrtpvorbispay.c
index dc1db9b0f..b7ff2ccf2 100644
--- a/gst/rtp/gstrtpvorbispay.c
+++ b/gst/rtp/gstrtpvorbispay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -58,6 +58,14 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_STATIC_CAPS ("audio/x-vorbis")
     );
 
+#define DEFAULT_CONFIG_INTERVAL 0
+
+enum
+{
+  PROP_0,
+  PROP_CONFIG_INTERVAL
+};
+
 #define gst_rtp_vorbis_pay_parent_class parent_class
 G_DEFINE_TYPE (GstRtpVorbisPay, gst_rtp_vorbis_pay, GST_TYPE_RTP_BASE_PAYLOAD);
 
@@ -70,12 +78,24 @@ static GstFlowReturn gst_rtp_vorbis_pay_handle_buffer (GstRTPBasePayload * pad,
 static gboolean gst_rtp_vorbis_pay_sink_event (GstRTPBasePayload * payload,
     GstEvent * event);
 
+static gboolean gst_rtp_vorbis_pay_parse_id (GstRTPBasePayload * basepayload,
+    guint8 * data, guint size);
+static gboolean gst_rtp_vorbis_pay_finish_headers (GstRTPBasePayload *
+    basepayload);
+
+static void gst_rtp_vorbis_pay_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_rtp_vorbis_pay_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+
 static void
 gst_rtp_vorbis_pay_class_init (GstRtpVorbisPayClass * klass)
 {
+  GObjectClass *gobject_class;
   GstElementClass *gstelement_class;
   GstRTPBasePayloadClass *gstrtpbasepayload_class;
 
+  gobject_class = (GObjectClass *) klass;
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasepayload_class = (GstRTPBasePayloadClass *) klass;
 
@@ -85,6 +105,9 @@ gst_rtp_vorbis_pay_class_init (GstRtpVorbisPayClass * klass)
   gstrtpbasepayload_class->handle_buffer = gst_rtp_vorbis_pay_handle_buffer;
   gstrtpbasepayload_class->sink_event = gst_rtp_vorbis_pay_sink_event;
 
+  gobject_class->set_property = gst_rtp_vorbis_pay_set_property;
+  gobject_class->get_property = gst_rtp_vorbis_pay_get_property;
+
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&gst_rtp_vorbis_pay_src_template));
   gst_element_class_add_pad_template (gstelement_class,
@@ -98,11 +121,20 @@ gst_rtp_vorbis_pay_class_init (GstRtpVorbisPayClass * klass)
 
   GST_DEBUG_CATEGORY_INIT (rtpvorbispay_debug, "rtpvorbispay", 0,
       "Vorbis RTP Payloader");
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_CONFIG_INTERVAL,
+      g_param_spec_uint ("config-interval", "Config Send Interval",
+          "Send Config Insertion Interval in seconds (configuration headers "
+          "will be multiplexed in the data stream when detected.) (0 = disabled)",
+          0, 3600, DEFAULT_CONFIG_INTERVAL,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)
+      );
 }
 
 static void
 gst_rtp_vorbis_pay_init (GstRtpVorbisPay * rtpvorbispay)
 {
+  rtpvorbispay->last_config = GST_CLOCK_TIME_NONE;
 }
 
 static void
@@ -121,18 +153,97 @@ gst_rtp_vorbis_pay_cleanup (GstRtpVorbisPay * rtpvorbispay)
   rtpvorbispay->headers = NULL;
 
   gst_rtp_vorbis_pay_clear_packet (rtpvorbispay);
+
+  if (rtpvorbispay->config_data)
+    g_free (rtpvorbispay->config_data);
+  rtpvorbispay->config_data = NULL;
+  rtpvorbispay->last_config = GST_CLOCK_TIME_NONE;
 }
 
 static gboolean
 gst_rtp_vorbis_pay_setcaps (GstRTPBasePayload * basepayload, GstCaps * caps)
 {
   GstRtpVorbisPay *rtpvorbispay;
+  GstStructure *s;
+  const GValue *array;
+  gint asize, i;
+  GstBuffer *buf;
+  GstMapInfo map;
 
   rtpvorbispay = GST_RTP_VORBIS_PAY (basepayload);
 
+  s = gst_caps_get_structure (caps, 0);
+
   rtpvorbispay->need_headers = TRUE;
 
+  if ((array = gst_structure_get_value (s, "streamheader")) == NULL)
+    goto done;
+
+  if (G_VALUE_TYPE (array) != GST_TYPE_ARRAY)
+    goto done;
+
+  if ((asize = gst_value_array_get_size (array)) < 3)
+    goto done;
+
+  for (i = 0; i < asize; i++) {
+    const GValue *value;
+
+    value = gst_value_array_get_value (array, i);
+    if ((buf = gst_value_get_buffer (value)) == NULL)
+      goto null_buffer;
+
+    gst_buffer_map (buf, &map, GST_MAP_READ);
+    if (map.size < 1)
+      goto invalid_streamheader;
+
+    /* no data packets allowed */
+    if ((map.data[0] & 1) == 0)
+      goto invalid_streamheader;
+
+    /* we need packets with id 1, 3, 5 */
+    if (map.data[0] != (i * 2) + 1)
+      goto invalid_streamheader;
+
+    if (i == 0) {
+      /* identification, we need to parse this in order to get the clock rate. */
+      if (G_UNLIKELY (!gst_rtp_vorbis_pay_parse_id (basepayload, map.data,
+                  map.size)))
+        goto parse_id_failed;
+    }
+    GST_DEBUG_OBJECT (rtpvorbispay, "collecting header %d", i);
+    rtpvorbispay->headers =
+        g_list_append (rtpvorbispay->headers, gst_buffer_ref (buf));
+    gst_buffer_unmap (buf, &map);
+  }
+  if (!gst_rtp_vorbis_pay_finish_headers (basepayload))
+    goto finish_failed;
+
+done:
   return TRUE;
+
+  /* ERRORS */
+null_buffer:
+  {
+    GST_WARNING_OBJECT (rtpvorbispay, "streamheader with null buffer received");
+    return FALSE;
+  }
+invalid_streamheader:
+  {
+    GST_WARNING_OBJECT (rtpvorbispay, "unable to parse initial header");
+    gst_buffer_unmap (buf, &map);
+    return FALSE;
+  }
+parse_id_failed:
+  {
+    GST_WARNING_OBJECT (rtpvorbispay, "unable to parse initial header");
+    gst_buffer_unmap (buf, &map);
+    return FALSE;
+  }
+finish_failed:
+  {
+    GST_WARNING_OBJECT (rtpvorbispay, "unable to finish headers");
+    return FALSE;
+  }
 }
 
 static void
@@ -168,6 +279,7 @@ gst_rtp_vorbis_pay_init_packet (GstRtpVorbisPay * rtpvorbispay, guint8 VDT,
       gst_rtp_buffer_new_allocate_len (GST_RTP_BASE_PAYLOAD_MTU
       (rtpvorbispay), 0, 0);
   gst_rtp_vorbis_pay_reset_packet (rtpvorbispay, VDT);
+
   GST_BUFFER_TIMESTAMP (rtpvorbispay->packet) = timestamp;
 }
 
@@ -229,7 +341,7 @@ gst_rtp_vorbis_pay_finish_headers (GstRTPBasePayload * basepayload)
 {
   GstRtpVorbisPay *rtpvorbispay = GST_RTP_VORBIS_PAY (basepayload);
   GList *walk;
-  guint length, size, n_headers, configlen;
+  guint length, size, n_headers, configlen, extralen;
   gchar *cstr, *configuration;
   guint8 *data, *config;
   guint32 ident;
@@ -288,6 +400,7 @@ gst_rtp_vorbis_pay_finish_headers (GstRTPBasePayload * basepayload)
   length = 0;
   n_headers = 0;
   ident = fnv1_hash_32_new ();
+  extralen = 1;
   for (walk = rtpvorbispay->headers; walk; walk = g_list_next (walk)) {
     GstBuffer *buf = GST_BUFFER_CAST (walk->data);
     GstMapInfo map;
@@ -302,6 +415,7 @@ gst_rtp_vorbis_pay_finish_headers (GstRTPBasePayload * basepayload)
     if (g_list_next (walk)) {
       do {
         size++;
+        extralen++;
         bsize >>= 7;
       } while (bsize);
     }
@@ -376,10 +490,22 @@ gst_rtp_vorbis_pay_finish_headers (GstRTPBasePayload * basepayload)
 
     gst_buffer_extract (buf, 0, data, gst_buffer_get_size (buf));
     data += gst_buffer_get_size (buf);
+    gst_buffer_unref (buf);
   }
+  g_list_free (rtpvorbispay->headers);
+  rtpvorbispay->headers = NULL;
+  rtpvorbispay->need_headers = FALSE;
 
   /* serialize to base64 */
   configuration = g_base64_encode (config, configlen);
+
+  /* store for later re-sending */
+  rtpvorbispay->config_size = configlen - 4 - 3 - 2;
+  rtpvorbispay->config_data = g_malloc (rtpvorbispay->config_size);
+  rtpvorbispay->config_extra_len = extralen;
+  memcpy (rtpvorbispay->config_data, config + 4 + 3 + 2,
+      rtpvorbispay->config_size);
+
   g_free (config);
 
   /* configure payloader settings */
@@ -468,74 +594,20 @@ invalid_channels:
 }
 
 static GstFlowReturn
-gst_rtp_vorbis_pay_handle_buffer (GstRTPBasePayload * basepayload,
-    GstBuffer * buffer)
+gst_rtp_vorbis_pay_payload_buffer (GstRtpVorbisPay * rtpvorbispay, guint8 VDT,
+    guint8 * data, guint size, GstClockTime timestamp, GstClockTime duration,
+    guint not_in_length)
 {
-  GstRtpVorbisPay *rtpvorbispay;
-  GstFlowReturn ret;
+  GstFlowReturn ret = GST_FLOW_OK;
   guint newsize;
-  GstMapInfo map;
-  gsize size;
-  guint8 *data;
   guint packet_len;
-  GstClockTime duration, newduration, timestamp;
+  GstClockTime newduration;
   gboolean flush;
-  guint8 VDT;
   guint plen;
   guint8 *ppos, *payload;
   gboolean fragmented;
   GstRTPBuffer rtp = { NULL };
 
-  rtpvorbispay = GST_RTP_VORBIS_PAY (basepayload);
-
-  gst_buffer_map (buffer, &map, GST_MAP_READ);
-  data = map.data;
-  size = map.size;
-  duration = GST_BUFFER_DURATION (buffer);
-  timestamp = GST_BUFFER_TIMESTAMP (buffer);
-
-  GST_LOG_OBJECT (rtpvorbispay, "size %" G_GSIZE_FORMAT
-      ", duration %" GST_TIME_FORMAT, size, GST_TIME_ARGS (duration));
-
-  if (G_UNLIKELY (size < 1 || size > 0xffff))
-    goto wrong_size;
-
-  /* find packet type */
-  if (data[0] & 1) {
-    /* header */
-    if (data[0] == 1) {
-      /* identification, we need to parse this in order to get the clock rate. */
-      if (G_UNLIKELY (!gst_rtp_vorbis_pay_parse_id (basepayload, data, size)))
-        goto parse_id_failed;
-      VDT = 1;
-    } else if (data[0] == 3) {
-      /* comment */
-      VDT = 2;
-    } else if (data[0] == 5) {
-      /* setup */
-      VDT = 1;
-    } else
-      goto unknown_header;
-  } else
-    /* data */
-    VDT = 0;
-
-  if (rtpvorbispay->need_headers) {
-    /* we need to collect the headers and construct a config string from them */
-    if (VDT != 0) {
-      GST_DEBUG_OBJECT (rtpvorbispay, "collecting header");
-      /* append header to the list of headers */
-      gst_buffer_unmap (buffer, &map);
-      rtpvorbispay->headers = g_list_append (rtpvorbispay->headers, buffer);
-      ret = GST_FLOW_OK;
-      goto done;
-    } else {
-      if (!gst_rtp_vorbis_pay_finish_headers (basepayload))
-        goto header_error;
-      rtpvorbispay->need_headers = FALSE;
-    }
-  }
-
   /* size increases with packet length and 2 bytes size eader. */
   newduration = rtpvorbispay->payload_duration;
   if (duration != GST_CLOCK_TIME_NONE)
@@ -545,14 +617,15 @@ gst_rtp_vorbis_pay_handle_buffer (GstRTPBasePayload * basepayload,
   packet_len = gst_rtp_buffer_calc_packet_len (newsize, 0, 0);
 
   /* check buffer filled against length and max latency */
-  flush = gst_rtp_base_payload_is_filled (basepayload, packet_len, newduration);
+  flush = gst_rtp_base_payload_is_filled (GST_RTP_BASE_PAYLOAD (rtpvorbispay),
+      packet_len, newduration);
   /* we can store up to 15 vorbis packets in one RTP packet. */
   flush |= (rtpvorbispay->payload_pkts == 15);
   /* flush if we have a new VDT */
   if (rtpvorbispay->packet)
     flush |= (rtpvorbispay->payload_VDT != VDT);
   if (flush)
-    gst_rtp_vorbis_pay_flush_packet (rtpvorbispay);
+    ret = gst_rtp_vorbis_pay_flush_packet (rtpvorbispay);
 
   /* create new packet if we must */
   if (!rtpvorbispay->packet) {
@@ -564,19 +637,22 @@ gst_rtp_vorbis_pay_handle_buffer (GstRTPBasePayload * basepayload,
   ppos = payload + rtpvorbispay->payload_pos;
   fragmented = FALSE;
 
-  ret = GST_FLOW_OK;
-
   /* put buffer in packet, it either fits completely or needs to be fragmented
    * over multiple RTP packets. */
-  while (size) {
+  do {
     plen = MIN (rtpvorbispay->payload_left - 2, size);
 
     GST_LOG_OBJECT (rtpvorbispay, "append %u bytes", plen);
 
     /* data is copied in the payload with a 2 byte length header */
-    ppos[0] = (plen >> 8) & 0xff;
-    ppos[1] = (plen & 0xff);
-    memcpy (&ppos[2], data, plen);
+    ppos[0] = ((plen - not_in_length) >> 8) & 0xff;
+    ppos[1] = ((plen - not_in_length) & 0xff);
+    if (plen)
+      memcpy (&ppos[2], data, plen);
+
+    /* only first (only) configuration cuts length field */
+    /* NOTE: spec (if any) is not clear on this ... */
+    not_in_length = 0;
 
     size -= plen;
     data += plen;
@@ -620,11 +696,122 @@ gst_rtp_vorbis_pay_handle_buffer (GstRTPBasePayload * basepayload,
       if (duration != GST_CLOCK_TIME_NONE)
         rtpvorbispay->payload_duration += duration;
     }
-  }
+  } while (size);
 
   if (rtp.buffer)
     gst_rtp_buffer_unmap (&rtp);
 
+  return ret;
+}
+
+static GstFlowReturn
+gst_rtp_vorbis_pay_handle_buffer (GstRTPBasePayload * basepayload,
+    GstBuffer * buffer)
+{
+  GstRtpVorbisPay *rtpvorbispay;
+  GstFlowReturn ret;
+  GstMapInfo map;
+  gsize size;
+  guint8 *data;
+  GstClockTime duration, timestamp;
+  guint8 VDT;
+
+  rtpvorbispay = GST_RTP_VORBIS_PAY (basepayload);
+
+  gst_buffer_map (buffer, &map, GST_MAP_READ);
+  data = map.data;
+  size = map.size;
+  duration = GST_BUFFER_DURATION (buffer);
+  timestamp = GST_BUFFER_TIMESTAMP (buffer);
+
+  GST_LOG_OBJECT (rtpvorbispay, "size %" G_GSIZE_FORMAT
+      ", duration %" GST_TIME_FORMAT, size, GST_TIME_ARGS (duration));
+
+  if (G_UNLIKELY (size < 1 || size > 0xffff))
+    goto wrong_size;
+
+  /* find packet type */
+  if (data[0] & 1) {
+    /* header */
+    if (data[0] == 1) {
+      /* identification, we need to parse this in order to get the clock rate. */
+      if (G_UNLIKELY (!gst_rtp_vorbis_pay_parse_id (basepayload, data, size)))
+        goto parse_id_failed;
+      VDT = 1;
+    } else if (data[0] == 3) {
+      /* comment */
+      VDT = 2;
+    } else if (data[0] == 5) {
+      /* setup */
+      VDT = 1;
+    } else
+      goto unknown_header;
+  } else
+    /* data */
+    VDT = 0;
+
+  /* we need to collect the headers and construct a config string from them */
+  if (VDT != 0) {
+    GST_DEBUG_OBJECT (rtpvorbispay, "collecting header");
+    /* append header to the list of headers */
+    gst_buffer_unmap (buffer, &map);
+    rtpvorbispay->headers = g_list_append (rtpvorbispay->headers, buffer);
+    ret = GST_FLOW_OK;
+    goto done;
+  } else if (rtpvorbispay->headers) {
+    if (!gst_rtp_vorbis_pay_finish_headers (basepayload))
+      goto header_error;
+  }
+
+  /* there is a config request, see if we need to insert it */
+  if (rtpvorbispay->config_interval > 0 && rtpvorbispay->config_data) {
+    gboolean send_config = FALSE;
+
+    if (rtpvorbispay->last_config != -1) {
+      guint64 diff;
+
+      GST_LOG_OBJECT (rtpvorbispay,
+          "now %" GST_TIME_FORMAT ", last config %" GST_TIME_FORMAT,
+          GST_TIME_ARGS (timestamp), GST_TIME_ARGS (rtpvorbispay->last_config));
+
+      /* calculate diff between last config in milliseconds */
+      if (timestamp > rtpvorbispay->last_config) {
+        diff = timestamp - rtpvorbispay->last_config;
+      } else {
+        diff = 0;
+      }
+
+      GST_DEBUG_OBJECT (rtpvorbispay,
+          "interval since last config %" GST_TIME_FORMAT, GST_TIME_ARGS (diff));
+
+      /* bigger than interval, queue config */
+      /* FIXME should convert timestamps to running time */
+      if (GST_TIME_AS_SECONDS (diff) >= rtpvorbispay->config_interval) {
+        GST_DEBUG_OBJECT (rtpvorbispay, "time to send config");
+        send_config = TRUE;
+      }
+    } else {
+      /* no known previous config time, send now */
+      GST_DEBUG_OBJECT (rtpvorbispay, "no previous config time, send now");
+      send_config = TRUE;
+    }
+
+    if (send_config) {
+      /* we need to send config now first */
+      /* different TDT type forces flush */
+      gst_rtp_vorbis_pay_payload_buffer (rtpvorbispay, 1,
+          rtpvorbispay->config_data, rtpvorbispay->config_size,
+          timestamp, GST_CLOCK_TIME_NONE, rtpvorbispay->config_extra_len);
+
+      if (timestamp != -1) {
+        rtpvorbispay->last_config = timestamp;
+      }
+    }
+  }
+
+  ret = gst_rtp_vorbis_pay_payload_buffer (rtpvorbispay, VDT, data, size,
+      timestamp, duration, 0);
+
   gst_buffer_unmap (buffer, &map);
   gst_buffer_unref (buffer);
 
@@ -707,6 +894,40 @@ gst_rtp_vorbis_pay_change_state (GstElement * element,
   return ret;
 }
 
+static void
+gst_rtp_vorbis_pay_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstRtpVorbisPay *rtpvorbispay;
+
+  rtpvorbispay = GST_RTP_VORBIS_PAY (object);
+
+  switch (prop_id) {
+    case PROP_CONFIG_INTERVAL:
+      rtpvorbispay->config_interval = g_value_get_uint (value);
+      break;
+    default:
+      break;
+  }
+}
+
+static void
+gst_rtp_vorbis_pay_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstRtpVorbisPay *rtpvorbispay;
+
+  rtpvorbispay = GST_RTP_VORBIS_PAY (object);
+
+  switch (prop_id) {
+    case PROP_CONFIG_INTERVAL:
+      g_value_set_uint (value, rtpvorbispay->config_interval);
+      break;
+    default:
+      break;
+  }
+}
+
 gboolean
 gst_rtp_vorbis_pay_plugin_init (GstPlugin * plugin)
 {
diff --git a/gst/rtp/gstrtpvorbispay.h b/gst/rtp/gstrtpvorbispay.h
index 1d14d2c17..8f0974a0b 100644
--- a/gst/rtp/gstrtpvorbispay.h
+++ b/gst/rtp/gstrtpvorbispay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_VORBIS_PAY_H__
@@ -59,6 +59,13 @@ struct _GstRtpVorbisPay
   GstClockTime  payload_timestamp;
   GstClockTime  payload_duration;
 
+  /* config (re-sending) */
+  guint8       *config_data;
+  guint         config_size;
+  guint         config_extra_len;
+  guint         config_interval;
+  GstClockTime  last_config;
+
   gint          rate;
   gint          channels;
 };
diff --git a/gst/rtp/gstrtpvp8depay.c b/gst/rtp/gstrtpvp8depay.c
new file mode 100644
index 000000000..2d46f5e0c
--- /dev/null
+++ b/gst/rtp/gstrtpvp8depay.c
@@ -0,0 +1,206 @@
+/* gstrtpvp8depay.c - Source for GstRtpVP8Depay
+ * Copyright (C) 2011 Sjoerd Simons <sjoerd@luon.net>
+ * Copyright (C) 2011 Collabora Ltd.
+ *   Contact: Youness Alaoui <youness.alaoui@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "gstrtpvp8depay.h"
+
+GST_DEBUG_CATEGORY_STATIC (gst_rtp_vp8_depay_debug);
+#define GST_CAT_DEFAULT gst_rtp_vp8_depay_debug
+
+static void gst_rtp_vp8_depay_dispose (GObject * object);
+static GstBuffer *gst_rtp_vp8_depay_process (GstRTPBaseDepayload * depayload,
+    GstBuffer * buf);
+static gboolean gst_rtp_vp8_depay_set_caps (GstRTPBaseDepayload * depayload,
+    GstCaps * caps);
+
+G_DEFINE_TYPE (GstRtpVP8Depay, gst_rtp_vp8_depay, GST_TYPE_RTP_BASE_DEPAYLOAD);
+
+static GstStaticPadTemplate gst_rtp_vp8_depay_src_template =
+GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("video/x-vp8"));
+
+static GstStaticPadTemplate gst_rtp_vp8_depay_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("application/x-rtp, "
+        "clock-rate = (int) 90000,"
+        "media = (string) \"video\","
+        "encoding-name = (string) \"VP8-DRAFT-IETF-01\""));
+
+static void
+gst_rtp_vp8_depay_init (GstRtpVP8Depay * self)
+{
+  self->adapter = gst_adapter_new ();
+  self->started = FALSE;
+}
+
+static void
+gst_rtp_vp8_depay_class_init (GstRtpVP8DepayClass * gst_rtp_vp8_depay_class)
+{
+  GObjectClass *object_class = G_OBJECT_CLASS (gst_rtp_vp8_depay_class);
+  GstElementClass *element_class = GST_ELEMENT_CLASS (gst_rtp_vp8_depay_class);
+  GstRTPBaseDepayloadClass *depay_class =
+      (GstRTPBaseDepayloadClass *) (gst_rtp_vp8_depay_class);
+
+
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&gst_rtp_vp8_depay_sink_template));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&gst_rtp_vp8_depay_src_template));
+
+  gst_element_class_set_static_metadata (element_class, "RTP VP8 depayloader",
+      "Codec/Depayloader/Network/RTP",
+      "Extracts VP8 video from RTP packets)",
+      "Sjoerd Simons <sjoerd@luon.net>");
+
+  object_class->dispose = gst_rtp_vp8_depay_dispose;
+
+  depay_class->process = gst_rtp_vp8_depay_process;
+  depay_class->set_caps = gst_rtp_vp8_depay_set_caps;
+
+  GST_DEBUG_CATEGORY_INIT (gst_rtp_vp8_depay_debug, "rtpvp8depay", 0,
+      "VP8 Video RTP Depayloader");
+}
+
+static void
+gst_rtp_vp8_depay_dispose (GObject * object)
+{
+  GstRtpVP8Depay *self = GST_RTP_VP8_DEPAY (object);
+
+  if (self->adapter != NULL)
+    g_object_unref (self->adapter);
+  self->adapter = NULL;
+
+  /* release any references held by the object here */
+
+  if (G_OBJECT_CLASS (gst_rtp_vp8_depay_parent_class)->dispose)
+    G_OBJECT_CLASS (gst_rtp_vp8_depay_parent_class)->dispose (object);
+}
+
+static GstBuffer *
+gst_rtp_vp8_depay_process (GstRTPBaseDepayload * depay, GstBuffer * buf)
+{
+  GstRtpVP8Depay *self = GST_RTP_VP8_DEPAY (depay);
+  GstBuffer *payload;
+  guint8 *data;
+  guint offset;
+  guint size;
+  GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT;
+
+  if (G_UNLIKELY (GST_BUFFER_IS_DISCONT (buf))) {
+    GST_LOG_OBJECT (self, "Discontinuity, flushing adapter");
+    gst_adapter_clear (self->adapter);
+    self->started = FALSE;
+  }
+
+  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtpbuffer);
+  size = gst_rtp_buffer_get_payload_len (&rtpbuffer);
+
+  /* At least one header and one vp8 byte */
+  if (G_UNLIKELY (size < 2))
+    goto too_small;
+
+  data = gst_rtp_buffer_get_payload (&rtpbuffer);
+
+  if (G_UNLIKELY (!self->started)) {
+    /* Check if this is the start of a VP8 frame, otherwise bail */
+    /* S=1 and PartID= 0 */
+    if ((data[0] & 0x1F) != 0x10)
+      goto done;
+
+    self->started = TRUE;
+  }
+
+  offset = 1;
+  /* Check X optional header */
+  if ((data[0] & 0x80) != 0) {
+    offset++;
+    /* Check I optional header */
+    if ((data[1] & 0x80) != 0) {
+      offset++;
+      if (G_UNLIKELY (offset + 2 >= size))
+        goto too_small;
+      /* Check for 16 bits PictureID */
+      if ((data[2] & 0x80) != 0)
+        offset++;
+    }
+    /* Check L optional header */
+    if ((data[1] & 0x40) != 0)
+      offset++;
+    /* Check T or K optional headers */
+    if ((data[1] & 0x20) != 0 || (data[1] & 0x10) != 0)
+      offset++;
+  }
+
+  if (G_UNLIKELY (offset >= size))
+    goto too_small;
+
+  payload = gst_rtp_buffer_get_payload_subbuffer (&rtpbuffer, offset, -1);
+  gst_adapter_push (self->adapter, payload);
+
+  /* Marker indicates that it was the last rtp packet for this frame */
+  if (gst_rtp_buffer_get_marker (&rtpbuffer)) {
+    GstBuffer *out;
+
+    out = gst_adapter_take_buffer (self->adapter,
+        gst_adapter_available (self->adapter));
+
+    self->started = FALSE;
+    gst_rtp_buffer_unmap (&rtpbuffer);
+    return out;
+  }
+
+done:
+  gst_rtp_buffer_unmap (&rtpbuffer);
+  return NULL;
+
+too_small:
+  GST_LOG_OBJECT (self, "Invalid rtp packet (too small), ignoring");
+  gst_adapter_clear (self->adapter);
+  self->started = FALSE;
+
+  goto done;
+}
+
+static gboolean
+gst_rtp_vp8_depay_set_caps (GstRTPBaseDepayload * depayload, GstCaps * caps)
+{
+  GstCaps *srccaps = gst_caps_new_simple ("video/x-vp8",
+      "framerate", GST_TYPE_FRACTION, 0, 1,
+      NULL);
+
+  gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (depayload), srccaps);
+  gst_caps_unref (srccaps);
+
+  return TRUE;
+}
+
+gboolean
+gst_rtp_vp8_depay_plugin_init (GstPlugin * plugin)
+{
+  return gst_element_register (plugin, "rtpvp8depay",
+      GST_RANK_MARGINAL, GST_TYPE_RTP_VP8_DEPAY);
+}
diff --git a/gst/rtp/gstrtpvp8depay.h b/gst/rtp/gstrtpvp8depay.h
new file mode 100644
index 000000000..f10b5637f
--- /dev/null
+++ b/gst/rtp/gstrtpvp8depay.h
@@ -0,0 +1,64 @@
+/*
+ * gstrtpvp8depay.h - Header for GstRtpVP8Depay
+ * Copyright (C) 2011 Sjoerd Simons <sjoerd@luon.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifndef __GST_RTP_VP8_DEPAY_H__
+#define __GST_RTP_VP8_DEPAY_H__
+
+#include <gst/base/gstadapter.h>
+#include <gst/rtp/gstrtpbasedepayload.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_RTP_VP8_DEPAY \
+  (gst_rtp_vp8_depay_get_type())
+#define GST_RTP_VP8_DEPAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_RTP_VP8_DEPAY, GstRtpVP8Depay))
+#define GST_RTP_VP8_DEPAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_RTP_VP8_DEPAY, \
+    GstRtpVP8DepayClass))
+#define GST_IS_RTP_VP8_DEPAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_RTP_VP8_DEPAY))
+#define GST_IS_RTP_VP8_DEPAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_RTP_VP8_DEPAY))
+#define GST_RTP_VP8_DEPAY_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_RTP_VP8_DEPAY, \
+    GstRtpVP8DepayClass))
+
+typedef struct _GstRtpVP8Depay GstRtpVP8Depay;
+typedef struct _GstRtpVP8DepayClass GstRtpVP8DepayClass;
+
+struct _GstRtpVP8DepayClass
+{
+  GstRTPBaseDepayloadClass parent_class;
+};
+
+struct _GstRtpVP8Depay
+{
+  GstRTPBaseDepayload parent;
+  GstAdapter *adapter;
+  gboolean started;
+};
+
+GType gst_rtp_vp8_depay_get_type (void);
+
+gboolean gst_rtp_vp8_depay_plugin_init (GstPlugin * plugin);
+
+G_END_DECLS
+
+#endif /* #ifndef __GST_RTP_VP8_DEPAY_H__ */
diff --git a/gst/rtp/gstrtpvp8pay.c b/gst/rtp/gstrtpvp8pay.c
new file mode 100644
index 000000000..988d55da3
--- /dev/null
+++ b/gst/rtp/gstrtpvp8pay.c
@@ -0,0 +1,444 @@
+/*
+ * gstrtpvp8pay.c - Source for GstRtpVP8Pay
+ * Copyright (C) 2011 Sjoerd Simons <sjoerd@luon.net>
+ * Copyright (C) 2011 Collabora Ltd.
+ *   Contact: Youness Alaoui <youness.alaoui@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <gst/base/gstbitreader.h>
+#include <gst/rtp/gstrtppayloads.h>
+#include <gst/rtp/gstrtpbuffer.h>
+#include "dboolhuff.h"
+#include "gstrtpvp8pay.h"
+
+GST_DEBUG_CATEGORY_STATIC (gst_rtp_vp8_pay_debug);
+#define GST_CAT_DEFAULT gst_rtp_vp8_pay_debug
+
+#define DEFAULT_PICTURE_ID_MODE VP8_PAY_PICTURE_ID_7BITS
+
+static GstFlowReturn gst_rtp_vp8_pay_handle_buffer (GstRTPBasePayload * payload,
+    GstBuffer * buffer);
+static gboolean gst_rtp_vp8_pay_sink_event (GstRTPBasePayload * payload,
+    GstEvent * event);
+static gboolean gst_rtp_vp8_pay_set_caps (GstRTPBasePayload * payload,
+    GstCaps * caps);
+
+G_DEFINE_TYPE (GstRtpVP8Pay, gst_rtp_vp8_pay, GST_TYPE_RTP_BASE_PAYLOAD);
+
+static GstStaticPadTemplate gst_rtp_vp8_pay_src_template =
+GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("application/x-rtp, "
+        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ","
+        "clock-rate = (int) 90000, encoding-name = (string) \"VP8-DRAFT-IETF-01\""));
+
+static GstStaticPadTemplate gst_rtp_vp8_pay_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("video/x-vp8"));
+
+static void
+gst_rtp_vp8_pay_init (GstRtpVP8Pay * obj)
+{
+  /* TODO: Make it configurable */
+  obj->picture_id_mode = DEFAULT_PICTURE_ID_MODE;
+  if (obj->picture_id_mode == VP8_PAY_PICTURE_ID_7BITS)
+    obj->picture_id = g_random_int_range (0, G_MAXUINT8) & 0x7F;
+  else if (obj->picture_id_mode == VP8_PAY_PICTURE_ID_15BITS)
+    obj->picture_id = g_random_int_range (0, G_MAXUINT16) & 0x7FFF;
+}
+
+static void
+gst_rtp_vp8_pay_class_init (GstRtpVP8PayClass * gst_rtp_vp8_pay_class)
+{
+  GstElementClass *element_class = GST_ELEMENT_CLASS (gst_rtp_vp8_pay_class);
+  GstRTPBasePayloadClass *pay_class =
+      GST_RTP_BASE_PAYLOAD_CLASS (gst_rtp_vp8_pay_class);
+
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&gst_rtp_vp8_pay_sink_template));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&gst_rtp_vp8_pay_src_template));
+
+  gst_element_class_set_static_metadata (element_class, "RTP VP8 payloader",
+      "Codec/Payloader/Network/RTP",
+      "Puts VP8 video in RTP packets)", "Sjoerd Simons <sjoerd@luon.net>");
+
+  pay_class->handle_buffer = gst_rtp_vp8_pay_handle_buffer;
+  pay_class->sink_event = gst_rtp_vp8_pay_sink_event;
+  pay_class->set_caps = gst_rtp_vp8_pay_set_caps;
+
+  GST_DEBUG_CATEGORY_INIT (gst_rtp_vp8_pay_debug, "rtpvp8pay", 0,
+      "VP8 Video RTP Payloader");
+}
+
+static gboolean
+gst_rtp_vp8_pay_parse_frame (GstRtpVP8Pay * self, GstBuffer * buffer)
+{
+  GstBitReader *reader = NULL;
+  guint8 *data;
+  gsize size;
+  GstMapInfo map;
+  int i;
+  gboolean keyframe;
+  guint32 partition0_size;
+  guint8 version;
+  guint8 tmp8 = 0;
+  guint8 partitions;
+  guint offset;
+  BOOL_DECODER bc;
+  guint8 *pdata;
+
+  if (G_UNLIKELY (gst_buffer_get_size (buffer) < 3))
+    goto error;
+
+  if (!gst_buffer_map (buffer, &map, GST_MAP_READ) || !map.data)
+    goto error;
+
+  data = map.data;
+  size = map.size;
+  reader = gst_bit_reader_new (data, size);
+
+  self->is_keyframe = keyframe = ((data[0] & 0x1) == 0);
+  version = (data[0] >> 1) & 0x7;
+
+  if (G_UNLIKELY (version > 3)) {
+    GST_ERROR_OBJECT (self, "Unknown VP8 version %u", version);
+    goto error;
+  }
+
+  /* keyframe, version and show_frame use 5 bits */
+  partition0_size = data[2] << 11 | data[1] << 3 | (data[0] >> 5);
+
+  /* Include the uncompressed data blob in the first partition */
+  offset = keyframe ? 10 : 3;
+  partition0_size += offset;
+
+  if (!gst_bit_reader_skip (reader, 24))
+    goto error;
+
+  if (keyframe) {
+    /* check start tag: 0x9d 0x01 0x2a */
+    if (!gst_bit_reader_get_bits_uint8 (reader, &tmp8, 8) || tmp8 != 0x9d)
+      goto error;
+
+    if (!gst_bit_reader_get_bits_uint8 (reader, &tmp8, 8) || tmp8 != 0x01)
+      goto error;
+
+    if (!gst_bit_reader_get_bits_uint8 (reader, &tmp8, 8) || tmp8 != 0x2a)
+      goto error;
+
+    /* Skip horizontal size code (16 bits) vertical size code (16 bits) */
+    if (!gst_bit_reader_skip (reader, 32))
+      goto error;
+  }
+
+  offset = keyframe ? 10 : 3;
+  vp8dx_start_decode (&bc, data + offset, size - offset);
+
+  if (keyframe) {
+    /* color space (1 bit) and clamping type (1 bit) */
+    vp8dx_decode_bool (&bc, 0x80);
+    vp8dx_decode_bool (&bc, 0x80);
+  }
+
+  /* segmentation_enabled */
+  if (vp8dx_decode_bool (&bc, 0x80)) {
+    guint8 update_mb_segmentation_map = vp8dx_decode_bool (&bc, 0x80);
+    guint8 update_segment_feature_data = vp8dx_decode_bool (&bc, 0x80);
+
+    if (update_segment_feature_data) {
+      /* skip segment feature mode */
+      vp8dx_decode_bool (&bc, 0x80);
+
+      /* quantizer update */
+      for (i = 0; i < 4; i++) {
+        /* skip flagged quantizer value (7 bits) and sign (1 bit) */
+        if (vp8dx_decode_bool (&bc, 0x80))
+          vp8_decode_value (&bc, 8);
+      }
+
+      /* loop filter update */
+      for (i = 0; i < 4; i++) {
+        /* skip flagged lf update value (6 bits) and sign (1 bit) */
+        if (vp8dx_decode_bool (&bc, 0x80))
+          vp8_decode_value (&bc, 7);
+      }
+    }
+
+    if (update_mb_segmentation_map) {
+      /* segment prob update */
+      for (i = 0; i < 3; i++) {
+        /* skip flagged segment prob */
+        if (vp8dx_decode_bool (&bc, 0x80))
+          vp8_decode_value (&bc, 8);
+      }
+    }
+  }
+
+  /* skip filter type (1 bit), loop filter level (6 bits) and
+   * sharpness level (3 bits) */
+  vp8_decode_value (&bc, 1);
+  vp8_decode_value (&bc, 6);
+  vp8_decode_value (&bc, 3);
+
+  /* loop_filter_adj_enabled */
+  if (vp8dx_decode_bool (&bc, 0x80)) {
+
+    /* delta update */
+    if (vp8dx_decode_bool (&bc, 0x80)) {
+
+      for (i = 0; i < 8; i++) {
+        /* 8 updates, 1 bit indicate whether there is one and if follow by a
+         * 7 bit update */
+        if (vp8dx_decode_bool (&bc, 0x80))
+          vp8_decode_value (&bc, 7);
+      }
+    }
+  }
+
+  if (vp8dx_bool_error (&bc))
+    goto error;
+
+  tmp8 = vp8_decode_value (&bc, 2);
+
+  partitions = 1 << tmp8;
+
+  /* Check if things are still sensible */
+  if (partition0_size + (partitions - 1) * 3 >= size)
+    goto error;
+
+  /* partition data is right after the mode partition */
+  pdata = data + partition0_size;
+
+  /* Set up mapping */
+  self->n_partitions = partitions + 1;
+  self->partition_offset[0] = 0;
+  self->partition_size[0] = partition0_size + (partitions - 1) * 3;
+
+  self->partition_offset[1] = self->partition_size[0];
+  for (i = 1; i < partitions; i++) {
+    guint psize = (pdata[2] << 16 | pdata[1] << 8 | pdata[0]);
+
+    pdata += 3;
+    self->partition_size[i] = psize;
+    self->partition_offset[i + 1] = self->partition_offset[i] + psize;
+  }
+
+  /* Check that our partition offsets and sizes don't go outsize the buffer
+   * size. */
+  if (self->partition_offset[i] >= size)
+    goto error;
+
+  self->partition_size[i] = size - self->partition_offset[i];
+
+  self->partition_offset[i + 1] = size;
+
+  gst_bit_reader_free (reader);
+  gst_buffer_unmap (buffer, &map);
+  return TRUE;
+
+error:
+  GST_DEBUG ("Failed to parse frame");
+  if (reader) {
+    gst_bit_reader_free (reader);
+    gst_buffer_unmap (buffer, &map);
+  }
+  return FALSE;
+}
+
+static guint
+gst_rtp_vp8_offset_to_partition (GstRtpVP8Pay * self, guint offset)
+{
+  int i;
+
+  for (i = 0; i < self->n_partitions; i++) {
+    if (offset >= self->partition_offset[i] &&
+        offset < self->partition_offset[i + 1])
+      return i;
+  }
+
+  return i;
+}
+
+static gsize
+gst_rtp_vp8_calc_header_len (GstRtpVP8Pay * self)
+{
+  switch (self->picture_id_mode) {
+    case VP8_PAY_PICTURE_ID_7BITS:
+      return 3;
+    case VP8_PAY_PICTURE_ID_15BITS:
+      return 4;
+    case VP8_PAY_NO_PICTURE_ID:
+    default:
+      return 1;
+  }
+}
+
+static gsize
+gst_rtp_vp8_calc_payload_len (GstRtpVP8Pay * self)
+{
+  GstRTPBasePayload *payload = GST_RTP_BASE_PAYLOAD (self);
+
+  return gst_rtp_buffer_calc_payload_len (GST_RTP_BASE_PAYLOAD_MTU (payload) -
+      gst_rtp_vp8_calc_header_len (self), 0, 0);
+}
+
+/* When growing the vp8 header keep gst_rtp_vp8_calc_payload_len in sync */
+static GstBuffer *
+gst_rtp_vp8_create_header_buffer (GstRtpVP8Pay * self, guint8 partid,
+    gboolean start, gboolean mark, GstBuffer * in)
+{
+  GstBuffer *out;
+  guint8 *p;
+  GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT;
+
+  out = gst_rtp_buffer_new_allocate (gst_rtp_vp8_calc_header_len (self), 0, 0);
+  gst_rtp_buffer_map (out, GST_MAP_READWRITE, &rtpbuffer);
+  p = gst_rtp_buffer_get_payload (&rtpbuffer);
+  /* X=0,R=0,N=0,S=start,PartID=partid */
+  p[0] = (start << 4) | partid;
+  if (self->picture_id_mode != VP8_PAY_NO_PICTURE_ID) {
+    /* Enable X=1 */
+    p[0] |= 0x80;
+    /* X: I=1,L=0,T=0,K=0,RSV=0 */
+    p[1] = 0x80;
+    if (self->picture_id_mode == VP8_PAY_PICTURE_ID_7BITS) {
+      /* I: 7 bit picture_id */
+      p[2] = self->picture_id & 0x7F;
+    } else {
+      /* I: 15 bit picture_id */
+      p[2] = 0x80 | ((self->picture_id & 0x7FFF) >> 8);
+      p[3] = self->picture_id & 0xFF;
+    }
+  }
+
+  gst_rtp_buffer_set_marker (&rtpbuffer, mark);
+
+  gst_rtp_buffer_unmap (&rtpbuffer);
+
+  GST_BUFFER_DURATION (out) = GST_BUFFER_DURATION (in);
+  GST_BUFFER_PTS (out) = GST_BUFFER_PTS (in);
+
+  return out;
+}
+
+
+static guint
+gst_rtp_vp8_payload_next (GstRtpVP8Pay * self,
+    GstBufferList * list, guint offset, GstBuffer * buffer)
+{
+  guint partition;
+  GstBuffer *header;
+  GstBuffer *sub;
+  GstBuffer *out;
+  gboolean mark;
+  gsize remaining;
+  gsize available;
+
+  remaining = gst_buffer_get_size (buffer) - offset;
+  available = gst_rtp_vp8_calc_payload_len (self);
+  if (available > remaining)
+    available = remaining;
+
+  partition = gst_rtp_vp8_offset_to_partition (self, offset);
+  g_assert (partition < self->n_partitions);
+
+  mark = (remaining == available);
+  /* whole set of partitions, payload them and done */
+  header = gst_rtp_vp8_create_header_buffer (self, partition,
+      offset == self->partition_offset[partition], mark, buffer);
+  sub = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, offset, available);
+
+  out = gst_buffer_append (header, sub);
+
+  gst_buffer_list_insert (list, -1, out);
+
+  return available;
+}
+
+
+static GstFlowReturn
+gst_rtp_vp8_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buffer)
+{
+  GstRtpVP8Pay *self = GST_RTP_VP8_PAY (payload);
+  GstFlowReturn ret;
+  GstBufferList *list;
+  guint offset;
+
+  if (G_UNLIKELY (!gst_rtp_vp8_pay_parse_frame (self, buffer))) {
+    g_message ("Failed to parse frame");
+    return GST_FLOW_ERROR;
+  }
+
+  list = gst_buffer_list_new ();
+
+  for (offset = 0; offset < gst_buffer_get_size (buffer);)
+    offset += gst_rtp_vp8_payload_next (self, list, offset, buffer);
+
+  ret = gst_rtp_base_payload_push_list (payload, list);
+
+  /* Incremenent and wrap the picture id if it overflows */
+  if ((self->picture_id_mode == VP8_PAY_PICTURE_ID_7BITS &&
+          ++self->picture_id >= 0x80) ||
+      (self->picture_id_mode == VP8_PAY_PICTURE_ID_15BITS &&
+          ++self->picture_id >= 0x8000))
+    self->picture_id = 0;
+
+  return ret;
+}
+
+static gboolean
+gst_rtp_vp8_pay_sink_event (GstRTPBasePayload * payload, GstEvent * event)
+{
+  GstRtpVP8Pay *self = GST_RTP_VP8_PAY (payload);
+
+  if (GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_START) {
+    if (self->picture_id_mode == VP8_PAY_PICTURE_ID_7BITS)
+      self->picture_id = g_random_int_range (0, G_MAXUINT8) & 0x7F;
+    else if (self->picture_id_mode == VP8_PAY_PICTURE_ID_15BITS)
+      self->picture_id = g_random_int_range (0, G_MAXUINT16) & 0x7FFF;
+  }
+
+  return GST_RTP_BASE_PAYLOAD_CLASS (gst_rtp_vp8_pay_parent_class)->sink_event
+      (payload, event);
+}
+
+static gboolean
+gst_rtp_vp8_pay_set_caps (GstRTPBasePayload * payload, GstCaps * caps)
+{
+  gst_rtp_base_payload_set_options (payload, "video", TRUE,
+      "VP8-DRAFT-IETF-01", 90000);
+  return gst_rtp_base_payload_set_outcaps (payload, NULL);
+}
+
+gboolean
+gst_rtp_vp8_pay_plugin_init (GstPlugin * plugin)
+{
+  return gst_element_register (plugin, "rtpvp8pay",
+      GST_RANK_MARGINAL, GST_TYPE_RTP_VP8_PAY);
+}
diff --git a/gst/rtp/gstrtpvp8pay.h b/gst/rtp/gstrtpvp8pay.h
new file mode 100644
index 000000000..247206067
--- /dev/null
+++ b/gst/rtp/gstrtpvp8pay.h
@@ -0,0 +1,74 @@
+/*
+ * gstrtpvp8pay.h - Header for GstRtpVP8Pay
+ * Copyright (C) 2011 Sjoerd Simons <sjoerd@luon.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifndef __GST_RTP_VP8_PAY_H__
+#define __GST_RTP_VP8_PAY_H__
+
+#include <gst/rtp/gstrtpbasepayload.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_RTP_VP8_PAY \
+  (gst_rtp_vp8_pay_get_type())
+#define GST_RTP_VP8_PAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_RTP_VP8_PAY, GstRtpVP8Pay))
+#define GST_RTP_VP8_PAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_RTP_VP8_PAY, GstRtpVP8PayClass))
+#define GST_IS_RTP_VP8_PAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_RTP_VP8_PAY))
+#define GST_IS_RTP_VP8_PAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_RTP_VP8_PAY))
+#define GST_RTP_VP8_PAY_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_RTP_VP8_PAY, GstRtpVP8PayClass))
+
+typedef struct _GstRtpVP8Pay GstRtpVP8Pay;
+typedef struct _GstRtpVP8PayClass GstRtpVP8PayClass;
+typedef enum _PictureIDMode PictureIDMode;
+
+enum _PictureIDMode {
+  VP8_PAY_NO_PICTURE_ID,
+  VP8_PAY_PICTURE_ID_7BITS,
+  VP8_PAY_PICTURE_ID_15BITS,
+};
+
+struct _GstRtpVP8PayClass
+{
+  GstRTPBasePayloadClass parent_class;
+};
+
+struct _GstRtpVP8Pay
+{
+  GstRTPBasePayload parent;
+  gboolean is_keyframe;
+  gint n_partitions;
+  /* Treat frame header & tag & partition size block as the first partition,
+   * folowed by max. 8 data partitions. last offset is the end of the buffer */
+  guint partition_offset[10];
+  guint partition_size[9];
+  PictureIDMode picture_id_mode;
+  guint16 picture_id;
+};
+
+GType gst_rtp_vp8_pay_get_type (void);
+
+gboolean gst_rtp_vp8_pay_plugin_init (GstPlugin * plugin);
+
+G_END_DECLS
+
+#endif /* #ifndef __GST_RTP_VP8_PAY_H__ */
diff --git a/gst/rtp/gstrtpvrawdepay.c b/gst/rtp/gstrtpvrawdepay.c
index 5011efe80..c2fca1b06 100644
--- a/gst/rtp/gstrtpvrawdepay.c
+++ b/gst/rtp/gstrtpvrawdepay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -43,7 +43,6 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"video\", "
-        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 90000, " "encoding-name = (string) \"RAW\"")
     );
 
diff --git a/gst/rtp/gstrtpvrawdepay.h b/gst/rtp/gstrtpvrawdepay.h
index d51e48671..bf63d5c3f 100644
--- a/gst/rtp/gstrtpvrawdepay.h
+++ b/gst/rtp/gstrtpvrawdepay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_VRAW_DEPAY_H__
diff --git a/gst/rtp/gstrtpvrawpay.c b/gst/rtp/gstrtpvrawpay.c
index 2ac0fcd97..d95a62ebb 100644
--- a/gst/rtp/gstrtpvrawpay.c
+++ b/gst/rtp/gstrtpvrawpay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/rtp/gstrtpvrawpay.h b/gst/rtp/gstrtpvrawpay.h
index f2032eb65..7cd86b8b5 100644
--- a/gst/rtp/gstrtpvrawpay.h
+++ b/gst/rtp/gstrtpvrawpay.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_VRAW_PAY_H__
diff --git a/gst/rtpmanager/Makefile.am b/gst/rtpmanager/Makefile.am
index e7420db8a..d65f67676 100644
--- a/gst/rtpmanager/Makefile.am
+++ b/gst/rtpmanager/Makefile.am
@@ -16,7 +16,9 @@ BUILT_SOURCES = $(built_sources) $(built_headers)
 
 libgstrtpmanager_la_SOURCES = gstrtpmanager.c \
 			      gstrtpbin.c \
+			      gstrtpdtmfmux.c \
 			      gstrtpjitterbuffer.c \
+			      gstrtpmux.c \
 			      gstrtpptdemux.c \
 			      gstrtpssrcdemux.c \
 			      rtpjitterbuffer.c      \
@@ -29,7 +31,9 @@ nodist_libgstrtpmanager_la_SOURCES = \
       $(built_sources)
 
 noinst_HEADERS = gstrtpbin.h \
+		 gstrtpdtmfmux.h \
 		 gstrtpjitterbuffer.h \
+		 gstrtpmux.h \
                  gstrtpptdemux.h \
                  gstrtpssrcdemux.h \
                  rtpjitterbuffer.h \
diff --git a/gst/rtpmanager/Makefile.in b/gst/rtpmanager/Makefile.in
index 64adcbb6f..dc3375fcb 100644
--- a/gst/rtpmanager/Makefile.in
+++ b/gst/rtpmanager/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +24,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -61,8 +88,9 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/common/gst-glib-gen.mak
+DIST_COMMON = $(top_srcdir)/common/gst-glib-gen.mak \
+	$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 subdir = gst/rtpmanager
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -70,7 +98,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-gcc-inline-assembly.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 \
@@ -140,7 +167,9 @@ libgstrtpmanager_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libgstrtpmanager_la_OBJECTS = libgstrtpmanager_la-gstrtpmanager.lo \
 	libgstrtpmanager_la-gstrtpbin.lo \
+	libgstrtpmanager_la-gstrtpdtmfmux.lo \
 	libgstrtpmanager_la-gstrtpjitterbuffer.lo \
+	libgstrtpmanager_la-gstrtpmux.lo \
 	libgstrtpmanager_la-gstrtpptdemux.lo \
 	libgstrtpmanager_la-gstrtpssrcdemux.lo \
 	libgstrtpmanager_la-rtpjitterbuffer.lo \
@@ -155,10 +184,23 @@ libgstrtpmanager_la_OBJECTS = $(am_libgstrtpmanager_la_OBJECTS) \
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstrtpmanager_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) \
 	$(libgstrtpmanager_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -171,20 +213,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstrtpmanager_la_SOURCES) \
 	$(nodist_libgstrtpmanager_la_SOURCES)
 DIST_SOURCES = $(libgstrtpmanager_la_SOURCES)
@@ -194,6 +232,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -364,6 +419,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -534,7 +590,9 @@ built_headers = gstrtpbin-marshal.h
 BUILT_SOURCES = $(built_sources) $(built_headers)
 libgstrtpmanager_la_SOURCES = gstrtpmanager.c \
 			      gstrtpbin.c \
+			      gstrtpdtmfmux.c \
 			      gstrtpjitterbuffer.c \
+			      gstrtpmux.c \
 			      gstrtpptdemux.c \
 			      gstrtpssrcdemux.c \
 			      rtpjitterbuffer.c      \
@@ -547,7 +605,9 @@ nodist_libgstrtpmanager_la_SOURCES = \
       $(built_sources)
 
 noinst_HEADERS = gstrtpbin.h \
+		 gstrtpdtmfmux.h \
 		 gstrtpjitterbuffer.h \
+		 gstrtpmux.h \
                  gstrtpptdemux.h \
                  gstrtpssrcdemux.h \
                  rtpjitterbuffer.h \
@@ -603,6 +663,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -629,12 +690,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstrtpmanager.la: $(libgstrtpmanager_la_OBJECTS) $(libgstrtpmanager_la_DEPENDENCIES) $(EXTRA_libgstrtpmanager_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstrtpmanager_la_LINK) -rpath $(plugindir) $(libgstrtpmanager_la_OBJECTS) $(libgstrtpmanager_la_LIBADD) $(LIBS)
 
@@ -646,8 +710,10 @@ distclean-compile:
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpbin-marshal.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpbin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpdtmfmux.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpjitterbuffer.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpmanager.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpmux.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpptdemux.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpsession.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpssrcdemux.Plo@am__quote@
@@ -691,6 +757,13 @@ libgstrtpmanager_la-gstrtpbin.lo: gstrtpbin.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpbin.lo `test -f 'gstrtpbin.c' || echo '$(srcdir)/'`gstrtpbin.c
 
+libgstrtpmanager_la-gstrtpdtmfmux.lo: gstrtpdtmfmux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpdtmfmux.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpdtmfmux.Tpo -c -o libgstrtpmanager_la-gstrtpdtmfmux.lo `test -f 'gstrtpdtmfmux.c' || echo '$(srcdir)/'`gstrtpdtmfmux.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpdtmfmux.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpdtmfmux.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpdtmfmux.c' object='libgstrtpmanager_la-gstrtpdtmfmux.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 $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpdtmfmux.lo `test -f 'gstrtpdtmfmux.c' || echo '$(srcdir)/'`gstrtpdtmfmux.c
+
 libgstrtpmanager_la-gstrtpjitterbuffer.lo: gstrtpjitterbuffer.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpjitterbuffer.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpjitterbuffer.Tpo -c -o libgstrtpmanager_la-gstrtpjitterbuffer.lo `test -f 'gstrtpjitterbuffer.c' || echo '$(srcdir)/'`gstrtpjitterbuffer.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpjitterbuffer.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpjitterbuffer.Plo
@@ -698,6 +771,13 @@ libgstrtpmanager_la-gstrtpjitterbuffer.lo: gstrtpjitterbuffer.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpjitterbuffer.lo `test -f 'gstrtpjitterbuffer.c' || echo '$(srcdir)/'`gstrtpjitterbuffer.c
 
+libgstrtpmanager_la-gstrtpmux.lo: gstrtpmux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpmux.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpmux.Tpo -c -o libgstrtpmanager_la-gstrtpmux.lo `test -f 'gstrtpmux.c' || echo '$(srcdir)/'`gstrtpmux.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpmux.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpmux.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpmux.c' object='libgstrtpmanager_la-gstrtpmux.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 $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpmux.lo `test -f 'gstrtpmux.c' || echo '$(srcdir)/'`gstrtpmux.c
+
 libgstrtpmanager_la-gstrtpptdemux.lo: gstrtpptdemux.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpptdemux.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpptdemux.Tpo -c -o libgstrtpmanager_la-gstrtpptdemux.lo `test -f 'gstrtpptdemux.c' || echo '$(srcdir)/'`gstrtpptdemux.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpptdemux.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpptdemux.Plo
@@ -760,26 +840,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -791,15 +860,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -808,6 +873,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -956,19 +1036,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # these are all the rules generating the relevant files
diff --git a/gst/rtpmanager/gstrtpbin.c b/gst/rtpmanager/gstrtpbin.c
index 4d8e54e3b..0364880b4 100644
--- a/gst/rtpmanager/gstrtpbin.c
+++ b/gst/rtpmanager/gstrtpbin.c
@@ -13,13 +13,13 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
- * SECTION:element-gstrtpbin
- * @see_also: gstrtpjitterbuffer, gstrtpsession, gstrtpptdemux, gstrtpssrcdemux
+ * SECTION:element-rtpbin
+ * @see_also: rtpjitterbuffer, rtpsession, rtpptdemux, rtpssrcdemux
  *
  * RTP bin combines the functions of #GstRtpSession, #GstRtpSsrcDemux,
  * #GstRtpJitterBuffer and #GstRtpPtDemux in one element. It allows for multiple
@@ -36,7 +36,7 @@
  * the packets are released from the jitterbuffer, they will be forwarded to a
  * #GstRtpPtDemux element. The #GstRtpPtDemux element will demux the packets based
  * on the payload type and will create a unique pad recv_rtp_src_\%u_\%u_\%u on
- * gstrtpbin with the session number, SSRC and payload type respectively as the pad
+ * rtpbin with the session number, SSRC and payload type respectively as the pad
  * name.
  *
  * To also use #GstRtpBin as an RTCP receiver, request a recv_rtcp_sink_\%u pad. The
@@ -58,7 +58,7 @@
  * mapping. One can clear the cached values with the #GstRtpSession::clear-pt-map
  * signal.
  *
- * Access to the internal statistics of gstrtpbin is provided with the
+ * Access to the internal statistics of rtpbin is provided with the
  * get-internal-session property. This action signal gives access to the
  * RTPSession object which further provides action signals to retrieve the
  * internal source and other sources.
@@ -67,10 +67,10 @@
  * <title>Example pipelines</title>
  * |[
  * gst-launch-1.0 udpsrc port=5000 caps="application/x-rtp, ..." ! .recv_rtp_sink_0 \
- *     gstrtpbin ! rtptheoradepay ! theoradec ! xvimagesink
- * ]| Receive RTP data from port 5000 and send to the session 0 in gstrtpbin.
+ *     rtpbin ! rtptheoradepay ! theoradec ! xvimagesink
+ * ]| Receive RTP data from port 5000 and send to the session 0 in rtpbin.
  * |[
- * gst-launch-1.0 gstrtpbin name=rtpbin \
+ * gst-launch-1.0 rtpbin name=rtpbin \
  *         v4l2src ! videoconvert ! ffenc_h263 ! rtph263ppay ! rtpbin.send_rtp_sink_0 \
  *                   rtpbin.send_rtp_src_0 ! udpsink port=5000                            \
  *                   rtpbin.send_rtcp_src_0 ! udpsink port=5001 sync=false async=false    \
@@ -89,7 +89,7 @@
  * as soon as possible and do not participate in preroll, sync=false and
  * async=false is configured on udpsink
  * |[
- * gst-launch-1.0 -v gstrtpbin name=rtpbin                                          \
+ * gst-launch-1.0 -v rtpbin name=rtpbin                                          \
  *     udpsrc caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H263-1998" \
  *             port=5000 ! rtpbin.recv_rtp_sink_0                                \
  *         rtpbin. ! rtph263pdepay ! ffdec_h263 ! xvimagesink                    \
@@ -312,7 +312,7 @@ static void remove_recv_rtcp (GstRtpBin * rtpbin, GstRtpBinSession * session);
 static void remove_send_rtp (GstRtpBin * rtpbin, GstRtpBinSession * session);
 static void remove_rtcp (GstRtpBin * rtpbin, GstRtpBinSession * session);
 static void free_client (GstRtpBinClient * client, GstRtpBin * bin);
-static void free_stream (GstRtpBinStream * stream);
+static void free_stream (GstRtpBinStream * stream, GstRtpBin * bin);
 
 /* Manages the RTP stream for one SSRC.
  *
@@ -545,6 +545,11 @@ ssrc_demux_pad_removed (GstElement * element, guint ssrc, GstPad * pad,
     GstRtpBinSession * session)
 {
   GstRtpBinStream *stream = NULL;
+  GstRtpBin *rtpbin;
+
+  rtpbin = session->bin;
+
+  GST_RTP_BIN_LOCK (rtpbin);
 
   GST_RTP_SESSION_LOCK (session);
   if ((stream = find_stream_by_ssrc (session, ssrc)))
@@ -552,7 +557,9 @@ ssrc_demux_pad_removed (GstElement * element, guint ssrc, GstPad * pad,
   GST_RTP_SESSION_UNLOCK (session);
 
   if (stream)
-    free_stream (stream);
+    free_stream (stream, rtpbin);
+
+  GST_RTP_BIN_UNLOCK (rtpbin);
 }
 
 /* create a session with the given id.  Must be called with RTP_BIN_LOCK */
@@ -638,8 +645,6 @@ no_demux:
 static void
 free_session (GstRtpBinSession * sess, GstRtpBin * bin)
 {
-  GSList *client_walk;
-
   GST_DEBUG_OBJECT (bin, "freeing session %p", sess);
 
   gst_element_set_locked_state (sess->demux, TRUE);
@@ -656,40 +661,7 @@ free_session (GstRtpBinSession * sess, GstRtpBin * bin)
   gst_bin_remove (GST_BIN_CAST (bin), sess->session);
   gst_bin_remove (GST_BIN_CAST (bin), sess->demux);
 
-  /* remove any references in bin->clients to the streams in sess->streams */
-  client_walk = bin->clients;
-  while (client_walk) {
-    GSList *client_node = client_walk;
-    GstRtpBinClient *client = (GstRtpBinClient *) client_node->data;
-    GSList *stream_walk = client->streams;
-
-    while (stream_walk) {
-      GSList *stream_node = stream_walk;
-      GstRtpBinStream *stream = (GstRtpBinStream *) stream_node->data;
-      GSList *inner_walk;
-
-      stream_walk = g_slist_next (stream_walk);
-
-      for (inner_walk = sess->streams; inner_walk;
-          inner_walk = g_slist_next (inner_walk)) {
-        if ((GstRtpBinStream *) inner_walk->data == stream) {
-          client->streams = g_slist_delete_link (client->streams, stream_node);
-          --client->nstreams;
-          break;
-        }
-      }
-    }
-    client_walk = g_slist_next (client_walk);
-
-    g_assert ((client->streams && client->nstreams > 0) || (!client->streams
-            && client->streams == 0));
-    if (client->nstreams == 0) {
-      free_client (client, bin);
-      bin->clients = g_slist_delete_link (bin->clients, client_node);
-    }
-  }
-
-  g_slist_foreach (sess->streams, (GFunc) free_stream, NULL);
+  g_slist_foreach (sess->streams, (GFunc) free_stream, bin);
   g_slist_free (sess->streams);
 
   g_mutex_clear (&sess->lock);
@@ -1479,12 +1451,13 @@ no_demux:
   }
 }
 
+/* called with RTP_BIN_LOCK */
 static void
-free_stream (GstRtpBinStream * stream)
+free_stream (GstRtpBinStream * stream, GstRtpBin * bin)
 {
-  GstRtpBinSession *session;
+  GSList *clients, *next_client;
 
-  session = stream->session;
+  GST_DEBUG_OBJECT (bin, "freeing stream %p", stream);
 
   if (stream->demux) {
     g_signal_handler_disconnect (stream->demux, stream->demux_newpad_sig);
@@ -1508,10 +1481,33 @@ free_stream (GstRtpBinStream * stream)
   if (stream->demux)
     g_signal_handler_disconnect (stream->demux, stream->demux_padremoved_sig);
 
-  gst_bin_remove (GST_BIN_CAST (session->bin), stream->buffer);
+  gst_bin_remove (GST_BIN_CAST (bin), stream->buffer);
   if (stream->demux)
-    gst_bin_remove (GST_BIN_CAST (session->bin), stream->demux);
+    gst_bin_remove (GST_BIN_CAST (bin), stream->demux);
+
+  for (clients = bin->clients; clients; clients = next_client) {
+    GstRtpBinClient *client = (GstRtpBinClient *) clients->data;
+    GSList *streams, *next_stream;
+
+    next_client = g_slist_next (clients);
 
+    for (streams = client->streams; streams; streams = next_stream) {
+      GstRtpBinStream *ostream = (GstRtpBinStream *) streams->data;
+
+      next_stream = g_slist_next (streams);
+
+      if (ostream == stream) {
+        client->streams = g_slist_delete_link (client->streams, streams);
+        /* If this was the last stream belonging to this client,
+         * clean up the client. */
+        if (--client->nstreams == 0) {
+          bin->clients = g_slist_delete_link (bin->clients, clients);
+          free_client (client, bin);
+          break;
+        }
+      }
+    }
+  }
   g_free (stream);
 }
 
@@ -1920,10 +1916,6 @@ gst_rtp_bin_dispose (GObject * object)
   g_slist_foreach (rtpbin->sessions, (GFunc) free_session, rtpbin);
   g_slist_free (rtpbin->sessions);
   rtpbin->sessions = NULL;
-  GST_DEBUG_OBJECT (object, "freeing clients");
-  g_slist_foreach (rtpbin->clients, (GFunc) free_client, rtpbin);
-  g_slist_free (rtpbin->clients);
-  rtpbin->clients = NULL;
   GST_RTP_BIN_UNLOCK (rtpbin);
 
   G_OBJECT_CLASS (parent_class)->dispose (object);
diff --git a/gst/rtpmanager/gstrtpbin.h b/gst/rtpmanager/gstrtpbin.h
index 173456001..fd0a7cc9f 100644
--- a/gst/rtpmanager/gstrtpbin.h
+++ b/gst/rtpmanager/gstrtpbin.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_BIN_H__
diff --git a/gst/rtpmanager/gstrtpdtmfmux.c b/gst/rtpmanager/gstrtpdtmfmux.c
new file mode 100644
index 000000000..e0f6bf4d2
--- /dev/null
+++ b/gst/rtpmanager/gstrtpdtmfmux.c
@@ -0,0 +1,233 @@
+/* RTP DTMF muxer element for GStreamer
+ *
+ * gstrtpdtmfmux.c:
+ *
+ * Copyright (C) <2007-2010> Nokia Corporation.
+ *   Contact: Zeeshan Ali <zeeshan.ali@nokia.com>
+ * Copyright (C) <2007-2010> Collabora Ltd
+ *   Contact: Olivier Crete <olivier.crete@collabora.co.uk>
+ * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
+ *               2000,2005 Wim Taymans <wim@fluendo.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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:element-rtpdtmfmux
+ * @see_also: rtpdtmfsrc, dtmfsrc, rtpmux
+ *
+ * The RTP "DTMF" Muxer muxes multiple RTP streams into a valid RTP
+ * stream. It does exactly what its parent (#rtpmux) does, except
+ * that it prevent buffers coming over a regular sink_%%u pad from going through
+ * for the duration of buffers that came in a priority_sink_%%u pad.
+ *
+ * This is especially useful if a discontinuous source like dtmfsrc or
+ * rtpdtmfsrc are connected to the priority sink pads. This way, the generated
+ * DTMF signal can replace the recorded audio while the tone is being sent.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/gst.h>
+#include <string.h>
+
+#include "gstrtpdtmfmux.h"
+
+GST_DEBUG_CATEGORY_STATIC (gst_rtp_dtmf_mux_debug);
+#define GST_CAT_DEFAULT gst_rtp_dtmf_mux_debug
+
+static GstStaticPadTemplate priority_sink_factory =
+GST_STATIC_PAD_TEMPLATE ("priority_sink_%u",
+    GST_PAD_SINK,
+    GST_PAD_REQUEST,
+    GST_STATIC_CAPS ("application/x-rtp"));
+
+static GstPad *gst_rtp_dtmf_mux_request_new_pad (GstElement * element,
+    GstPadTemplate * templ, const gchar * name, const GstCaps * caps);
+static GstStateChangeReturn gst_rtp_dtmf_mux_change_state (GstElement * element,
+    GstStateChange transition);
+
+static gboolean gst_rtp_dtmf_mux_accept_buffer_locked (GstRTPMux * rtp_mux,
+    GstRTPMuxPadPrivate * padpriv, GstRTPBuffer * rtpbuffer);
+static gboolean gst_rtp_dtmf_mux_src_event (GstRTPMux * rtp_mux,
+    GstEvent * event);
+
+G_DEFINE_TYPE (GstRTPDTMFMux, gst_rtp_dtmf_mux, GST_TYPE_RTP_MUX);
+
+static void
+gst_rtp_dtmf_mux_init (GstRTPDTMFMux * mux)
+{
+}
+
+
+static void
+gst_rtp_dtmf_mux_class_init (GstRTPDTMFMuxClass * klass)
+{
+  GstElementClass *gstelement_class;
+  GstRTPMuxClass *gstrtpmux_class;
+
+  gstelement_class = (GstElementClass *) klass;
+  gstrtpmux_class = (GstRTPMuxClass *) klass;
+
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&priority_sink_factory));
+
+  gst_element_class_set_static_metadata (gstelement_class, "RTP muxer",
+      "Codec/Muxer",
+      "mixes RTP DTMF streams into other RTP streams",
+      "Zeeshan Ali <first.last@nokia.com>");
+
+  gstelement_class->request_new_pad =
+      GST_DEBUG_FUNCPTR (gst_rtp_dtmf_mux_request_new_pad);
+  gstelement_class->change_state =
+      GST_DEBUG_FUNCPTR (gst_rtp_dtmf_mux_change_state);
+  gstrtpmux_class->accept_buffer_locked = gst_rtp_dtmf_mux_accept_buffer_locked;
+  gstrtpmux_class->src_event = gst_rtp_dtmf_mux_src_event;
+}
+
+static gboolean
+gst_rtp_dtmf_mux_accept_buffer_locked (GstRTPMux * rtp_mux,
+    GstRTPMuxPadPrivate * padpriv, GstRTPBuffer * rtpbuffer)
+{
+  GstRTPDTMFMux *mux = GST_RTP_DTMF_MUX (rtp_mux);
+  GstClockTime running_ts;
+
+  running_ts = GST_BUFFER_PTS (rtpbuffer->buffer);
+
+  if (GST_CLOCK_TIME_IS_VALID (running_ts)) {
+    if (padpriv && padpriv->segment.format == GST_FORMAT_TIME)
+      running_ts = gst_segment_to_running_time (&padpriv->segment,
+          GST_FORMAT_TIME, GST_BUFFER_PTS (rtpbuffer->buffer));
+
+    if (padpriv && padpriv->priority) {
+      if (GST_BUFFER_PTS_IS_VALID (rtpbuffer->buffer)) {
+        if (GST_CLOCK_TIME_IS_VALID (mux->last_priority_end))
+          mux->last_priority_end =
+              MAX (running_ts + GST_BUFFER_DURATION (rtpbuffer->buffer),
+              mux->last_priority_end);
+        else
+          mux->last_priority_end = running_ts +
+              GST_BUFFER_DURATION (rtpbuffer->buffer);
+        GST_LOG_OBJECT (mux, "Got buffer %p on priority pad, "
+            " blocking regular pads until %" GST_TIME_FORMAT, rtpbuffer->buffer,
+            GST_TIME_ARGS (mux->last_priority_end));
+      } else {
+        GST_WARNING_OBJECT (mux, "Buffer %p has an invalid duration,"
+            " not blocking other pad", rtpbuffer->buffer);
+      }
+    } else {
+      if (GST_CLOCK_TIME_IS_VALID (mux->last_priority_end) &&
+          running_ts < mux->last_priority_end) {
+        GST_LOG_OBJECT (mux, "Dropping buffer %p because running time"
+            " %" GST_TIME_FORMAT " < %" GST_TIME_FORMAT, rtpbuffer->buffer,
+            GST_TIME_ARGS (running_ts), GST_TIME_ARGS (mux->last_priority_end));
+        return FALSE;
+      }
+    }
+  } else {
+    GST_LOG_OBJECT (mux, "Buffer %p has an invalid timestamp,"
+        " letting through", rtpbuffer->buffer);
+  }
+
+  return TRUE;
+}
+
+
+static GstPad *
+gst_rtp_dtmf_mux_request_new_pad (GstElement * element, GstPadTemplate * templ,
+    const gchar * name, const GstCaps * caps)
+{
+  GstPad *pad;
+
+  pad =
+      GST_ELEMENT_CLASS (gst_rtp_dtmf_mux_parent_class)->request_new_pad
+      (element, templ, name, caps);
+
+  if (pad) {
+    GstRTPMuxPadPrivate *padpriv;
+
+    GST_OBJECT_LOCK (element);
+    padpriv = gst_pad_get_element_private (pad);
+
+    if (gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (element),
+            "priority_sink_%u") == gst_pad_get_pad_template (pad))
+      padpriv->priority = TRUE;
+    GST_OBJECT_UNLOCK (element);
+  }
+
+  return pad;
+}
+
+static gboolean
+gst_rtp_dtmf_mux_src_event (GstRTPMux * rtp_mux, GstEvent * event)
+{
+  if (GST_EVENT_TYPE (event) == GST_EVENT_CUSTOM_UPSTREAM) {
+    const GstStructure *s = gst_event_get_structure (event);
+
+    if (s && gst_structure_has_name (s, "dtmf-event")) {
+      GST_OBJECT_LOCK (rtp_mux);
+      if (GST_CLOCK_TIME_IS_VALID (rtp_mux->last_stop)) {
+        event = (GstEvent *)
+            gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (event));
+        s = gst_event_get_structure (event);
+        gst_structure_set ((GstStructure *) s,
+            "last-stop", G_TYPE_UINT64, rtp_mux->last_stop, NULL);
+      }
+      GST_OBJECT_UNLOCK (rtp_mux);
+    }
+  }
+
+  return GST_RTP_MUX_CLASS (gst_rtp_dtmf_mux_parent_class)->src_event (rtp_mux,
+      event);
+}
+
+
+static GstStateChangeReturn
+gst_rtp_dtmf_mux_change_state (GstElement * element, GstStateChange transition)
+{
+  GstStateChangeReturn ret;
+  GstRTPDTMFMux *mux = GST_RTP_DTMF_MUX (element);
+
+  switch (transition) {
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+    {
+      GST_OBJECT_LOCK (mux);
+      mux->last_priority_end = GST_CLOCK_TIME_NONE;
+      GST_OBJECT_UNLOCK (mux);
+      break;
+    }
+    default:
+      break;
+  }
+
+  ret =
+      GST_ELEMENT_CLASS (gst_rtp_dtmf_mux_parent_class)->change_state (element,
+      transition);
+
+  return ret;
+}
+
+gboolean
+gst_rtp_dtmf_mux_plugin_init (GstPlugin * plugin)
+{
+  GST_DEBUG_CATEGORY_INIT (gst_rtp_dtmf_mux_debug, "rtpdtmfmux", 0,
+      "rtp dtmf muxer");
+
+  return gst_element_register (plugin, "rtpdtmfmux", GST_RANK_NONE,
+      GST_TYPE_RTP_DTMF_MUX);
+}
diff --git a/gst/rtpmanager/gstrtpdtmfmux.h b/gst/rtpmanager/gstrtpdtmfmux.h
new file mode 100644
index 000000000..651e9ece7
--- /dev/null
+++ b/gst/rtpmanager/gstrtpdtmfmux.h
@@ -0,0 +1,67 @@
+/* RTP muxer element for GStreamer
+ *
+ * gstrtpdtmfmux.h:
+ *
+ * Copyright (C) <2007> Nokia Corporation.
+ *   Contact: Zeeshan Ali <zeeshan.ali@nokia.com>
+ * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
+ *               2000,2005 Wim Taymans <wim@fluendo.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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_RTP_DTMF_MUX_H__
+#define __GST_RTP_DTMF_MUX_H__
+
+#include <gst/gst.h>
+#include "gstrtpmux.h"
+
+G_BEGIN_DECLS
+#define GST_TYPE_RTP_DTMF_MUX (gst_rtp_dtmf_mux_get_type())
+#define GST_RTP_DTMF_MUX(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_DTMF_MUX, GstRTPDTMFMux))
+#define GST_RTP_DTMF_MUX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_DTMF_MUX, GstRTPDTMFMux))
+#define GST_IS_RTP_DTMF_MUX(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_DTMF_MUX))
+#define GST_IS_RTP_DTMF_MUX_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_DTMF_MUX))
+typedef struct _GstRTPDTMFMux GstRTPDTMFMux;
+typedef struct _GstRTPDTMFMuxClass GstRTPDTMFMuxClass;
+
+/**
+ * GstRTPDTMFMux:
+ *
+ * The opaque #GstRTPDTMFMux structure.
+ */
+struct _GstRTPDTMFMux
+{
+  GstRTPMux mux;
+
+  /* Protected by object lock */
+  GstClockTime last_priority_end;
+};
+
+struct _GstRTPDTMFMuxClass
+{
+  GstRTPMuxClass parent_class;
+
+  /* signals */
+  void (*locking) (GstElement * element, GstPad * pad);
+  void (*unlocked) (GstElement * element, GstPad * pad);
+};
+
+GType gst_rtp_dtmf_mux_get_type (void);
+gboolean gst_rtp_dtmf_mux_plugin_init (GstPlugin * plugin);
+
+G_END_DECLS
+#endif /* __GST_RTP_DTMF_MUX_H__ */
diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c
index 2cdcf4040..fd8814f5b 100644
--- a/gst/rtpmanager/gstrtpjitterbuffer.c
+++ b/gst/rtpmanager/gstrtpjitterbuffer.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  */
 
@@ -131,6 +131,7 @@ struct _GstRtpJitterBufferPrivate
   GCond jbuf_cond;
   gboolean waiting;
   gboolean discont;
+  gboolean ts_discont;
   gboolean active;
   guint64 out_offset;
 
@@ -179,6 +180,8 @@ struct _GstRtpJitterBufferPrivate
   /* the latency of the upstream peer, we have to take this into account when
    * synchronizing the buffers. */
   GstClockTime peer_latency;
+  guint64 ext_rtptime;
+  GstBuffer *last_sr;
 
   /* some accounting */
   guint64 num_late;
@@ -272,6 +275,7 @@ gst_rtp_jitter_buffer_clear_pt_map (GstRtpJitterBuffer * jitterbuffer);
 static GstClockTime
 gst_rtp_jitter_buffer_set_active (GstRtpJitterBuffer * jitterbuffer,
     gboolean active, guint64 base_time);
+static void do_handle_sync (GstRtpJitterBuffer * jitterbuffer);
 
 static void
 gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass)
@@ -976,6 +980,7 @@ gst_rtp_jitter_buffer_change_state (GstElement * element,
         ret = GST_STATE_CHANGE_NO_PREROLL;
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
+      gst_buffer_replace (&priv->last_sr, NULL);
       break;
     case GST_STATE_CHANGE_READY_TO_NULL:
       break;
@@ -1388,8 +1393,12 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent,
               priv->clock_rate, &tail, &percent)))
     goto duplicate;
 
+  /* we had an unhandled SR, handle it now */
+  if (priv->last_sr)
+    do_handle_sync (jitterbuffer);
+
   /* signal addition of new buffer when the _loop is waiting. */
-  if (priv->waiting)
+  if (priv->waiting && priv->active)
     JBUF_SIGNAL (priv);
 
   /* let's unschedule and unblock any waiting buffers. We only want to do this
@@ -1718,6 +1727,9 @@ again:
   if (G_UNLIKELY (gap != 0 && out_time != -1)) {
     GstClockReturn ret;
     GstClockTime duration = GST_CLOCK_TIME_NONE;
+    GstClockTimeDiff clock_jitter;
+    guint32 lost_packets = 1;
+    gboolean lost_packets_late = FALSE;
 
     if (gap > 0) {
       /* we have a gap */
@@ -1759,12 +1771,13 @@ again:
       goto push_buffer;
     }
 
-    GST_DEBUG_OBJECT (jitterbuffer, "sync to timestamp %" GST_TIME_FORMAT,
-        GST_TIME_ARGS (out_time));
-
     /* prepare for sync against clock */
     sync_time = get_sync_time (jitterbuffer, out_time);
 
+    GST_DEBUG_OBJECT (jitterbuffer, "sync to timestamp %" GST_TIME_FORMAT
+        " with sync time %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (out_time), GST_TIME_ARGS (sync_time));
+
     /* create an entry for the clock */
     id = priv->clock_id = gst_clock_new_single_shot_id (clock, sync_time);
     priv->unscheduled = FALSE;
@@ -1773,7 +1786,31 @@ again:
     /* release the lock so that the other end can push stuff or unlock */
     JBUF_UNLOCK (priv);
 
-    ret = gst_clock_id_wait (id, NULL);
+    ret = gst_clock_id_wait (id, &clock_jitter);
+
+    if (ret == GST_CLOCK_EARLY && gap > 0
+        && clock_jitter > (priv->latency_ns + priv->peer_latency)) {
+      GstClockTimeDiff total_duration;
+      GstClockTime out_time_diff;
+
+      out_time_diff = apply_offset (jitterbuffer, timestamp) - out_time;
+      total_duration = MIN (out_time_diff, clock_jitter);
+
+      if (duration > 0)
+        lost_packets = total_duration / duration;
+      else
+        lost_packets = gap;
+      total_duration = lost_packets * duration;
+
+      GST_DEBUG_OBJECT (jitterbuffer,
+          "Current sync_time has expired a long time ago (+%" GST_TIME_FORMAT
+          ") Cover up %d lost packets with duration %" GST_TIME_FORMAT,
+          GST_TIME_ARGS (clock_jitter),
+          lost_packets, GST_TIME_ARGS (total_duration));
+
+      duration = total_duration;
+      lost_packets_late = TRUE;
+    }
 
     JBUF_LOCK (priv);
     /* and free the entry */
@@ -1802,15 +1839,20 @@ again:
     if (gap > 0) {
       GstEvent *event;
 
-      /* we had a gap and thus we lost a packet. Create an event for this.  */
-      GST_DEBUG_OBJECT (jitterbuffer, "Packet #%d lost", next_seqnum);
-      priv->num_late++;
+      /* we had a gap and thus we lost some packets. Create an event for this.  */
+      if (lost_packets > 1)
+        GST_DEBUG_OBJECT (jitterbuffer, "Packets #%d -> #%d lost", next_seqnum,
+            next_seqnum + lost_packets - 1);
+      else
+        GST_DEBUG_OBJECT (jitterbuffer, "Packet #%d lost", next_seqnum);
+
+      priv->num_late += lost_packets;
       discont = TRUE;
 
       /* update our expected next packet */
       priv->last_popped_seqnum = next_seqnum;
-      priv->last_out_time = out_time;
-      priv->next_seqnum = (next_seqnum + 1) & 0xffff;
+      priv->last_out_time += duration;
+      priv->next_seqnum = (next_seqnum + lost_packets) & 0xffff;
 
       if (priv->do_lost) {
         /* create paket lost event */
@@ -1818,8 +1860,8 @@ again:
             gst_structure_new ("GstRTPPacketLost",
                 "seqnum", G_TYPE_UINT, (guint) next_seqnum,
                 "timestamp", G_TYPE_UINT64, out_time,
-                "duration", G_TYPE_UINT64, duration, NULL));
-
+                "duration", G_TYPE_UINT64, duration,
+                "late", G_TYPE_BOOLEAN, lost_packets_late, NULL));
         JBUF_UNLOCK (priv);
         gst_pad_push_event (priv->srcpad, event);
         JBUF_LOCK_CHECK (priv, flushing);
@@ -1847,6 +1889,10 @@ push_buffer:
     GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
     priv->discont = FALSE;
   }
+  if (G_UNLIKELY (priv->ts_discont)) {
+    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
+    priv->ts_discont = FALSE;
+  }
 
   /* apply timestamp with offset to buffer now */
   GST_BUFFER_PTS (outbuf) = out_time;
@@ -1950,65 +1996,33 @@ pause:
   }
 }
 
-static GstFlowReturn
-gst_rtp_jitter_buffer_chain_rtcp (GstPad * pad, GstObject * parent,
-    GstBuffer * buffer)
+/* collect the info form the lastest RTCP packet and the jittebuffer sync, do
+ * some sanity checks and then emit the handle-sync signal with the parameters.
+ * This function must be called with the LOCK */
+static void
+do_handle_sync (GstRtpJitterBuffer * jitterbuffer)
 {
-  GstRtpJitterBuffer *jitterbuffer;
   GstRtpJitterBufferPrivate *priv;
-  GstFlowReturn ret = GST_FLOW_OK;
   guint64 base_rtptime, base_time;
   guint32 clock_rate;
   guint64 last_rtptime;
-  guint32 ssrc;
-  GstRTCPPacket packet;
+  guint64 clock_base;
   guint64 ext_rtptime, diff;
-  guint32 rtptime;
   gboolean drop = FALSE;
-  GstRTCPBuffer rtcp = { NULL, };
-  guint64 clock_base;
-
-  jitterbuffer = GST_RTP_JITTER_BUFFER (parent);
-
-  if (G_UNLIKELY (!gst_rtcp_buffer_validate (buffer)))
-    goto invalid_buffer;
 
   priv = jitterbuffer->priv;
 
-  gst_rtcp_buffer_map (buffer, GST_MAP_READ, &rtcp);
-
-  if (!gst_rtcp_buffer_get_first_packet (&rtcp, &packet))
-    goto empty_buffer;
-
-  /* first packet must be SR or RR or else the validate would have failed */
-  switch (gst_rtcp_packet_get_type (&packet)) {
-    case GST_RTCP_TYPE_SR:
-      gst_rtcp_packet_sr_get_sender_info (&packet, &ssrc, NULL, &rtptime,
-          NULL, NULL);
-      break;
-    default:
-      goto ignore_buffer;
-  }
-  gst_rtcp_buffer_unmap (&rtcp);
-
-  GST_DEBUG_OBJECT (jitterbuffer, "received RTCP of SSRC %08x", ssrc);
-
-  JBUF_LOCK (priv);
-  /* convert the RTP timestamp to our extended timestamp, using the same offset
-   * we used in the jitterbuffer */
-  ext_rtptime = priv->jbuf->ext_rtptime;
-  ext_rtptime = gst_rtp_buffer_ext_timestamp (&ext_rtptime, rtptime);
-
   /* get the last values from the jitterbuffer */
   rtp_jitter_buffer_get_sync (priv->jbuf, &base_rtptime, &base_time,
       &clock_rate, &last_rtptime);
 
   clock_base = priv->clock_base;
+  ext_rtptime = priv->ext_rtptime;
 
   GST_DEBUG_OBJECT (jitterbuffer, "ext SR %" G_GUINT64_FORMAT ", base %"
       G_GUINT64_FORMAT ", clock-rate %" G_GUINT32_FORMAT
-      ", clock-base %" G_GUINT64_FORMAT,
-      ext_rtptime, base_rtptime, clock_rate, clock_base);
+      ", clock-base %" G_GUINT64_FORMAT ", last-rtptime %" G_GUINT64_FORMAT,
+      ext_rtptime, base_rtptime, clock_rate, clock_base, last_rtptime);
 
   if (base_rtptime == -1 || clock_rate == -1 || base_time == -1) {
     GST_DEBUG_OBJECT (jitterbuffer, "dropping, no RTP values");
@@ -2038,7 +2052,6 @@ gst_rtp_jitter_buffer_chain_rtcp (GstPad * pad, GstObject * parent,
       }
     }
   }
-  JBUF_UNLOCK (priv);
 
   if (!drop) {
     GstStructure *s;
@@ -2049,16 +2062,69 @@ gst_rtp_jitter_buffer_chain_rtcp (GstPad * pad, GstObject * parent,
         "clock-rate", G_TYPE_UINT, clock_rate,
         "clock-base", G_TYPE_UINT64, clock_base,
         "sr-ext-rtptime", G_TYPE_UINT64, ext_rtptime,
-        "sr-buffer", GST_TYPE_BUFFER, buffer, NULL);
+        "sr-buffer", GST_TYPE_BUFFER, priv->last_sr, NULL);
 
     GST_DEBUG_OBJECT (jitterbuffer, "signaling sync");
+    gst_buffer_replace (&priv->last_sr, NULL);
+    JBUF_UNLOCK (priv);
     g_signal_emit (jitterbuffer,
         gst_rtp_jitter_buffer_signals[SIGNAL_HANDLE_SYNC], 0, s);
+    JBUF_LOCK (priv);
     gst_structure_free (s);
   } else {
     GST_DEBUG_OBJECT (jitterbuffer, "dropping RTCP packet");
-    ret = GST_FLOW_OK;
   }
+}
+
+static GstFlowReturn
+gst_rtp_jitter_buffer_chain_rtcp (GstPad * pad, GstObject * parent,
+    GstBuffer * buffer)
+{
+  GstRtpJitterBuffer *jitterbuffer;
+  GstRtpJitterBufferPrivate *priv;
+  GstFlowReturn ret = GST_FLOW_OK;
+  guint32 ssrc;
+  GstRTCPPacket packet;
+  guint64 ext_rtptime;
+  guint32 rtptime;
+  GstRTCPBuffer rtcp = { NULL, };
+
+  jitterbuffer = GST_RTP_JITTER_BUFFER (parent);
+
+  if (G_UNLIKELY (!gst_rtcp_buffer_validate (buffer)))
+    goto invalid_buffer;
+
+  priv = jitterbuffer->priv;
+
+  gst_rtcp_buffer_map (buffer, GST_MAP_READ, &rtcp);
+
+  if (!gst_rtcp_buffer_get_first_packet (&rtcp, &packet))
+    goto empty_buffer;
+
+  /* first packet must be SR or RR or else the validate would have failed */
+  switch (gst_rtcp_packet_get_type (&packet)) {
+    case GST_RTCP_TYPE_SR:
+      gst_rtcp_packet_sr_get_sender_info (&packet, &ssrc, NULL, &rtptime,
+          NULL, NULL);
+      break;
+    default:
+      goto ignore_buffer;
+  }
+  gst_rtcp_buffer_unmap (&rtcp);
+
+  GST_DEBUG_OBJECT (jitterbuffer, "received RTCP of SSRC %08x", ssrc);
+
+  JBUF_LOCK (priv);
+  /* convert the RTP timestamp to our extended timestamp, using the same offset
+   * we used in the jitterbuffer */
+  ext_rtptime = priv->jbuf->ext_rtptime;
+  ext_rtptime = gst_rtp_buffer_ext_timestamp (&ext_rtptime, rtptime);
+
+  priv->ext_rtptime = ext_rtptime;
+  gst_buffer_replace (&priv->last_sr, buffer);
+
+  do_handle_sync (jitterbuffer);
+  JBUF_UNLOCK (priv);
 
 done:
   gst_buffer_unref (buffer);
@@ -2260,9 +2326,7 @@ gst_rtp_jitter_buffer_set_property (GObject * object,
     case PROP_TS_OFFSET:
       JBUF_LOCK (priv);
       priv->ts_offset = g_value_get_int64 (value);
-      /* FIXME, we don't really have a method for signaling a timestamp
-       * DISCONT without also making this a data discont. */
-      /* priv->discont = TRUE; */
+      priv->ts_discont = TRUE;
       JBUF_UNLOCK (priv);
       break;
     case PROP_DO_LOST:
diff --git a/gst/rtpmanager/gstrtpjitterbuffer.h b/gst/rtpmanager/gstrtpjitterbuffer.h
index 37ef7b315..c8522798e 100644
--- a/gst/rtpmanager/gstrtpjitterbuffer.h
+++ b/gst/rtpmanager/gstrtpjitterbuffer.h
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  */
 
diff --git a/gst/rtpmanager/gstrtpmanager.c b/gst/rtpmanager/gstrtpmanager.c
index f04ef3c30..4e891e9fb 100644
--- a/gst/rtpmanager/gstrtpmanager.c
+++ b/gst/rtpmanager/gstrtpmanager.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -26,6 +26,8 @@
 #include "gstrtpptdemux.h"
 #include "gstrtpsession.h"
 #include "gstrtpssrcdemux.h"
+#include "gstrtpdtmfmux.h"
+#include "gstrtpmux.h"
 
 static gboolean
 plugin_init (GstPlugin * plugin)
@@ -49,6 +51,12 @@ plugin_init (GstPlugin * plugin)
           GST_TYPE_RTP_SSRC_DEMUX))
     return FALSE;
 
+  if (!gst_rtp_mux_plugin_init (plugin))
+    return FALSE;
+
+  if (!gst_rtp_dtmf_mux_plugin_init (plugin))
+    return FALSE;
+
   return TRUE;
 }
 
diff --git a/gst/rtpmanager/gstrtpmux.c b/gst/rtpmanager/gstrtpmux.c
new file mode 100644
index 000000000..db3bb7016
--- /dev/null
+++ b/gst/rtpmanager/gstrtpmux.c
@@ -0,0 +1,886 @@
+/* RTP muxer element for GStreamer
+ *
+ * gstrtpmux.c:
+ *
+ * Copyright (C) <2007-2010> Nokia Corporation.
+ *   Contact: Zeeshan Ali <zeeshan.ali@nokia.com>
+ * Copyright (C) <2007-2010> Collabora Ltd
+ *   Contact: Olivier Crete <olivier.crete@collabora.co.uk>
+ * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
+ *               2000,2005 Wim Taymans <wim@fluendo.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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:element-rtpmux
+ * @see_also: rtpdtmfmux
+ *
+ * The rtp muxer takes multiple RTP streams having the same clock-rate and
+ * muxes into a single stream with a single SSRC.
+ *
+ * <refsect2>
+ * <title>Example pipelines</title>
+ * |[
+ * gst-launch rtpmux name=mux ! udpsink host=127.0.0.1 port=8888        \
+ *              alsasrc ! alawenc ! rtppcmapay !                        \
+ *              application/x-rtp, payload=8, rate=8000 ! mux.sink_0    \
+ *              audiotestsrc is-live=1 !                                \
+ *              mulawenc ! rtppcmupay !                                 \
+ *              application/x-rtp, payload=0, rate=8000 ! mux.sink_1
+ * ]|
+ * In this example, an audio stream is captured from ALSA and another is
+ * generated, both are encoded into different payload types and muxed together
+ * so they can be sent on the same port.
+ * </refsect2>
+ *
+ * Last reviewed on 2010-09-30 (0.10.21)
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/gst.h>
+#include <gst/rtp/gstrtpbuffer.h>
+#include <string.h>
+
+#include "gstrtpmux.h"
+
+GST_DEBUG_CATEGORY_STATIC (gst_rtp_mux_debug);
+#define GST_CAT_DEFAULT gst_rtp_mux_debug
+
+enum
+{
+  ARG_0,
+  PROP_TIMESTAMP_OFFSET,
+  PROP_SEQNUM_OFFSET,
+  PROP_SEQNUM,
+  PROP_SSRC
+};
+
+#define DEFAULT_TIMESTAMP_OFFSET -1
+#define DEFAULT_SEQNUM_OFFSET    -1
+#define DEFAULT_SSRC             -1
+
+static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("application/x-rtp")
+    );
+
+static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink_%u",
+    GST_PAD_SINK,
+    GST_PAD_REQUEST,
+    GST_STATIC_CAPS ("application/x-rtp")
+    );
+
+static GstPad *gst_rtp_mux_request_new_pad (GstElement * element,
+    GstPadTemplate * templ, const gchar * name, const GstCaps * caps);
+static void gst_rtp_mux_release_pad (GstElement * element, GstPad * pad);
+static GstFlowReturn gst_rtp_mux_chain (GstPad * pad, GstObject * parent,
+    GstBuffer * buffer);
+static GstFlowReturn gst_rtp_mux_chain_list (GstPad * pad, GstObject * parent,
+    GstBufferList * bufferlist);
+static gboolean gst_rtp_mux_setcaps (GstPad * pad, GstRTPMux * rtp_mux,
+    GstCaps * caps);
+static gboolean gst_rtp_mux_sink_event (GstPad * pad, GstObject * parent,
+    GstEvent * event);
+static gboolean gst_rtp_mux_sink_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
+
+static GstStateChangeReturn gst_rtp_mux_change_state (GstElement *
+    element, GstStateChange transition);
+
+static void gst_rtp_mux_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_rtp_mux_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+static void gst_rtp_mux_dispose (GObject * object);
+
+static gboolean gst_rtp_mux_src_event_real (GstRTPMux * rtp_mux,
+    GstEvent * event);
+
+G_DEFINE_TYPE (GstRTPMux, gst_rtp_mux, GST_TYPE_ELEMENT);
+
+
+static void
+gst_rtp_mux_class_init (GstRTPMuxClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstElementClass *gstelement_class;
+
+  gobject_class = (GObjectClass *) klass;
+  gstelement_class = (GstElementClass *) klass;
+
+
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&sink_factory));
+
+  gst_element_class_set_static_metadata (gstelement_class, "RTP muxer",
+      "Codec/Muxer",
+      "multiplex N rtp streams into one", "Zeeshan Ali <first.last@nokia.com>");
+
+  gobject_class->get_property = gst_rtp_mux_get_property;
+  gobject_class->set_property = gst_rtp_mux_set_property;
+  gobject_class->dispose = gst_rtp_mux_dispose;
+
+  klass->src_event = gst_rtp_mux_src_event_real;
+
+  g_object_class_install_property (G_OBJECT_CLASS (klass),
+      PROP_TIMESTAMP_OFFSET, g_param_spec_int ("timestamp-offset",
+          "Timestamp Offset",
+          "Offset to add to all outgoing timestamps (-1 = random)", -1,
+          G_MAXINT, DEFAULT_TIMESTAMP_OFFSET,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SEQNUM_OFFSET,
+      g_param_spec_int ("seqnum-offset", "Sequence number Offset",
+          "Offset to add to all outgoing seqnum (-1 = random)", -1, G_MAXINT,
+          DEFAULT_SEQNUM_OFFSET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SEQNUM,
+      g_param_spec_uint ("seqnum", "Sequence number",
+          "The RTP sequence number of the last processed packet",
+          0, G_MAXUINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SSRC,
+      g_param_spec_uint ("ssrc", "SSRC",
+          "The SSRC of the packets (-1 == random)",
+          0, G_MAXUINT, DEFAULT_SSRC,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  gstelement_class->request_new_pad =
+      GST_DEBUG_FUNCPTR (gst_rtp_mux_request_new_pad);
+  gstelement_class->release_pad = GST_DEBUG_FUNCPTR (gst_rtp_mux_release_pad);
+  gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_rtp_mux_change_state);
+}
+
+static void
+gst_rtp_mux_dispose (GObject * object)
+{
+  GstRTPMux *rtp_mux = GST_RTP_MUX (object);
+  GList *item;
+
+  g_clear_object (&rtp_mux->last_pad);
+
+restart:
+  for (item = GST_ELEMENT_PADS (object); item; item = g_list_next (item)) {
+    GstPad *pad = GST_PAD (item->data);
+    if (GST_PAD_IS_SINK (pad)) {
+      gst_element_release_request_pad (GST_ELEMENT (object), pad);
+      goto restart;
+    }
+  }
+
+  G_OBJECT_CLASS (gst_rtp_mux_parent_class)->dispose (object);
+}
+
+static gboolean
+gst_rtp_mux_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
+{
+  GstRTPMux *rtp_mux = GST_RTP_MUX (parent);
+  GstRTPMuxClass *klass;
+  gboolean ret = FALSE;
+
+  klass = GST_RTP_MUX_GET_CLASS (rtp_mux);
+
+  ret = klass->src_event (rtp_mux, event);
+
+  return ret;
+}
+
+static gboolean
+gst_rtp_mux_src_event_real (GstRTPMux * rtp_mux, GstEvent * event)
+{
+  GstIterator *iter;
+  gboolean result = FALSE;
+  gboolean done = FALSE;
+
+  iter = gst_element_iterate_sink_pads (GST_ELEMENT (rtp_mux));
+
+  while (!done) {
+    GValue item = { 0, };
+
+    switch (gst_iterator_next (iter, &item)) {
+      case GST_ITERATOR_OK:
+        gst_event_ref (event);
+        result |= gst_pad_push_event (g_value_get_object (&item), event);
+        g_value_reset (&item);
+        break;
+      case GST_ITERATOR_RESYNC:
+        gst_iterator_resync (iter);
+        result = FALSE;
+        break;
+      case GST_ITERATOR_ERROR:
+        GST_WARNING_OBJECT (rtp_mux, "Error iterating sinkpads");
+      case GST_ITERATOR_DONE:
+        done = TRUE;
+        break;
+    }
+  }
+  gst_iterator_free (iter);
+  gst_event_unref (event);
+
+  return result;
+}
+
+static void
+gst_rtp_mux_init (GstRTPMux * rtp_mux)
+{
+  GstElementClass *klass = GST_ELEMENT_GET_CLASS (rtp_mux);
+
+  rtp_mux->srcpad =
+      gst_pad_new_from_template (gst_element_class_get_pad_template (klass,
+          "src"), "src");
+  gst_pad_set_event_function (rtp_mux->srcpad,
+      GST_DEBUG_FUNCPTR (gst_rtp_mux_src_event));
+  gst_element_add_pad (GST_ELEMENT (rtp_mux), rtp_mux->srcpad);
+
+  rtp_mux->ssrc = DEFAULT_SSRC;
+  rtp_mux->ts_offset = DEFAULT_TIMESTAMP_OFFSET;
+  rtp_mux->seqnum_offset = DEFAULT_SEQNUM_OFFSET;
+
+  rtp_mux->last_stop = GST_CLOCK_TIME_NONE;
+}
+
+static void
+gst_rtp_mux_setup_sinkpad (GstRTPMux * rtp_mux, GstPad * sinkpad)
+{
+  GstRTPMuxPadPrivate *padpriv = g_slice_new0 (GstRTPMuxPadPrivate);
+
+  /* setup some pad functions */
+  gst_pad_set_chain_function (sinkpad, GST_DEBUG_FUNCPTR (gst_rtp_mux_chain));
+  gst_pad_set_chain_list_function (sinkpad,
+      GST_DEBUG_FUNCPTR (gst_rtp_mux_chain_list));
+  gst_pad_set_event_function (sinkpad,
+      GST_DEBUG_FUNCPTR (gst_rtp_mux_sink_event));
+  gst_pad_set_query_function (sinkpad,
+      GST_DEBUG_FUNCPTR (gst_rtp_mux_sink_query));
+
+
+  gst_segment_init (&padpriv->segment, GST_FORMAT_UNDEFINED);
+
+  gst_pad_set_element_private (sinkpad, padpriv);
+
+  gst_pad_set_active (sinkpad, TRUE);
+  gst_element_add_pad (GST_ELEMENT (rtp_mux), sinkpad);
+}
+
+static GstPad *
+gst_rtp_mux_request_new_pad (GstElement * element,
+    GstPadTemplate * templ, const gchar * req_name, const GstCaps * caps)
+{
+  GstRTPMux *rtp_mux;
+  GstPad *newpad;
+
+  g_return_val_if_fail (templ != NULL, NULL);
+  g_return_val_if_fail (GST_IS_RTP_MUX (element), NULL);
+
+  rtp_mux = GST_RTP_MUX (element);
+
+  if (templ->direction != GST_PAD_SINK) {
+    GST_WARNING_OBJECT (rtp_mux, "request pad that is not a SINK pad");
+    return NULL;
+  }
+
+  newpad = gst_pad_new_from_template (templ, req_name);
+  if (newpad)
+    gst_rtp_mux_setup_sinkpad (rtp_mux, newpad);
+  else
+    GST_WARNING_OBJECT (rtp_mux, "failed to create request pad");
+
+  return newpad;
+}
+
+static void
+gst_rtp_mux_release_pad (GstElement * element, GstPad * pad)
+{
+  GstRTPMuxPadPrivate *padpriv;
+
+  GST_OBJECT_LOCK (element);
+  padpriv = gst_pad_get_element_private (pad);
+  gst_pad_set_element_private (pad, NULL);
+  GST_OBJECT_UNLOCK (element);
+
+  gst_element_remove_pad (element, pad);
+
+  if (padpriv) {
+    g_slice_free (GstRTPMuxPadPrivate, padpriv);
+  }
+}
+
+/* Put our own clock-base on the buffer */
+static void
+gst_rtp_mux_readjust_rtp_timestamp_locked (GstRTPMux * rtp_mux,
+    GstRTPMuxPadPrivate * padpriv, GstRTPBuffer * rtpbuffer)
+{
+  guint32 ts;
+  guint32 sink_ts_base = 0;
+
+  if (padpriv && padpriv->have_clock_base)
+    sink_ts_base = padpriv->clock_base;
+
+  ts = gst_rtp_buffer_get_timestamp (rtpbuffer) - sink_ts_base +
+      rtp_mux->ts_base;
+  GST_LOG_OBJECT (rtp_mux, "Re-adjusting RTP ts %u to %u",
+      gst_rtp_buffer_get_timestamp (rtpbuffer), ts);
+  gst_rtp_buffer_set_timestamp (rtpbuffer, ts);
+}
+
+static gboolean
+process_buffer_locked (GstRTPMux * rtp_mux, GstRTPMuxPadPrivate * padpriv,
+    GstRTPBuffer * rtpbuffer)
+{
+  GstRTPMuxClass *klass = GST_RTP_MUX_GET_CLASS (rtp_mux);
+
+  if (klass->accept_buffer_locked)
+    if (!klass->accept_buffer_locked (rtp_mux, padpriv, rtpbuffer))
+      return FALSE;
+
+  rtp_mux->seqnum++;
+  gst_rtp_buffer_set_seq (rtpbuffer, rtp_mux->seqnum);
+
+  gst_rtp_buffer_set_ssrc (rtpbuffer, rtp_mux->current_ssrc);
+  gst_rtp_mux_readjust_rtp_timestamp_locked (rtp_mux, padpriv, rtpbuffer);
+  GST_LOG_OBJECT (rtp_mux,
+      "Pushing packet size %" G_GSIZE_FORMAT ", seq=%d, ts=%u",
+      rtpbuffer->map[0].size, rtp_mux->seqnum,
+      gst_rtp_buffer_get_timestamp (rtpbuffer));
+
+  if (padpriv) {
+    if (padpriv->segment.format == GST_FORMAT_TIME)
+      GST_BUFFER_PTS (rtpbuffer->buffer) =
+          gst_segment_to_running_time (&padpriv->segment, GST_FORMAT_TIME,
+          GST_BUFFER_PTS (rtpbuffer->buffer));
+  }
+
+  return TRUE;
+}
+
+struct BufferListData
+{
+  GstRTPMux *rtp_mux;
+  GstRTPMuxPadPrivate *padpriv;
+  gboolean drop;
+};
+
+static gboolean
+process_list_item (GstBuffer ** buffer, guint idx, gpointer user_data)
+{
+  struct BufferListData *bd = user_data;
+  GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT;
+
+  *buffer = gst_buffer_make_writable (*buffer);
+
+  gst_rtp_buffer_map (*buffer, GST_MAP_READWRITE, &rtpbuffer);
+
+  bd->drop = !process_buffer_locked (bd->rtp_mux, bd->padpriv, &rtpbuffer);
+
+  gst_rtp_buffer_unmap (&rtpbuffer);
+
+  if (bd->drop)
+    return FALSE;
+
+  if (GST_BUFFER_DURATION_IS_VALID (*buffer) &&
+      GST_BUFFER_TIMESTAMP_IS_VALID (*buffer))
+    bd->rtp_mux->last_stop = GST_BUFFER_TIMESTAMP (*buffer) +
+        GST_BUFFER_DURATION (*buffer);
+  else
+    bd->rtp_mux->last_stop = GST_CLOCK_TIME_NONE;
+
+  return TRUE;
+}
+
+static GstFlowReturn
+gst_rtp_mux_chain_list (GstPad * pad, GstObject * parent,
+    GstBufferList * bufferlist)
+{
+  GstRTPMux *rtp_mux;
+  GstFlowReturn ret;
+  GstRTPMuxPadPrivate *padpriv;
+  gboolean drop = TRUE;
+  struct BufferListData bd;
+
+  rtp_mux = GST_RTP_MUX (parent);
+
+  GST_OBJECT_LOCK (rtp_mux);
+
+  padpriv = gst_pad_get_element_private (pad);
+  if (!padpriv) {
+    GST_OBJECT_UNLOCK (rtp_mux);
+    ret = GST_FLOW_NOT_LINKED;
+    gst_buffer_list_unref (bufferlist);
+    goto out;
+  }
+
+  bd.rtp_mux = rtp_mux;
+  bd.padpriv = padpriv;
+  bd.drop = FALSE;
+
+  bufferlist = gst_buffer_list_make_writable (bufferlist);
+  gst_buffer_list_foreach (bufferlist, process_list_item, &bd);
+
+  GST_OBJECT_UNLOCK (rtp_mux);
+
+  if (drop) {
+    gst_buffer_list_unref (bufferlist);
+    ret = GST_FLOW_OK;
+  } else {
+    ret = gst_pad_push_list (rtp_mux->srcpad, bufferlist);
+  }
+
+out:
+
+  return ret;
+}
+
+static gboolean
+resend_events (GstPad * pad, GstEvent ** event, gpointer user_data)
+{
+  GstRTPMux *rtp_mux = user_data;
+
+  if (GST_EVENT_TYPE (*event) == GST_EVENT_CAPS) {
+    GstCaps *caps;
+
+    gst_event_parse_caps (*event, &caps);
+    gst_rtp_mux_setcaps (pad, rtp_mux, caps);
+  } else {
+    gst_pad_push_event (rtp_mux->srcpad, gst_event_ref (*event));
+  }
+
+  return TRUE;
+}
+
+static GstFlowReturn
+gst_rtp_mux_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
+{
+  GstRTPMux *rtp_mux;
+  GstFlowReturn ret;
+  GstRTPMuxPadPrivate *padpriv;
+  gboolean drop;
+  gboolean changed = FALSE;
+  GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT;
+
+  rtp_mux = GST_RTP_MUX (GST_OBJECT_PARENT (pad));
+
+  GST_OBJECT_LOCK (rtp_mux);
+  padpriv = gst_pad_get_element_private (pad);
+
+  if (!padpriv) {
+    GST_OBJECT_UNLOCK (rtp_mux);
+    gst_buffer_unref (buffer);
+    return GST_FLOW_NOT_LINKED;
+  }
+
+  buffer = gst_buffer_make_writable (buffer);
+
+  if (!gst_rtp_buffer_map (buffer, GST_MAP_READWRITE, &rtpbuffer)) {
+    GST_OBJECT_UNLOCK (rtp_mux);
+    gst_buffer_unref (buffer);
+    GST_ERROR_OBJECT (rtp_mux, "Invalid RTP buffer");
+    return GST_FLOW_ERROR;
+  }
+
+  drop = !process_buffer_locked (rtp_mux, padpriv, &rtpbuffer);
+
+  gst_rtp_buffer_unmap (&rtpbuffer);
+
+  if (!drop) {
+    if (pad != rtp_mux->last_pad) {
+      changed = TRUE;
+      g_clear_object (&rtp_mux->last_pad);
+      rtp_mux->last_pad = g_object_ref (pad);
+    }
+
+    if (GST_BUFFER_DURATION_IS_VALID (buffer) &&
+        GST_BUFFER_TIMESTAMP_IS_VALID (buffer))
+      rtp_mux->last_stop = GST_BUFFER_TIMESTAMP (buffer) +
+          GST_BUFFER_DURATION (buffer);
+    else
+      rtp_mux->last_stop = GST_CLOCK_TIME_NONE;
+  }
+
+  GST_OBJECT_UNLOCK (rtp_mux);
+
+  if (changed)
+    gst_pad_sticky_events_foreach (pad, resend_events, rtp_mux);
+
+  if (drop) {
+    gst_buffer_unref (buffer);
+    ret = GST_FLOW_OK;
+  } else {
+    ret = gst_pad_push (rtp_mux->srcpad, buffer);
+  }
+
+  return ret;
+}
+
+static gboolean
+gst_rtp_mux_setcaps (GstPad * pad, GstRTPMux * rtp_mux, GstCaps * caps)
+{
+  GstStructure *structure;
+  gboolean ret = FALSE;
+  GstRTPMuxPadPrivate *padpriv;
+
+  structure = gst_caps_get_structure (caps, 0);
+
+  if (!structure)
+    return FALSE;
+
+  GST_OBJECT_LOCK (rtp_mux);
+  padpriv = gst_pad_get_element_private (pad);
+  if (padpriv &&
+      gst_structure_get_uint (structure, "clock-base", &padpriv->clock_base)) {
+    padpriv->have_clock_base = TRUE;
+  }
+  GST_OBJECT_UNLOCK (rtp_mux);
+
+  caps = gst_caps_copy (caps);
+
+  gst_caps_set_simple (caps,
+      "clock-base", G_TYPE_UINT, rtp_mux->ts_base,
+      "seqnum-base", G_TYPE_UINT, rtp_mux->seqnum_base, NULL);
+
+  if (rtp_mux->send_stream_start) {
+    gchar s_id[32];
+
+    /* stream-start (FIXME: create id based on input ids) */
+    g_snprintf (s_id, sizeof (s_id), "interleave-%08x", g_random_int ());
+    gst_pad_push_event (rtp_mux->srcpad, gst_event_new_stream_start (s_id));
+
+    rtp_mux->send_stream_start = FALSE;
+  }
+
+  GST_DEBUG_OBJECT (rtp_mux,
+      "setting caps %" GST_PTR_FORMAT " on src pad..", caps);
+  ret = gst_pad_set_caps (rtp_mux->srcpad, caps);
+
+  if (rtp_mux->ssrc == -1) {
+    if (gst_structure_has_field_typed (structure, "ssrc", G_TYPE_UINT)) {
+      rtp_mux->current_ssrc = g_value_get_uint
+          (gst_structure_get_value (structure, "ssrc"));
+    }
+  }
+
+  gst_caps_unref (caps);
+
+  return ret;
+}
+
+static void
+clear_caps (GstCaps * caps, gboolean only_clock_rate)
+{
+  gint i, j;
+
+  /* Lets only match on the clock-rate */
+  for (i = 0; i < gst_caps_get_size (caps); i++) {
+    GstStructure *s = gst_caps_get_structure (caps, i);
+
+    for (j = 0; j < gst_structure_n_fields (s); j++) {
+      const gchar *name = gst_structure_nth_field_name (s, j);
+
+      if (strcmp (name, "clock-rate") && (only_clock_rate ||
+              (strcmp (name, "ssrc")))) {
+        gst_structure_remove_field (s, name);
+        j--;
+      }
+    }
+  }
+}
+
+static gboolean
+same_clock_rate_fold (const GValue * item, GValue * ret, gpointer user_data)
+{
+  GstPad *mypad = user_data;
+  GstPad *pad = g_value_get_object (item);
+  GstCaps *peercaps;
+  GstCaps *accumcaps;
+  GstCaps *intersect;
+
+  if (pad == mypad)
+    return TRUE;
+
+  accumcaps = g_value_get_boxed (ret);
+  peercaps = gst_pad_peer_query_caps (pad, accumcaps);
+  if (!peercaps) {
+    g_warning ("no peercaps");
+    return TRUE;
+  }
+  peercaps = gst_caps_make_writable (peercaps);
+  clear_caps (peercaps, TRUE);
+
+  intersect = gst_caps_intersect (accumcaps, peercaps);
+
+  g_value_take_boxed (ret, intersect);
+  gst_caps_unref (peercaps);
+
+  return !gst_caps_is_empty (intersect);
+}
+
+static GstCaps *
+gst_rtp_mux_getcaps (GstPad * pad, GstRTPMux * mux, GstCaps * filter)
+{
+  GstCaps *caps = NULL;
+  GstIterator *iter = NULL;
+  GValue v = { 0 };
+  GstIteratorResult res;
+  GstCaps *peercaps;
+  GstCaps *othercaps;
+
+  peercaps = gst_pad_peer_query_caps (mux->srcpad, filter);
+
+  if (peercaps) {
+    othercaps = gst_caps_intersect_full (peercaps,
+        gst_pad_get_pad_template_caps (pad), GST_CAPS_INTERSECT_FIRST);
+    gst_caps_unref (peercaps);
+  } else {
+    if (filter)
+      othercaps = gst_caps_intersect_full (filter,
+          gst_pad_get_pad_template_caps (mux->srcpad),
+          GST_CAPS_INTERSECT_FIRST);
+    else
+      othercaps = gst_caps_copy (gst_pad_get_pad_template_caps (mux->srcpad));
+  }
+
+  clear_caps (othercaps, FALSE);
+
+  g_value_init (&v, GST_TYPE_CAPS);
+
+  iter = gst_element_iterate_sink_pads (GST_ELEMENT (mux));
+  do {
+    gst_value_set_caps (&v, othercaps);
+    res = gst_iterator_fold (iter, same_clock_rate_fold, &v, pad);
+    gst_iterator_resync (iter);
+  } while (res == GST_ITERATOR_RESYNC);
+  gst_iterator_free (iter);
+
+  caps = (GstCaps *) gst_value_get_caps (&v);
+
+  if (res == GST_ITERATOR_ERROR) {
+    gst_caps_unref (caps);
+    caps = gst_caps_new_empty ();
+  }
+
+  gst_caps_unref (othercaps);
+
+  return caps;
+}
+
+static gboolean
+gst_rtp_mux_sink_query (GstPad * pad, GstObject * parent, GstQuery * query)
+{
+  GstRTPMux *mux = GST_RTP_MUX (parent);
+  gboolean res = FALSE;
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_CAPS:
+    {
+      GstCaps *filter, *caps;
+
+      gst_query_parse_caps (query, &filter);
+      caps = gst_rtp_mux_getcaps (pad, mux, filter);
+      gst_query_set_caps_result (query, caps);
+      gst_caps_unref (caps);
+      res = TRUE;
+      break;
+    }
+    default:
+      res = gst_pad_query_default (pad, parent, query);
+      break;
+  }
+
+  return res;
+
+
+}
+
+
+static void
+gst_rtp_mux_get_property (GObject * object,
+    guint prop_id, GValue * value, GParamSpec * pspec)
+{
+  GstRTPMux *rtp_mux;
+
+  rtp_mux = GST_RTP_MUX (object);
+
+  switch (prop_id) {
+    case PROP_TIMESTAMP_OFFSET:
+      g_value_set_int (value, rtp_mux->ts_offset);
+      break;
+    case PROP_SEQNUM_OFFSET:
+      g_value_set_int (value, rtp_mux->seqnum_offset);
+      break;
+    case PROP_SEQNUM:
+      GST_OBJECT_LOCK (rtp_mux);
+      g_value_set_uint (value, rtp_mux->seqnum);
+      GST_OBJECT_UNLOCK (rtp_mux);
+      break;
+    case PROP_SSRC:
+      g_value_set_uint (value, rtp_mux->ssrc);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_rtp_mux_set_property (GObject * object,
+    guint prop_id, const GValue * value, GParamSpec * pspec)
+{
+  GstRTPMux *rtp_mux;
+
+  rtp_mux = GST_RTP_MUX (object);
+
+  switch (prop_id) {
+    case PROP_TIMESTAMP_OFFSET:
+      rtp_mux->ts_offset = g_value_get_int (value);
+      break;
+    case PROP_SEQNUM_OFFSET:
+      rtp_mux->seqnum_offset = g_value_get_int (value);
+      break;
+    case PROP_SSRC:
+      rtp_mux->ssrc = g_value_get_uint (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static gboolean
+gst_rtp_mux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
+{
+  GstRTPMux *mux = GST_RTP_MUX (parent);
+  gboolean is_pad;
+  gboolean ret;
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_CAPS:
+    {
+      GstCaps *caps;
+
+      gst_event_parse_caps (event, &caps);
+      ret = gst_rtp_mux_setcaps (pad, mux, caps);
+      gst_event_unref (event);
+      return ret;
+    }
+    case GST_EVENT_FLUSH_STOP:
+    {
+      GST_OBJECT_LOCK (mux);
+      mux->last_stop = GST_CLOCK_TIME_NONE;
+      GST_OBJECT_UNLOCK (mux);
+      break;
+    }
+    case GST_EVENT_SEGMENT:
+    {
+      GstRTPMuxPadPrivate *padpriv;
+
+      GST_OBJECT_LOCK (mux);
+      padpriv = gst_pad_get_element_private (pad);
+
+      if (padpriv) {
+        gst_event_copy_segment (event, &padpriv->segment);
+      }
+      GST_OBJECT_UNLOCK (mux);
+      break;
+    }
+    default:
+      break;
+  }
+
+  GST_OBJECT_LOCK (mux);
+  is_pad = (pad == mux->last_pad);
+  GST_OBJECT_UNLOCK (mux);
+
+  if (is_pad) {
+    return gst_pad_push_event (mux->srcpad, event);
+  } else {
+    gst_event_unref (event);
+    return TRUE;
+  }
+}
+
+static void
+gst_rtp_mux_ready_to_paused (GstRTPMux * rtp_mux)
+{
+
+  GST_OBJECT_LOCK (rtp_mux);
+
+  g_clear_object (&rtp_mux->last_pad);
+  rtp_mux->send_stream_start = TRUE;
+
+  if (rtp_mux->ssrc == -1)
+    rtp_mux->current_ssrc = g_random_int ();
+  else
+    rtp_mux->current_ssrc = rtp_mux->ssrc;
+
+  if (rtp_mux->seqnum_offset == -1)
+    rtp_mux->seqnum_base = g_random_int_range (0, G_MAXUINT16);
+  else
+    rtp_mux->seqnum_base = rtp_mux->seqnum_offset;
+  rtp_mux->seqnum = rtp_mux->seqnum_base;
+
+  if (rtp_mux->ts_offset == -1)
+    rtp_mux->ts_base = g_random_int ();
+  else
+    rtp_mux->ts_base = rtp_mux->ts_offset;
+
+  rtp_mux->last_stop = GST_CLOCK_TIME_NONE;
+
+  GST_DEBUG_OBJECT (rtp_mux, "set clock-base to %u", rtp_mux->ts_base);
+
+  GST_OBJECT_UNLOCK (rtp_mux);
+}
+
+static GstStateChangeReturn
+gst_rtp_mux_change_state (GstElement * element, GstStateChange transition)
+{
+  GstRTPMux *rtp_mux;
+  GstStateChangeReturn ret;
+
+  rtp_mux = GST_RTP_MUX (element);
+
+  switch (transition) {
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      gst_rtp_mux_ready_to_paused (rtp_mux);
+      break;
+    default:
+      break;
+  }
+
+  ret = GST_ELEMENT_CLASS (gst_rtp_mux_parent_class)->change_state (element,
+      transition);
+
+  switch (transition) {
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      g_clear_object (&rtp_mux->last_pad);
+      break;
+    default:
+      break;
+  }
+
+  return ret;
+}
+
+gboolean
+gst_rtp_mux_plugin_init (GstPlugin * plugin)
+{
+  GST_DEBUG_CATEGORY_INIT (gst_rtp_mux_debug, "rtpmux", 0, "rtp muxer");
+
+  return gst_element_register (plugin, "rtpmux", GST_RANK_NONE,
+      GST_TYPE_RTP_MUX);
+}
diff --git a/gst/rtpmanager/gstrtpmux.h b/gst/rtpmanager/gstrtpmux.h
new file mode 100644
index 000000000..3582a75a5
--- /dev/null
+++ b/gst/rtpmanager/gstrtpmux.h
@@ -0,0 +1,96 @@
+/* RTP muxer element for GStreamer
+ *
+ * gstrtpmux.h:
+ *
+ * Copyright (C) <2007> Nokia Corporation.
+ *   Contact: Zeeshan Ali <zeeshan.ali@nokia.com>
+ * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
+ *               2000,2005 Wim Taymans <wim@fluendo.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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_RTP_MUX_H__
+#define __GST_RTP_MUX_H__
+
+#include <gst/gst.h>
+#include <gst/rtp/gstrtpbuffer.h>
+
+G_BEGIN_DECLS
+#define GST_TYPE_RTP_MUX (gst_rtp_mux_get_type())
+#define GST_RTP_MUX(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_MUX, GstRTPMux))
+#define GST_RTP_MUX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_MUX, GstRTPMuxClass))
+#define GST_RTP_MUX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_RTP_MUX, GstRTPMuxClass))
+#define GST_IS_RTP_MUX(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_MUX))
+#define GST_IS_RTP_MUX_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_MUX))
+typedef struct _GstRTPMux GstRTPMux;
+typedef struct _GstRTPMuxClass GstRTPMuxClass;
+
+
+typedef struct
+{
+  gboolean have_clock_base;
+  guint clock_base;
+
+  GstSegment segment;
+
+  gboolean priority;
+} GstRTPMuxPadPrivate;
+
+
+/**
+ * GstRTPMux:
+ *
+ * The opaque #GstRTPMux structure.
+ */
+struct _GstRTPMux
+{
+  GstElement element;
+
+  /* pad */
+  GstPad *srcpad;
+
+  guint32 ts_base;
+  guint16 seqnum_base;
+
+  gint32 ts_offset;
+  gint16 seqnum_offset;
+  guint16 seqnum;               /* protected by object lock */
+  guint ssrc;
+  guint current_ssrc;
+
+  GstPad *last_pad; /* protected by object lock */
+
+  GstClockTime last_stop;
+  gboolean send_stream_start;
+};
+
+struct _GstRTPMuxClass
+{
+  GstElementClass parent_class;
+
+  gboolean (*accept_buffer_locked) (GstRTPMux *rtp_mux,
+      GstRTPMuxPadPrivate * padpriv, GstRTPBuffer * buffer);
+
+  gboolean (*src_event) (GstRTPMux *rtp_mux, GstEvent *event);
+};
+
+
+GType gst_rtp_mux_get_type (void);
+gboolean gst_rtp_mux_plugin_init (GstPlugin * plugin);
+
+G_END_DECLS
+#endif /* __GST_RTP_MUX_H__ */
diff --git a/gst/rtpmanager/gstrtpptdemux.c b/gst/rtpmanager/gstrtpptdemux.c
index b4d60aaba..fb3559a05 100644
--- a/gst/rtpmanager/gstrtpptdemux.c
+++ b/gst/rtpmanager/gstrtpptdemux.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -337,7 +337,9 @@ forward_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data)
 {
   GstPad *srcpad = GST_PAD_CAST (user_data);
 
-  gst_pad_push_event (srcpad, gst_event_ref (*event));
+  /* Stream start and caps have already been pushed */
+  if (GST_EVENT_TYPE (*event) >= GST_EVENT_SEGMENT)
+    gst_pad_push_event (srcpad, gst_event_ref (*event));
 
   return TRUE;
 }
@@ -394,9 +396,10 @@ gst_rtp_pt_demux_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
 
     gst_pad_set_active (srcpad, TRUE);
 
-    /* First sticky events on sink pad are forwarded to the new src pad */
-    gst_pad_sticky_events_foreach (rtpdemux->sink, forward_sticky_events,
-        srcpad);
+
+    /* First push the stream-start event, it must always come first */
+    gst_pad_push_event (srcpad,
+        gst_pad_get_sticky_event (rtpdemux->sink, GST_EVENT_STREAM_START, 0));
 
     /* Then caps event is sent */
     caps = gst_caps_make_writable (caps);
@@ -404,6 +407,10 @@ gst_rtp_pt_demux_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
     gst_pad_set_caps (srcpad, caps);
     gst_caps_unref (caps);
 
+    /* First sticky events on sink pad are forwarded to the new src pad */
+    gst_pad_sticky_events_foreach (rtpdemux->sink, forward_sticky_events,
+        srcpad);
+
     gst_element_add_pad (GST_ELEMENT_CAST (rtpdemux), srcpad);
 
     GST_DEBUG ("emitting new-payload-type for pt %d", pt);
diff --git a/gst/rtpmanager/gstrtpptdemux.h b/gst/rtpmanager/gstrtpptdemux.h
index 028c97d4a..aa1bb7f20 100644
--- a/gst/rtpmanager/gstrtpptdemux.h
+++ b/gst/rtpmanager/gstrtpptdemux.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_PT_DEMUX_H__
diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c
index 271e9519a..1bc2b5288 100644
--- a/gst/rtpmanager/gstrtpsession.c
+++ b/gst/rtpmanager/gstrtpsession.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -226,9 +226,13 @@ enum
 #define GST_RTP_SESSION_LOCK(sess)   g_mutex_lock (&(sess)->priv->lock)
 #define GST_RTP_SESSION_UNLOCK(sess) g_mutex_unlock (&(sess)->priv->lock)
 
+#define GST_RTP_SESSION_WAIT(sess)   g_cond_wait (&(sess)->priv->cond, &(sess)->priv->lock)
+#define GST_RTP_SESSION_SIGNAL(sess) g_cond_signal (&(sess)->priv->cond)
+
 struct _GstRtpSessionPrivate
 {
   GMutex lock;
+  GCond cond;
   GstClock *sysclock;
 
   RTPSession *session;
@@ -238,10 +242,13 @@ struct _GstRtpSessionPrivate
   gboolean stop_thread;
   GThread *thread;
   gboolean thread_stopped;
+  gboolean wait_send;
 
   /* caps mapping */
   GHashTable *ptmap;
 
+  GstClockTime send_latency;
+
   gboolean use_pipeline_clock;
 };
 
@@ -620,6 +627,7 @@ gst_rtp_session_init (GstRtpSession * rtpsession)
 {
   rtpsession->priv = GST_RTP_SESSION_GET_PRIVATE (rtpsession);
   g_mutex_init (&rtpsession->priv->lock);
+  g_cond_init (&rtpsession->priv->cond);
   rtpsession->priv->sysclock = gst_system_clock_obtain ();
   rtpsession->priv->session = rtp_session_new ();
   rtpsession->priv->use_pipeline_clock = DEFAULT_USE_PIPELINE_CLOCK;
@@ -663,6 +671,7 @@ gst_rtp_session_finalize (GObject * object)
 
   g_hash_table_destroy (rtpsession->priv->ptmap);
   g_mutex_clear (&rtpsession->priv->lock);
+  g_cond_clear (&rtpsession->priv->cond);
   g_object_unref (rtpsession->priv->sysclock);
   g_object_unref (rtpsession->priv->session);
 
@@ -781,10 +790,12 @@ get_current_times (GstRtpSession * rtpsession, GstClockTime * running_time,
     gst_object_ref (clock);
     GST_OBJECT_UNLOCK (rtpsession);
 
+    /* get current clock time and convert to running time */
     clock_time = gst_clock_get_time (clock);
+    rt = clock_time - base_time;
 
     if (rtpsession->priv->use_pipeline_clock) {
-      ntpns = clock_time - base_time;
+      ntpns = rt;
     } else {
       GTimeVal current;
 
@@ -796,9 +807,6 @@ get_current_times (GstRtpSession * rtpsession, GstClockTime * running_time,
     /* add constant to convert from 1970 based time to 1900 based time */
     ntpns += (2208988800LL * GST_SECOND);
 
-    /* get current clock time and convert to running time */
-    rt = clock_time - base_time;
-
     gst_object_unref (clock);
   } else {
     GST_OBJECT_UNLOCK (rtpsession);
@@ -826,6 +834,12 @@ rtcp_thread (GstRtpSession * rtpsession)
 
   GST_RTP_SESSION_LOCK (rtpsession);
 
+  while (rtpsession->priv->wait_send) {
+    GST_LOG_OBJECT (rtpsession, "waiting for RTP thread");
+    GST_RTP_SESSION_WAIT (rtpsession);
+    GST_LOG_OBJECT (rtpsession, "signaled...");
+  }
+
   sysclock = rtpsession->priv->sysclock;
   current_time = gst_clock_get_time (sysclock);
 
@@ -925,6 +939,8 @@ stop_rtcp_thread (GstRtpSession * rtpsession)
 
   GST_RTP_SESSION_LOCK (rtpsession);
   rtpsession->priv->stop_thread = TRUE;
+  rtpsession->priv->wait_send = FALSE;
+  GST_RTP_SESSION_SIGNAL (rtpsession);
   if (rtpsession->priv->id)
     gst_clock_id_unschedule (rtpsession->priv->id);
   GST_RTP_SESSION_UNLOCK (rtpsession);
@@ -961,6 +977,10 @@ gst_rtp_session_change_state (GstElement * element, GstStateChange transition)
     case GST_STATE_CHANGE_NULL_TO_READY:
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
+      GST_RTP_SESSION_LOCK (rtpsession);
+      if (rtpsession->send_rtp_src)
+        rtpsession->priv->wait_send = TRUE;
+      GST_RTP_SESSION_UNLOCK (rtpsession);
       break;
     case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
       break;
@@ -1058,6 +1078,11 @@ gst_rtp_session_send_rtp (RTPSession * sess, RTPSource * src,
   GST_RTP_SESSION_LOCK (rtpsession);
   if ((rtp_src = rtpsession->send_rtp_src))
     gst_object_ref (rtp_src);
+  if (rtpsession->priv->wait_send) {
+    GST_LOG_OBJECT (rtpsession, "signal RTCP thread");
+    rtpsession->priv->wait_send = FALSE;
+    GST_RTP_SESSION_SIGNAL (rtpsession);
+  }
   GST_RTP_SESSION_UNLOCK (rtpsession);
 
   if (rtp_src) {
@@ -1076,6 +1101,31 @@ gst_rtp_session_send_rtp (RTPSession * sess, RTPSource * src,
   return result;
 }
 
+static void
+do_rtcp_events (GstRtpSession * rtpsession, GstPad * srcpad)
+{
+  GstCaps *caps;
+  GstSegment seg;
+  GstEvent *event;
+  gchar *stream_id;
+
+  stream_id =
+      g_strdup_printf ("%08x%08x%08x%08x", g_random_int (), g_random_int (),
+      g_random_int (), g_random_int ());
+
+  event = gst_event_new_stream_start (stream_id);
+  gst_pad_push_event (srcpad, event);
+  g_free (stream_id);
+
+  caps = gst_caps_new_empty_simple ("application/x-rtcp");
+  gst_pad_set_caps (srcpad, caps);
+  gst_caps_unref (caps);
+
+  gst_segment_init (&seg, GST_FORMAT_TIME);
+  event = gst_event_new_segment (&seg);
+  gst_pad_push_event (srcpad, event);
+}
+
 /* called when the session manager has an RTCP packet ready for further
  * sending. The eos flag is set when an EOS event should be sent downstream as
  * well. */
@@ -1094,17 +1144,12 @@ gst_rtp_session_send_rtcp (RTPSession * sess, RTPSource * src,
     goto stopping;
 
   if ((rtcp_src = rtpsession->send_rtcp_src)) {
-    GstCaps *caps;
-
     gst_object_ref (rtcp_src);
     GST_RTP_SESSION_UNLOCK (rtpsession);
 
     /* set rtcp caps on output pad */
-    if (!(caps = gst_pad_get_current_caps (rtcp_src))) {
-      caps = gst_caps_new_empty_simple ("application/x-rtcp");
-      gst_pad_set_caps (rtcp_src, caps);
-    }
-    gst_caps_unref (caps);
+    if (!gst_pad_has_current_caps (rtcp_src))
+      do_rtcp_events (rtpsession, rtcp_src);
 
     GST_LOG_OBJECT (rtpsession, "sending RTCP");
     result = gst_pad_push (rtcp_src, buffer);
@@ -1151,18 +1196,9 @@ gst_rtp_session_sync_rtcp (RTPSession * sess, RTPSource * src,
     goto stopping;
 
   if ((sync_src = rtpsession->sync_src)) {
-    GstCaps *caps;
-
     gst_object_ref (sync_src);
     GST_RTP_SESSION_UNLOCK (rtpsession);
 
-    /* set rtcp caps on output pad */
-    if (!(caps = gst_pad_get_current_caps (sync_src))) {
-      caps = gst_caps_new_empty_simple ("application/x-rtcp");
-      gst_pad_set_caps (sync_src, caps);
-    }
-    gst_caps_unref (caps);
-
     GST_LOG_OBJECT (rtpsession, "sending Sync RTCP");
     result = gst_pad_push (sync_src, buffer);
     gst_object_unref (sync_src);
@@ -1434,8 +1470,22 @@ gst_rtp_session_event_recv_rtp_src (GstPad * pad, GstObject * parent,
       break;
   }
 
-  if (forward)
-    ret = gst_pad_push_event (rtpsession->recv_rtp_sink, event);
+  if (forward) {
+    GstPad *recv_rtp_sink;
+
+    GST_RTP_SESSION_LOCK (rtpsession);
+    if ((recv_rtp_sink = rtpsession->recv_rtp_sink))
+      gst_object_ref (recv_rtp_sink);
+    GST_RTP_SESSION_UNLOCK (rtpsession);
+
+    if (recv_rtp_sink) {
+      ret = gst_pad_push_event (recv_rtp_sink, event);
+      gst_object_unref (recv_rtp_sink);
+    } else
+      gst_event_unref (event);
+  } else {
+    gst_event_unref (event);
+  }
 
   return ret;
 }
@@ -1589,7 +1639,8 @@ gst_rtp_session_query_send_rtcp_src (GstPad * pad, GstObject * parent,
 
   rtpsession = GST_RTP_SESSION (parent);
 
-  GST_DEBUG_OBJECT (rtpsession, "received QUERY");
+  GST_DEBUG_OBJECT (rtpsession, "received QUERY %s",
+      GST_QUERY_TYPE_NAME (query));
 
   switch (GST_QUERY_TYPE (query)) {
     case GST_QUERY_LATENCY:
@@ -1613,7 +1664,8 @@ gst_rtp_session_event_send_rtcp_src (GstPad * pad, GstObject * parent,
   gboolean ret = TRUE;
 
   rtpsession = GST_RTP_SESSION (parent);
-  GST_DEBUG_OBJECT (rtpsession, "received EVENT");
+  GST_DEBUG_OBJECT (rtpsession, "received EVENT %s",
+      GST_EVENT_TYPE_NAME (event));
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_SEEK:
@@ -1641,7 +1693,8 @@ gst_rtp_session_event_send_rtp_sink (GstPad * pad, GstObject * parent,
 
   rtpsession = GST_RTP_SESSION (parent);
 
-  GST_DEBUG_OBJECT (rtpsession, "received event");
+  GST_DEBUG_OBJECT (rtpsession, "received EVENT %s",
+      GST_EVENT_TYPE_NAME (event));
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_CAPS:
@@ -1690,10 +1743,11 @@ gst_rtp_session_event_send_rtp_sink (GstPad * pad, GstObject * parent,
       break;
     }
     default:{
-      GstPad *send_rtp_src = NULL;
+      GstPad *send_rtp_src;
+
       GST_RTP_SESSION_LOCK (rtpsession);
-      if (rtpsession->send_rtp_src)
-        send_rtp_src = gst_object_ref (rtpsession->send_rtp_src);
+      if ((send_rtp_src = rtpsession->send_rtp_src))
+        gst_object_ref (send_rtp_src);
       GST_RTP_SESSION_UNLOCK (rtpsession);
 
       if (send_rtp_src) {
@@ -1709,6 +1763,33 @@ gst_rtp_session_event_send_rtp_sink (GstPad * pad, GstObject * parent,
   return ret;
 }
 
+static gboolean
+gst_rtp_session_event_send_rtp_src (GstPad * pad, GstObject * parent,
+    GstEvent * event)
+{
+  GstRtpSession *rtpsession;
+  gboolean ret = FALSE;
+
+  rtpsession = GST_RTP_SESSION (parent);
+
+  GST_DEBUG_OBJECT (rtpsession, "received EVENT %s",
+      GST_EVENT_TYPE_NAME (event));
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_LATENCY:
+      /* save the latency, we need this to know when an RTP packet will be
+       * rendered by the sink */
+      gst_event_parse_latency (event, &rtpsession->priv->send_latency);
+
+      ret = gst_pad_event_default (pad, parent, event);
+      break;
+    default:
+      ret = gst_pad_event_default (pad, parent, event);
+      break;
+  }
+  return ret;
+}
+
 static GstCaps *
 gst_rtp_session_getcaps_send_rtp (GstPad * pad, GstRtpSession * rtpsession,
     GstCaps * filter)
@@ -1826,6 +1907,7 @@ gst_rtp_session_chain_send_rtp_common (GstRtpSession * rtpsession,
     running_time =
         gst_segment_to_running_time (&rtpsession->send_rtp_seg, GST_FORMAT_TIME,
         timestamp);
+    running_time += priv->send_latency;
   } else {
     /* no timestamp. */
     running_time = -1;
@@ -1882,7 +1964,7 @@ create_recv_rtp_sink (GstRtpSession * rtpsession)
   gst_pad_set_chain_function (rtpsession->recv_rtp_sink,
       gst_rtp_session_chain_recv_rtp);
   gst_pad_set_event_function (rtpsession->recv_rtp_sink,
-      (GstPadEventFunction) gst_rtp_session_event_recv_rtp_sink);
+      gst_rtp_session_event_recv_rtp_sink);
   gst_pad_set_iterate_internal_links_function (rtpsession->recv_rtp_sink,
       gst_rtp_session_iterate_internal_links);
   gst_pad_set_active (rtpsession->recv_rtp_sink, TRUE);
@@ -1894,7 +1976,7 @@ create_recv_rtp_sink (GstRtpSession * rtpsession)
       gst_pad_new_from_static_template (&rtpsession_recv_rtp_src_template,
       "recv_rtp_src");
   gst_pad_set_event_function (rtpsession->recv_rtp_src,
-      (GstPadEventFunction) gst_rtp_session_event_recv_rtp_src);
+      gst_rtp_session_event_recv_rtp_src);
   gst_pad_set_iterate_internal_links_function (rtpsession->recv_rtp_src,
       gst_rtp_session_iterate_internal_links);
   gst_pad_use_fixed_caps (rtpsession->recv_rtp_src);
@@ -1941,7 +2023,7 @@ create_recv_rtcp_sink (GstRtpSession * rtpsession)
   gst_pad_set_chain_function (rtpsession->recv_rtcp_sink,
       gst_rtp_session_chain_recv_rtcp);
   gst_pad_set_event_function (rtpsession->recv_rtcp_sink,
-      (GstPadEventFunction) gst_rtp_session_event_recv_rtcp_sink);
+      gst_rtp_session_event_recv_rtcp_sink);
   gst_pad_set_iterate_internal_links_function (rtpsession->recv_rtcp_sink,
       gst_rtp_session_iterate_internal_links);
   gst_pad_set_active (rtpsession->recv_rtcp_sink, TRUE);
@@ -1996,7 +2078,7 @@ create_send_rtp_sink (GstRtpSession * rtpsession)
   gst_pad_set_query_function (rtpsession->send_rtp_sink,
       gst_rtp_session_query_send_rtp);
   gst_pad_set_event_function (rtpsession->send_rtp_sink,
-      (GstPadEventFunction) gst_rtp_session_event_send_rtp_sink);
+      gst_rtp_session_event_send_rtp_sink);
   gst_pad_set_iterate_internal_links_function (rtpsession->send_rtp_sink,
       gst_rtp_session_iterate_internal_links);
   gst_pad_set_active (rtpsession->send_rtp_sink, TRUE);
@@ -2008,6 +2090,8 @@ create_send_rtp_sink (GstRtpSession * rtpsession)
       "send_rtp_src");
   gst_pad_set_iterate_internal_links_function (rtpsession->send_rtp_src,
       gst_rtp_session_iterate_internal_links);
+  gst_pad_set_event_function (rtpsession->send_rtp_src,
+      gst_rtp_session_event_send_rtp_src);
   gst_pad_set_active (rtpsession->send_rtp_src, TRUE);
   gst_element_add_pad (GST_ELEMENT_CAST (rtpsession), rtpsession->send_rtp_src);
 
@@ -2177,11 +2261,20 @@ gst_rtp_session_request_key_unit (RTPSession * sess,
 {
   GstRtpSession *rtpsession = GST_RTP_SESSION (user_data);
   GstEvent *event;
+  GstPad *send_rtp_sink;
 
-  event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM,
-      gst_structure_new ("GstForceKeyUnit",
-          "all-headers", G_TYPE_BOOLEAN, all_headers, NULL));
-  gst_pad_push_event (rtpsession->send_rtp_sink, event);
+  GST_RTP_SESSION_LOCK (rtpsession);
+  if ((send_rtp_sink = rtpsession->send_rtp_sink))
+    gst_object_ref (send_rtp_sink);
+  GST_RTP_SESSION_UNLOCK (rtpsession);
+
+  if (send_rtp_sink) {
+    event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM,
+        gst_structure_new ("GstForceKeyUnit",
+            "all-headers", G_TYPE_BOOLEAN, all_headers, NULL));
+    gst_pad_push_event (send_rtp_sink, event);
+    gst_object_unref (send_rtp_sink);
+  }
 }
 
 static GstClockTime
diff --git a/gst/rtpmanager/gstrtpsession.h b/gst/rtpmanager/gstrtpsession.h
index bc3feb834..bbaafa616 100644
--- a/gst/rtpmanager/gstrtpsession.h
+++ b/gst/rtpmanager/gstrtpsession.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_SESSION_H__
diff --git a/gst/rtpmanager/gstrtpssrcdemux.c b/gst/rtpmanager/gstrtpssrcdemux.c
index 74d6aae50..142f4ca1f 100644
--- a/gst/rtpmanager/gstrtpssrcdemux.c
+++ b/gst/rtpmanager/gstrtpssrcdemux.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -123,8 +123,6 @@ static gboolean gst_rtp_ssrc_demux_sink_event (GstPad * pad, GstObject * parent,
 
 static GstFlowReturn gst_rtp_ssrc_demux_rtcp_chain (GstPad * pad,
     GstObject * parent, GstBuffer * buf);
-static gboolean gst_rtp_ssrc_demux_rtcp_sink_event (GstPad * pad,
-    GstObject * parent, GstEvent * event);
 static GstIterator *gst_rtp_ssrc_demux_iterate_internal_links_sink (GstPad *
     pad, GstObject * parent);
 
@@ -147,6 +145,9 @@ struct _GstRtpSsrcDemuxPad
   GstPad *rtp_pad;
   GstCaps *caps;
   GstPad *rtcp_pad;
+
+  gboolean pushed_initial_rtp_events;
+  gboolean pushed_initial_rtcp_events;
 };
 
 /* find a src pad for a given SSRC, returns NULL if the SSRC was not found
@@ -193,7 +194,7 @@ add_ssrc_and_ref (GstEvent * event, guint32 ssrc)
   return event;
 }
 
-struct ForwardEventData
+struct ForwardStickyEventData
 {
   GstPad *pad;
   guint32 ssrc;
@@ -202,7 +203,7 @@ struct ForwardEventData
 static gboolean
 forward_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data)
 {
-  struct ForwardEventData *data = user_data;
+  struct ForwardStickyEventData *data = user_data;
   GstEvent *newevent;
 
   newevent = add_ssrc_and_ref (*event, data->ssrc);
@@ -212,6 +213,25 @@ forward_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data)
   return TRUE;
 }
 
+static void
+forward_initial_events (GstRtpSsrcDemux * demux, guint32 ssrc, GstPad * pad,
+    PadType padtype)
+{
+  struct ForwardStickyEventData fdata;
+  GstPad *sinkpad;
+
+  if (padtype == RTP_PAD)
+    sinkpad = demux->rtp_sink;
+  else if (padtype == RTCP_PAD)
+    sinkpad = demux->rtcp_sink;
+  else
+    g_assert_not_reached ();
+
+  fdata.ssrc = ssrc;
+  fdata.pad = pad;
+
+  gst_pad_sticky_events_foreach (sinkpad, forward_sticky_events, &fdata);
+}
 
 static GstPad *
 find_or_create_demux_pad_for_ssrc (GstRtpSsrcDemux * demux, guint32 ssrc,
@@ -222,32 +242,44 @@ find_or_create_demux_pad_for_ssrc (GstRtpSsrcDemux * demux, guint32 ssrc,
   GstPadTemplate *templ;
   gchar *padname;
   GstRtpSsrcDemuxPad *demuxpad;
-  GstCaps *caps;
-  struct ForwardEventData fdata;
   GstPad *retpad;
   gulong rtp_block, rtcp_block;
 
-  GST_DEBUG_OBJECT (demux, "creating pad for SSRC %08x", ssrc);
-
   GST_PAD_LOCK (demux);
 
   demuxpad = find_demux_pad_for_ssrc (demux, ssrc);
   if (demuxpad != NULL) {
+    gboolean forward = FALSE;
+
     switch (padtype) {
       case RTP_PAD:
         retpad = gst_object_ref (demuxpad->rtp_pad);
+        if (!demuxpad->pushed_initial_rtp_events) {
+          forward = TRUE;
+          demuxpad->pushed_initial_rtp_events = TRUE;
+        }
         break;
       case RTCP_PAD:
         retpad = gst_object_ref (demuxpad->rtcp_pad);
+        if (!demuxpad->pushed_initial_rtcp_events) {
+          forward = TRUE;
+          demuxpad->pushed_initial_rtcp_events = TRUE;
+        }
         break;
       default:
         retpad = NULL;
         g_assert_not_reached ();
     }
+
     GST_PAD_UNLOCK (demux);
+
+    if (forward)
+      forward_initial_events (demux, ssrc, retpad, padtype);
     return retpad;
   }
 
+  GST_DEBUG_OBJECT (demux, "creating new pad for SSRC %08x", ssrc);
+
   klass = GST_ELEMENT_GET_CLASS (demux);
   templ = gst_element_class_get_pad_template (klass, "src_%u");
   padname = g_strdup_printf ("src_%u", ssrc);
@@ -265,8 +297,6 @@ find_or_create_demux_pad_for_ssrc (GstRtpSsrcDemux * demux, guint32 ssrc,
   demuxpad->rtp_pad = rtp_pad;
   demuxpad->rtcp_pad = rtcp_pad;
 
-  fdata.ssrc = ssrc;
-
   gst_pad_set_element_private (rtp_pad, demuxpad);
   gst_pad_set_element_private (rtcp_pad, demuxpad);
 
@@ -278,28 +308,23 @@ find_or_create_demux_pad_for_ssrc (GstRtpSsrcDemux * demux, guint32 ssrc,
   gst_pad_set_event_function (rtp_pad, gst_rtp_ssrc_demux_src_event);
   gst_pad_use_fixed_caps (rtp_pad);
   gst_pad_set_active (rtp_pad, TRUE);
-  fdata.pad = rtp_pad;
-  gst_pad_sticky_events_foreach (demux->rtp_sink, forward_sticky_events,
-      &fdata);
 
   gst_pad_set_event_function (rtcp_pad, gst_rtp_ssrc_demux_src_event);
   gst_pad_set_iterate_internal_links_function (rtcp_pad,
       gst_rtp_ssrc_demux_iterate_internal_links_src);
   gst_pad_use_fixed_caps (rtcp_pad);
   gst_pad_set_active (rtcp_pad, TRUE);
-  fdata.pad = rtcp_pad;
-  gst_pad_sticky_events_foreach (demux->rtcp_sink, forward_sticky_events,
-      &fdata);
-
-  /* copy caps from input */
-  if ((caps = gst_pad_get_current_caps (demux->rtp_sink))) {
-    gst_pad_set_caps (rtp_pad, caps);
-    gst_caps_unref (caps);
-  }
-  if ((caps = gst_pad_get_current_caps (demux->rtcp_sink))) {
-    gst_pad_set_caps (rtcp_pad, caps);
-    gst_caps_unref (caps);
+
+  if (padtype == RTP_PAD) {
+    demuxpad->pushed_initial_rtp_events = TRUE;
+    forward_initial_events (demux, ssrc, rtp_pad, padtype);
+  } else if (padtype == RTCP_PAD) {
+    demuxpad->pushed_initial_rtcp_events = TRUE;
+    forward_initial_events (demux, ssrc, rtcp_pad, padtype);
+  } else {
+    g_assert_not_reached ();
   }
+
   gst_element_add_pad (GST_ELEMENT_CAST (demux), rtp_pad);
   gst_element_add_pad (GST_ELEMENT_CAST (demux), rtcp_pad);
 
@@ -435,15 +460,12 @@ gst_rtp_ssrc_demux_init (GstRtpSsrcDemux * demux)
       gst_pad_new_from_template (gst_element_class_get_pad_template (klass,
           "rtcp_sink"), "rtcp_sink");
   gst_pad_set_chain_function (demux->rtcp_sink, gst_rtp_ssrc_demux_rtcp_chain);
-  gst_pad_set_event_function (demux->rtcp_sink,
-      gst_rtp_ssrc_demux_rtcp_sink_event);
+  gst_pad_set_event_function (demux->rtcp_sink, gst_rtp_ssrc_demux_sink_event);
   gst_pad_set_iterate_internal_links_function (demux->rtcp_sink,
       gst_rtp_ssrc_demux_iterate_internal_links_sink);
   gst_element_add_pad (GST_ELEMENT_CAST (demux), demux->rtcp_sink);
 
   g_rec_mutex_init (&demux->padlock);
-
-  gst_segment_init (&demux->segment, GST_FORMAT_UNDEFINED);
 }
 
 static void
@@ -527,95 +549,62 @@ unknown_pad:
   }
 }
 
-static gboolean
-gst_rtp_ssrc_demux_sink_event (GstPad * pad, GstObject * parent,
-    GstEvent * event)
+struct ForwardEventData
 {
   GstRtpSsrcDemux *demux;
-  gboolean res = FALSE;
-
-  demux = GST_RTP_SSRC_DEMUX (parent);
-
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_FLUSH_STOP:
-      gst_segment_init (&demux->segment, GST_FORMAT_UNDEFINED);
-      /* fallthrough */
-    default:
-    {
-      GSList *walk;
-      GSList *pads = NULL;
-
-      res = TRUE;
-      /* need local snapshot of pads;
-       * should not push downstream while holding lock as that might deadlock
-       * with stuff traveling upstream tyring to get this lock while holding
-       * other (stream)lock */
-      GST_PAD_LOCK (demux);
-      for (walk = demux->srcpads; walk; walk = g_slist_next (walk)) {
-        GstRtpSsrcDemuxPad *pad = (GstRtpSsrcDemuxPad *) walk->data;
-
-        pad = g_slice_dup (GstRtpSsrcDemuxPad, pad);
-        gst_object_ref (pad->rtp_pad);
-
-        pads = g_slist_prepend (pads, pad);
-      }
-      GST_PAD_UNLOCK (demux);
+  GstEvent *event;
+  gboolean res;
+  GstPad *pad;
+};
 
-      for (walk = pads; walk; walk = g_slist_next (walk)) {
-        GstRtpSsrcDemuxPad *dpad = walk->data;
-        GstEvent *newevent;
+static gboolean
+forward_event (GstPad * pad, gpointer user_data)
+{
+  struct ForwardEventData *fdata = user_data;
+  GSList *walk = NULL;
+  GstEvent *newevent = NULL;
 
-        newevent = add_ssrc_and_ref (event, dpad->ssrc);
+  GST_PAD_LOCK (fdata->demux);
+  for (walk = fdata->demux->srcpads; walk; walk = walk->next) {
+    GstRtpSsrcDemuxPad *dpad = (GstRtpSsrcDemuxPad *) walk->data;
 
-        res &= gst_pad_push_event (dpad->rtp_pad, newevent);
-        gst_object_unref (dpad->rtp_pad);
-        g_slice_free (GstRtpSsrcDemuxPad, dpad);
-      }
-      g_slist_free (pads);
-      gst_event_unref (event);
+    /* Only forward the event if the initial events have been through first,
+     * the initial events should be forwarded before any other event
+     * or buffer is pushed */
+    if ((pad == dpad->rtp_pad && dpad->pushed_initial_rtp_events) ||
+        (pad == dpad->rtcp_pad && dpad->pushed_initial_rtcp_events)) {
+      newevent = add_ssrc_and_ref (fdata->event, dpad->ssrc);
       break;
     }
   }
+  GST_PAD_UNLOCK (fdata->demux);
 
-  return res;
+  if (newevent)
+    fdata->res &= gst_pad_push_event (pad, newevent);
+
+  return TRUE;
 }
 
+
 static gboolean
-gst_rtp_ssrc_demux_rtcp_sink_event (GstPad * pad, GstObject * parent,
+gst_rtp_ssrc_demux_sink_event (GstPad * pad, GstObject * parent,
     GstEvent * event)
 {
   GstRtpSsrcDemux *demux;
-  gboolean res = TRUE;
-  GSList *walk;
-  GSList *pads = NULL;
+  struct ForwardEventData fdata;
 
   demux = GST_RTP_SSRC_DEMUX (parent);
 
-  GST_PAD_LOCK (demux);
-  for (walk = demux->srcpads; walk; walk = g_slist_next (walk)) {
-    GstRtpSsrcDemuxPad *pad = (GstRtpSsrcDemuxPad *) walk->data;
-
-    pad = g_slice_dup (GstRtpSsrcDemuxPad, pad);
-    gst_object_ref (pad->rtcp_pad);
-
-    pads = g_slist_prepend (pads, pad);
-  }
-  GST_PAD_UNLOCK (demux);
+  fdata.demux = demux;
+  fdata.pad = pad;
+  fdata.event = event;
+  fdata.res = TRUE;
 
-  for (walk = pads; walk; walk = g_slist_next (walk)) {
-    GstRtpSsrcDemuxPad *dpad = walk->data;
-    GstEvent *newevent;
+  gst_pad_forward (pad, forward_event, &fdata);
 
-    newevent = add_ssrc_and_ref (event, dpad->ssrc);
-
-    res &= gst_pad_push_event (dpad->rtcp_pad, newevent);
-    gst_object_unref (dpad->rtcp_pad);
-    g_slice_free (GstRtpSsrcDemuxPad, dpad);
-  }
-  g_slist_free (pads);
   gst_event_unref (event);
 
-  return res;
+  return fdata.res;
 }
 
 static GstFlowReturn
@@ -626,6 +615,7 @@ gst_rtp_ssrc_demux_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
   guint32 ssrc;
   GstRTPBuffer rtp = { NULL };
   GstPad *srcpad;
+  GstRtpSsrcDemuxPad *dpad;
 
   demux = GST_RTP_SSRC_DEMUX (parent);
 
@@ -644,6 +634,17 @@ gst_rtp_ssrc_demux_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
   /* push to srcpad */
   ret = gst_pad_push (srcpad, buf);
 
+  if (ret != GST_FLOW_OK) {
+    /* check if the ssrc still there, may have been removed */
+    GST_PAD_LOCK (demux);
+    dpad = find_demux_pad_for_ssrc (demux, ssrc);
+    if (dpad == NULL || dpad->rtp_pad != srcpad) {
+      /* SSRC was removed during the push ... ignore the error */
+      ret = GST_FLOW_OK;
+    }
+    GST_PAD_UNLOCK (demux);
+  }
+
   gst_object_unref (srcpad);
 
   return ret;
@@ -676,6 +677,7 @@ gst_rtp_ssrc_demux_rtcp_chain (GstPad * pad, GstObject * parent,
   GstRTCPPacket packet;
   GstRTCPBuffer rtcp = { NULL, };
   GstPad *srcpad;
+  GstRtpSsrcDemuxPad *dpad;
 
   demux = GST_RTP_SSRC_DEMUX (parent);
 
@@ -709,6 +711,17 @@ gst_rtp_ssrc_demux_rtcp_chain (GstPad * pad, GstObject * parent,
   /* push to srcpad */
   ret = gst_pad_push (srcpad, buf);
 
+  if (ret != GST_FLOW_OK) {
+    /* check if the ssrc still there, may have been removed */
+    GST_PAD_LOCK (demux);
+    dpad = find_demux_pad_for_ssrc (demux, ssrc);
+    if (dpad == NULL || dpad->rtcp_pad != srcpad) {
+      /* SSRC was removed during the push ... ignore the error */
+      ret = GST_FLOW_OK;
+    }
+    GST_PAD_UNLOCK (demux);
+  }
+
   gst_object_unref (srcpad);
 
   return ret;
@@ -828,10 +841,12 @@ src_pad_compare_func (gconstpointer a, gconstpointer b)
 {
   GstPad *pad = GST_PAD (g_value_get_object (a));
   const gchar *prefix = g_value_get_string (b);
-  gint res = 1;
+  gint res;
 
+  /* 0 means equal means we accept the pad, accepted if there is a name
+   * and it starts with the prefix */
   GST_OBJECT_LOCK (pad);
-  res = !GST_PAD_NAME (pad) || g_str_has_prefix (GST_PAD_NAME (pad), prefix);
+  res = !GST_PAD_NAME (pad) || !g_str_has_prefix (GST_PAD_NAME (pad), prefix);
   GST_OBJECT_UNLOCK (pad);
 
   return res;
diff --git a/gst/rtpmanager/gstrtpssrcdemux.h b/gst/rtpmanager/gstrtpssrcdemux.h
index 9233bc0e4..82df4449e 100644
--- a/gst/rtpmanager/gstrtpssrcdemux.h
+++ b/gst/rtpmanager/gstrtpssrcdemux.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_SSRC_DEMUX_H__
@@ -36,8 +36,6 @@ struct _GstRtpSsrcDemux
 {
   GstElement parent;
 
-  GstSegment   segment;
-
   GstPad *rtp_sink;
   GstPad *rtcp_sink;
 
diff --git a/gst/rtpmanager/rtpjitterbuffer.c b/gst/rtpmanager/rtpjitterbuffer.c
index 569930140..3a2423e94 100644
--- a/gst/rtpmanager/rtpjitterbuffer.c
+++ b/gst/rtpmanager/rtpjitterbuffer.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include <string.h>
 #include <stdlib.h>
@@ -373,6 +373,9 @@ calculate_skew (RTPJitterBuffer * jbuf, guint32 rtptime, GstClockTime time,
 
   ext_rtptime = gst_rtp_buffer_ext_timestamp (&jbuf->ext_rtptime, rtptime);
 
+  if (jbuf->last_rtptime != -1 && ext_rtptime == jbuf->last_rtptime)
+    return jbuf->prev_out_time;
+
   gstrtptime = gst_util_uint64_scale_int (ext_rtptime, GST_SECOND, clock_rate);
 
   /* keep track of the last extended rtptime */
diff --git a/gst/rtpmanager/rtpjitterbuffer.h b/gst/rtpmanager/rtpjitterbuffer.h
index 85bf9775d..6a0f3d0ce 100644
--- a/gst/rtpmanager/rtpjitterbuffer.h
+++ b/gst/rtpmanager/rtpjitterbuffer.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __RTP_JITTER_BUFFER_H__
diff --git a/gst/rtpmanager/rtpsession.c b/gst/rtpmanager/rtpsession.c
index f46362725..9f45c668a 100644
--- a/gst/rtpmanager/rtpsession.c
+++ b/gst/rtpmanager/rtpsession.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
@@ -471,7 +471,6 @@ rtp_session_init (RTPSession * sess)
         g_hash_table_new_full (NULL, NULL, NULL,
         (GDestroyNotify) g_object_unref);
   }
-  sess->cnames = g_hash_table_new_full (NULL, NULL, g_free, NULL);
 
   rtp_stats_init_defaults (&sess->stats);
 
@@ -540,7 +539,6 @@ rtp_session_finalize (GObject * object)
 
   g_free (sess->bye_reason);
 
-  g_hash_table_destroy (sess->cnames);
   g_object_unref (sess->source);
 
   G_OBJECT_CLASS (rtp_session_parent_class)->finalize (object);
@@ -1225,9 +1223,7 @@ check_collision (RTPSession * sess, RTPSource * source,
     GSocketAddress *from;
 
     /* This is not our local source, but lets check if two remote
-     * source collide
-     */
-
+     * source collide */
     if (rtp) {
       from = source->rtp_from;
     } else {
@@ -1296,25 +1292,6 @@ check_collision (RTPSession * sess, RTPSource * source,
      * Maybe should be done in upper layer, only the SDES can tell us
      * if its a collision or a loop
      */
-
-    /* If the source has been inactive for some time, we assume that it has
-     * simply changed its transport source address. Hence, there is no true
-     * third-party collision - only a simulated one. */
-    if (arrival->current_time > source->last_activity) {
-      GstClockTime inactivity_period =
-          arrival->current_time - source->last_activity;
-      if (inactivity_period > 1 * GST_SECOND) {
-        /* Use new network address */
-        if (rtp) {
-          g_assert (source->rtp_from);
-          rtp_source_set_rtp_from (source, arrival->address);
-        } else {
-          g_assert (source->rtcp_from);
-          rtp_source_set_rtcp_from (source, arrival->address);
-        }
-        return FALSE;
-      }
-    }
   } else {
     /* This is sending with our ssrc, is it an address we already know */
 
@@ -1581,33 +1558,6 @@ rtp_session_get_source_by_ssrc (RTPSession * sess, guint32 ssrc)
   return result;
 }
 
-/**
- * rtp_session_get_source_by_cname:
- * @sess: a #RTPSession
- * @cname: an CNAME
- *
- * Find the source with @cname in @sess.
- *
- * Returns: a #RTPSource with CNAME @cname or NULL if the source was not found.
- * g_object_unref() after usage.
- */
-RTPSource *
-rtp_session_get_source_by_cname (RTPSession * sess, const gchar * cname)
-{
-  RTPSource *result;
-
-  g_return_val_if_fail (RTP_IS_SESSION (sess), NULL);
-  g_return_val_if_fail (cname != NULL, NULL);
-
-  RTP_SESSION_LOCK (sess);
-  result = g_hash_table_lookup (sess->cnames, cname);
-  if (result)
-    g_object_ref (result);
-  RTP_SESSION_UNLOCK (sess);
-
-  return result;
-}
-
 /* should be called with the SESSION lock */
 static guint32
 rtp_session_create_new_ssrc (RTPSession * sess)
@@ -2544,7 +2494,8 @@ calculate_rtcp_interval (RTPSession * sess, gboolean deterministic,
       /* If it is <= 0, then try to estimate the actual bandwidth */
       bandwidth = sess->source->bitrate;
 
-      g_hash_table_foreach (sess->cnames, (GHFunc) add_bitrates, &bandwidth);
+      g_hash_table_foreach (sess->ssrcs[sess->mask_idx],
+          (GHFunc) add_bitrates, &bandwidth);
       bandwidth /= 8.0;
     }
     if (bandwidth < 8000)
@@ -2673,7 +2624,8 @@ rtp_session_next_timeout (RTPSession * sess, GstClockTime current_time)
 
   result = sess->next_rtcp_check_time;
 
-  GST_DEBUG ("current time: %" GST_TIME_FORMAT ", next :%" GST_TIME_FORMAT,
+  GST_DEBUG ("current time: %" GST_TIME_FORMAT
+      ", next time: %" GST_TIME_FORMAT,
       GST_TIME_ARGS (current_time), GST_TIME_ARGS (result));
 
   if (result < current_time) {
@@ -3114,8 +3066,9 @@ rtp_session_on_timeout (RTPSession * sess, GstClockTime current_time,
 
   g_return_val_if_fail (RTP_IS_SESSION (sess), GST_FLOW_ERROR);
 
-  GST_DEBUG ("reporting at %" GST_TIME_FORMAT ", NTP time %" GST_TIME_FORMAT,
-      GST_TIME_ARGS (current_time), GST_TIME_ARGS (ntpnstime));
+  GST_DEBUG ("reporting at %" GST_TIME_FORMAT ", NTP time %" GST_TIME_FORMAT
+      ", running-time %" GST_TIME_FORMAT, GST_TIME_ARGS (current_time),
+      GST_TIME_ARGS (ntpnstime), GST_TIME_ARGS (running_time));
 
   data.sess = sess;
   data.rtcp = NULL;
diff --git a/gst/rtpmanager/rtpsession.h b/gst/rtpmanager/rtpsession.h
index 46a2349d5..16e73b6e0 100644
--- a/gst/rtpmanager/rtpsession.h
+++ b/gst/rtpmanager/rtpsession.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __RTP_SESSION_H__
@@ -172,7 +172,6 @@ typedef struct {
  * @lock: lock to protect the session
  * @source: the source of this session
  * @ssrcs: Hashtable of sources indexed by SSRC
- * @cnames: Hashtable of sources indexed by CNAME
  * @num_sources: the number of sources
  * @activecount: the number of active sources
  * @callbacks: callbacks
@@ -205,7 +204,6 @@ struct _RTPSession {
   guint32       mask_idx;
   guint32       mask;
   GHashTable   *ssrcs[32];
-  GHashTable   *cnames;
   guint         total_sources;
 
   GstClockTime  next_rtcp_check_time;
@@ -321,7 +319,6 @@ gboolean        rtp_session_add_source             (RTPSession *sess, RTPSource
 guint           rtp_session_get_num_sources        (RTPSession *sess);
 guint           rtp_session_get_num_active_sources (RTPSession *sess);
 RTPSource*      rtp_session_get_source_by_ssrc     (RTPSession *sess, guint32 ssrc);
-RTPSource*      rtp_session_get_source_by_cname    (RTPSession *sess, const gchar *cname);
 RTPSource*      rtp_session_create_source          (RTPSession *sess);
 
 /* processing packets from receivers */
diff --git a/gst/rtpmanager/rtpsource.c b/gst/rtpmanager/rtpsource.c
index d76d20951..425399284 100644
--- a/gst/rtpmanager/rtpsource.c
+++ b/gst/rtpmanager/rtpsource.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include <string.h>
 
diff --git a/gst/rtpmanager/rtpsource.h b/gst/rtpmanager/rtpsource.h
index 7414f94e5..7f1210f10 100644
--- a/gst/rtpmanager/rtpsource.h
+++ b/gst/rtpmanager/rtpsource.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __RTP_SOURCE_H__
diff --git a/gst/rtpmanager/rtpstats.c b/gst/rtpmanager/rtpstats.c
index 734f4c046..a73e1c6b5 100644
--- a/gst/rtpmanager/rtpstats.c
+++ b/gst/rtpmanager/rtpstats.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "rtpstats.h"
diff --git a/gst/rtpmanager/rtpstats.h b/gst/rtpmanager/rtpstats.h
index 147ab1ec7..77cbc7173 100644
--- a/gst/rtpmanager/rtpstats.h
+++ b/gst/rtpmanager/rtpstats.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __RTP_STATS_H__
diff --git a/gst/rtsp/Makefile.am b/gst/rtsp/Makefile.am
index 9cc3cdf0f..1f0213b37 100644
--- a/gst/rtsp/Makefile.am
+++ b/gst/rtsp/Makefile.am
@@ -4,9 +4,9 @@ libgstrtsp_la_SOURCES = gstrtsp.c gstrtspsrc.c \
 			gstrtpdec.c gstrtspext.c
 
 libgstrtsp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
-libgstrtsp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) \
+libgstrtsp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) $(GST_BASE_LIBS) \
 		       -lgstrtp-@GST_API_VERSION@ -lgstrtsp-@GST_API_VERSION@ \
-		       -lgstsdp-@GST_API_VERSION@ $(GST_LIBS)
+		       -lgstsdp-@GST_API_VERSION@ -lgstnet-@GST_API_VERSION@ $(GST_LIBS)
 libgstrtsp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstrtsp_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
diff --git a/gst/rtsp/Makefile.in b/gst/rtsp/Makefile.in
index b14208328..b46e563d6 100644
--- a/gst/rtsp/Makefile.in
+++ b/gst/rtsp/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/rtsp
-DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 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-gcc-inline-assembly.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 \
@@ -129,7 +155,8 @@ am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgstrtsp_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
 am_libgstrtsp_la_OBJECTS = libgstrtsp_la-gstrtsp.lo \
 	libgstrtsp_la-gstrtspsrc.lo libgstrtsp_la-gstrtpdec.lo \
 	libgstrtsp_la-gstrtspext.lo
@@ -137,10 +164,23 @@ libgstrtsp_la_OBJECTS = $(am_libgstrtsp_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstrtsp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstrtsp_la_CFLAGS) $(CFLAGS) \
 	$(libgstrtsp_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -153,20 +193,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstrtsp_la_SOURCES)
 DIST_SOURCES = $(libgstrtsp_la_SOURCES)
 am__can_run_installinfo = \
@@ -175,6 +211,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -343,6 +396,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -508,9 +562,9 @@ libgstrtsp_la_SOURCES = gstrtsp.c gstrtspsrc.c \
 			gstrtpdec.c gstrtspext.c
 
 libgstrtsp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
-libgstrtsp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) \
+libgstrtsp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) $(GST_BASE_LIBS) \
 		       -lgstrtp-@GST_API_VERSION@ -lgstrtsp-@GST_API_VERSION@ \
-		       -lgstsdp-@GST_API_VERSION@ $(GST_LIBS)
+		       -lgstsdp-@GST_API_VERSION@ -lgstnet-@GST_API_VERSION@ $(GST_LIBS)
 
 libgstrtsp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstrtsp_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
@@ -553,6 +607,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -579,12 +634,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstrtsp.la: $(libgstrtsp_la_OBJECTS) $(libgstrtsp_la_DEPENDENCIES) $(EXTRA_libgstrtsp_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstrtsp_la_LINK) -rpath $(plugindir) $(libgstrtsp_la_OBJECTS) $(libgstrtsp_la_LIBADD) $(LIBS)
 
@@ -654,26 +712,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -685,15 +732,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -702,6 +745,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -846,19 +904,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/rtsp/gstrtpdec.c b/gst/rtsp/gstrtpdec.c
index a639b8c70..87bca266c 100644
--- a/gst/rtsp/gstrtpdec.c
+++ b/gst/rtsp/gstrtpdec.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/rtsp/gstrtpdec.h b/gst/rtsp/gstrtpdec.h
index 08128f482..5e83e2365 100644
--- a/gst/rtsp/gstrtpdec.h
+++ b/gst/rtsp/gstrtpdec.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/rtsp/gstrtsp.c b/gst/rtsp/gstrtsp.c
index e0f24de82..7f1265307 100644
--- a/gst/rtsp/gstrtsp.c
+++ b/gst/rtsp/gstrtsp.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/rtsp/gstrtsp.h b/gst/rtsp/gstrtsp.h
index f29c35994..e0f5ef8e0 100644
--- a/gst/rtsp/gstrtsp.h
+++ b/gst/rtsp/gstrtsp.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/rtsp/gstrtspext.c b/gst/rtsp/gstrtspext.c
index b4cc8f971..07b5a97d7 100644
--- a/gst/rtsp/gstrtspext.c
+++ b/gst/rtsp/gstrtspext.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/rtsp/gstrtspext.h b/gst/rtsp/gstrtspext.h
index f30b302ff..2e877968e 100644
--- a/gst/rtsp/gstrtspext.h
+++ b/gst/rtsp/gstrtspext.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index 98577b86a..c0c05a2c1 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
@@ -89,6 +89,7 @@
 #include <stdio.h>
 #include <stdarg.h>
 
+#include <gst/net/gstnet.h>
 #include <gst/sdp/gstsdpmessage.h>
 #include <gst/rtp/gstrtppayloads.h>
 
@@ -119,7 +120,9 @@ GST_STATIC_PAD_TEMPLATE ("internalsink_%u",
 
 enum
 {
-  /* FILL ME */
+  SIGNAL_HANDLE_REQUEST,
+  SIGNAL_ON_SDP,
+  SIGNAL_SELECT_STREAM,
   LAST_SIGNAL
 };
 
@@ -179,6 +182,10 @@ gst_rtsp_src_buffer_mode_get_type (void)
 #define DEFAULT_PORT_RANGE       NULL
 #define DEFAULT_SHORT_HEADER     FALSE
 #define DEFAULT_PROBATION        2
+#define DEFAULT_UDP_RECONNECT    TRUE
+#define DEFAULT_MULTICAST_IFACE  NULL
+#define DEFAULT_NTP_SYNC         FALSE
+#define DEFAULT_USE_PIPELINE_CLOCK      FALSE
 
 enum
 {
@@ -196,6 +203,8 @@ enum
   PROP_DO_RTCP,
   PROP_DO_RTSP_KEEP_ALIVE,
   PROP_PROXY,
+  PROP_PROXY_ID,
+  PROP_PROXY_PW,
   PROP_RTP_BLOCKSIZE,
   PROP_USER_ID,
   PROP_USER_PW,
@@ -204,6 +213,10 @@ enum
   PROP_UDP_BUFFER_SIZE,
   PROP_SHORT_HEADER,
   PROP_PROBATION,
+  PROP_UDP_RECONNECT,
+  PROP_MULTICAST_IFACE,
+  PROP_NTP_SYNC,
+  PROP_USE_PIPELINE_CLOCK,
   PROP_LAST
 };
 
@@ -232,6 +245,8 @@ static void gst_rtspsrc_set_property (GObject * object, guint prop_id,
 static void gst_rtspsrc_get_property (GObject * object, guint prop_id,
     GValue * value, GParamSpec * pspec);
 
+static GstClock *gst_rtspsrc_provide_clock (GstElement * element);
+
 static void gst_rtspsrc_uri_handler_init (gpointer g_iface,
     gpointer iface_data);
 
@@ -293,11 +308,33 @@ G_STMT_START {                                          \
   g_free (__txt);                                       \
 } G_STMT_END
 
-/*static guint gst_rtspsrc_signals[LAST_SIGNAL] = { 0 }; */
+static guint gst_rtspsrc_signals[LAST_SIGNAL] = { 0 };
+
 #define gst_rtspsrc_parent_class parent_class
 G_DEFINE_TYPE_WITH_CODE (GstRTSPSrc, gst_rtspsrc, GST_TYPE_BIN,
     G_IMPLEMENT_INTERFACE (GST_TYPE_URI_HANDLER, gst_rtspsrc_uri_handler_init));
 
+static gboolean
+default_select_stream (GstRTSPSrc * src, guint id, GstCaps * caps)
+{
+  GST_DEBUG_OBJECT (src, "default handler");
+  return TRUE;
+}
+
+static gboolean
+select_stream_accum (GSignalInvocationHint * ihint,
+    GValue * return_accu, const GValue * handler_return, gpointer data)
+{
+  gboolean myboolean;
+
+  myboolean = g_value_get_boolean (handler_return);
+  GST_DEBUG ("accum %d", myboolean);
+  g_value_set_boolean (return_accu, myboolean);
+
+  /* stop emission if FALSE */
+  return myboolean;
+}
+
 static void
 gst_rtspsrc_class_init (GstRTSPSrcClass * klass)
 {
@@ -411,6 +448,30 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass)
       g_param_spec_string ("proxy", "Proxy",
           "Proxy settings for HTTP tunneling. Format: [http://][user:passwd@]host[:port]",
           DEFAULT_PROXY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstRTSPSrc::proxy-id
+   *
+   * Sets the proxy URI user id for authentication. If the URI set via the
+   * "proxy" property contains a user-id already, that will take precedence.
+   *
+   * Since: 1.2
+   */
+  g_object_class_install_property (gobject_class, PROP_PROXY_ID,
+      g_param_spec_string ("proxy-id", "proxy-id",
+          "HTTP proxy URI user id for authentication", "",
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstRTSPSrc::proxy-pw
+   *
+   * Sets the proxy URI password for authentication. If the URI set via the
+   * "proxy" property contains a password already, that will take precedence.
+   *
+   * Since: 1.2
+   */
+  g_object_class_install_property (gobject_class, PROP_PROXY_PW,
+      g_param_spec_string ("proxy-pw", "proxy-pw",
+          "HTTP proxy URI user password for authentication", "",
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   /**
    * GstRTSPSrc::rtp_blocksize
@@ -493,7 +554,92 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass)
           0, G_MAXUINT, DEFAULT_PROBATION,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  g_object_class_install_property (gobject_class, PROP_UDP_RECONNECT,
+      g_param_spec_boolean ("udp-reconnect", "Reconnect to the server",
+          "Reconnect to the server if RTSP connection is closed when doing UDP",
+          DEFAULT_UDP_RECONNECT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_MULTICAST_IFACE,
+      g_param_spec_string ("multicast-iface", "Multicast Interface",
+          "The network interface on which to join the multicast group",
+          DEFAULT_MULTICAST_IFACE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_NTP_SYNC,
+      g_param_spec_boolean ("ntp-sync", "Sync on NTP clock",
+          "Synchronize received streams to the NTP clock", DEFAULT_NTP_SYNC,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_USE_PIPELINE_CLOCK,
+      g_param_spec_boolean ("use-pipeline-clock", "Use pipeline clock",
+          "Use the pipeline running-time to set the NTP time in the RTCP SR messages",
+          DEFAULT_USE_PIPELINE_CLOCK,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstRTSPSrc::handle-request:
+   * @rtspsrc: a #GstRTSPSrc
+   * @request: a #GstRTSPMessage
+   * @response: a #GstRTSPMessage
+   *
+   * Handle a server request in @request and prepare @response.
+   *
+   * This signal is called from the streaming thread, you should therefore not
+   * do any state changes on @rtspsrc because this might deadlock. If you want
+   * to modify the state as a result of this signal, post a
+   * #GST_MESSAGE_REQUEST_STATE message on the bus or signal the main thread
+   * in some other way.
+   *
+   * Since: 1.2
+   */
+  gst_rtspsrc_signals[SIGNAL_HANDLE_REQUEST] =
+      g_signal_new ("handle-request", G_TYPE_FROM_CLASS (klass), 0,
+      0, NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 2,
+      G_TYPE_POINTER, G_TYPE_POINTER);
+
+  /**
+   * GstRTSPSrc::on-sdp:
+   * @rtspsrc: a #GstRTSPSrc
+   * @sdp: a #GstSDPMessage
+   *
+   * Emited when the client has retrieved the SDP and before it configures the
+   * streams in the SDP. @sdp can be inspected and modified.
+   *
+   * This signal is called from the streaming thread, you should therefore not
+   * do any state changes on @rtspsrc because this might deadlock. If you want
+   * to modify the state as a result of this signal, post a
+   * #GST_MESSAGE_REQUEST_STATE message on the bus or signal the main thread
+   * in some other way.
+   *
+   * Since: 1.2
+   */
+  gst_rtspsrc_signals[SIGNAL_ON_SDP] =
+      g_signal_new ("on-sdp", G_TYPE_FROM_CLASS (klass), 0,
+      0, NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 1,
+      GST_TYPE_SDP_MESSAGE | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+  /**
+   * GstRTSPSrc::select-stream:
+   * @rtspsrc: a #GstRTSPSrc
+   * @num: the stream number
+   * @caps: the stream caps
+   *
+   * Emited before the client decides to configure the stream @num with
+   * @caps.
+   *
+   * Returns: %TRUE when the stream should be selected, %FALSE when the stream
+   * is to be ignored.
+   *
+   * Since: 1.2
+   */
+  gst_rtspsrc_signals[SIGNAL_SELECT_STREAM] =
+      g_signal_new_class_handler ("select-stream", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_FIRST | G_SIGNAL_RUN_CLEANUP,
+      (GCallback) default_select_stream, select_stream_accum, NULL,
+      g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 2, G_TYPE_UINT,
+      GST_TYPE_CAPS);
+
   gstelement_class->send_event = gst_rtspsrc_send_event;
+  gstelement_class->provide_clock = gst_rtspsrc_provide_clock;
   gstelement_class->change_state = gst_rtspsrc_change_state;
 
   gst_element_class_add_pad_template (gstelement_class,
@@ -511,7 +657,6 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass)
   gst_rtsp_ext_list_init ();
 }
 
-
 static void
 gst_rtspsrc_init (GstRTSPSrc * src)
 {
@@ -537,6 +682,10 @@ gst_rtspsrc_init (GstRTSPSrc * src)
   src->udp_buffer_size = DEFAULT_UDP_BUFFER_SIZE;
   src->short_header = DEFAULT_SHORT_HEADER;
   src->probation = DEFAULT_PROBATION;
+  src->udp_reconnect = DEFAULT_UDP_RECONNECT;
+  src->multi_iface = g_strdup (DEFAULT_MULTICAST_IFACE);
+  src->ntp_sync = DEFAULT_NTP_SYNC;
+  src->use_pipeline_clock = DEFAULT_USE_PIPELINE_CLOCK;
 
   /* get a list of all extensions */
   src->extensions = gst_rtsp_ext_list_get ();
@@ -570,11 +719,14 @@ gst_rtspsrc_finalize (GObject * object)
   g_free (rtspsrc->conninfo.url_str);
   g_free (rtspsrc->user_id);
   g_free (rtspsrc->user_pw);
+  g_free (rtspsrc->multi_iface);
 
   if (rtspsrc->sdp) {
     gst_sdp_message_free (rtspsrc->sdp);
     rtspsrc->sdp = NULL;
   }
+  if (rtspsrc->provided_clock)
+    gst_object_unref (rtspsrc->provided_clock);
 
   /* free locks */
   g_rec_mutex_clear (&rtspsrc->stream_rec_lock);
@@ -583,6 +735,18 @@ gst_rtspsrc_finalize (GObject * object)
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
+static GstClock *
+gst_rtspsrc_provide_clock (GstElement * element)
+{
+  GstRTSPSrc *src = GST_RTSPSRC (element);
+  GstClock *clock;
+
+  if ((clock = src->provided_clock) != NULL)
+    gst_object_ref (clock);
+
+  return clock;
+}
+
 /* a proxy string of the format [user:passwd@]host[:port] */
 static gboolean
 gst_rtspsrc_set_proxy (GstRTSPSrc * rtsp, const gchar * proxy)
@@ -619,6 +783,15 @@ gst_rtspsrc_set_proxy (GstRTSPSrc * rtsp, const gchar * proxy)
 
     /* move to host */
     p = at + 1;
+  } else {
+    if (rtsp->prop_proxy_id != NULL && *rtsp->prop_proxy_id != '\0')
+      rtsp->proxy_user = g_strdup (rtsp->prop_proxy_id);
+    if (rtsp->prop_proxy_pw != NULL && *rtsp->prop_proxy_pw != '\0')
+      rtsp->proxy_passwd = g_strdup (rtsp->prop_proxy_pw);
+    if (rtsp->proxy_user != NULL || rtsp->proxy_passwd != NULL) {
+      GST_LOG_OBJECT (rtsp, "set proxy user/pw from properties: %s:%s",
+          GST_STR_NULL (rtsp->proxy_user), GST_STR_NULL (rtsp->proxy_passwd));
+    }
   }
   col = strchr (p, ':');
 
@@ -695,6 +868,16 @@ gst_rtspsrc_set_property (GObject * object, guint prop_id, const GValue * value,
     case PROP_PROXY:
       gst_rtspsrc_set_proxy (rtspsrc, g_value_get_string (value));
       break;
+    case PROP_PROXY_ID:
+      if (rtspsrc->prop_proxy_id)
+        g_free (rtspsrc->prop_proxy_id);
+      rtspsrc->prop_proxy_id = g_value_dup_string (value);
+      break;
+    case PROP_PROXY_PW:
+      if (rtspsrc->prop_proxy_pw)
+        g_free (rtspsrc->prop_proxy_pw);
+      rtspsrc->prop_proxy_pw = g_value_dup_string (value);
+      break;
     case PROP_RTP_BLOCKSIZE:
       rtspsrc->rtp_blocksize = g_value_get_uint (value);
       break;
@@ -734,6 +917,23 @@ gst_rtspsrc_set_property (GObject * object, guint prop_id, const GValue * value,
     case PROP_PROBATION:
       rtspsrc->probation = g_value_get_uint (value);
       break;
+    case PROP_UDP_RECONNECT:
+      rtspsrc->udp_reconnect = g_value_get_boolean (value);
+      break;
+    case PROP_MULTICAST_IFACE:
+      g_free (rtspsrc->multi_iface);
+
+      if (g_value_get_string (value) == NULL)
+        rtspsrc->multi_iface = g_strdup (DEFAULT_MULTICAST_IFACE);
+      else
+        rtspsrc->multi_iface = g_value_dup_string (value);
+      break;
+    case PROP_NTP_SYNC:
+      rtspsrc->ntp_sync = g_value_get_boolean (value);
+      break;
+    case PROP_USE_PIPELINE_CLOCK:
+      rtspsrc->use_pipeline_clock = g_value_get_boolean (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -804,6 +1004,12 @@ gst_rtspsrc_get_property (GObject * object, guint prop_id, GValue * value,
       g_value_take_string (value, str);
       break;
     }
+    case PROP_PROXY_ID:
+      g_value_set_string (value, rtspsrc->prop_proxy_id);
+      break;
+    case PROP_PROXY_PW:
+      g_value_set_string (value, rtspsrc->prop_proxy_pw);
+      break;
     case PROP_RTP_BLOCKSIZE:
       g_value_set_uint (value, rtspsrc->rtp_blocksize);
       break;
@@ -838,6 +1044,18 @@ gst_rtspsrc_get_property (GObject * object, guint prop_id, GValue * value,
     case PROP_PROBATION:
       g_value_set_uint (value, rtspsrc->probation);
       break;
+    case PROP_UDP_RECONNECT:
+      g_value_set_boolean (value, rtspsrc->udp_reconnect);
+      break;
+    case PROP_MULTICAST_IFACE:
+      g_value_set_string (value, rtspsrc->multi_iface);
+      break;
+    case PROP_NTP_SYNC:
+      g_value_set_boolean (value, rtspsrc->ntp_sync);
+      break;
+    case PROP_USE_PIPELINE_CLOCK:
+      g_value_set_boolean (value, rtspsrc->use_pipeline_clock);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1240,6 +1458,10 @@ gst_rtspsrc_cleanup (GstRTSPSrc * src)
     gst_event_unref (src->start_segment);
     src->start_segment = NULL;
   }
+  if (src->provided_clock) {
+    gst_object_unref (src->provided_clock);
+    src->provided_clock = NULL;
+  }
 }
 
 #define PARSE_INT(p, del, res)          \
@@ -1652,6 +1874,8 @@ again:
    * server told us to really use the UDP ports. */
   stream->udpsrc[0] = gst_object_ref_sink (udpsrc0);
   stream->udpsrc[1] = gst_object_ref_sink (udpsrc1);
+  gst_element_set_locked_state (stream->udpsrc[0], TRUE);
+  gst_element_set_locked_state (stream->udpsrc[1], TRUE);
 
   /* keep track of next available port number when we have a range
    * configured */
@@ -1697,13 +1921,31 @@ cleanup:
   }
 }
 
+static void
+gst_rtspsrc_set_state (GstRTSPSrc * src, GstState state)
+{
+  GList *walk;
+
+  if (src->manager)
+    gst_element_set_state (GST_ELEMENT_CAST (src->manager), state);
+
+  for (walk = src->streams; walk; walk = g_list_next (walk)) {
+    GstRTSPStream *stream = (GstRTSPStream *) walk->data;
+    gint i;
+
+    for (i = 0; i < 2; i++) {
+      if (stream->udpsrc[i])
+        gst_element_set_state (stream->udpsrc[i], state);
+    }
+  }
+}
+
 static void
 gst_rtspsrc_flush (GstRTSPSrc * src, gboolean flush, gboolean playing)
 {
   GstEvent *event;
-  gint cmd, i;
+  gint cmd;
   GstState state;
-  GList *walk;
 
   if (flush) {
     event = gst_event_new_flush_start ();
@@ -1721,22 +1963,7 @@ gst_rtspsrc_flush (GstRTSPSrc * src, gboolean flush, gboolean playing)
   }
   gst_rtspsrc_push_event (src, event);
   gst_rtspsrc_loop_send_cmd (src, cmd, CMD_LOOP);
-
-  /* to manage jitterbuffer buffer mode */
-  if (src->manager)
-    gst_element_set_state (GST_ELEMENT_CAST (src->manager), state);
-
-  /* make running time start start at 0 again */
-  for (walk = src->streams; walk; walk = g_list_next (walk)) {
-    GstRTSPStream *stream = (GstRTSPStream *) walk->data;
-
-    for (i = 0; i < 2; i++) {
-      /* for udp case */
-      if (stream->udpsrc[i]) {
-        gst_element_set_state (stream->udpsrc[i], state);
-      }
-    }
-  }
+  gst_rtspsrc_set_state (src, state);
 }
 
 static GstRTSPResult
@@ -2404,9 +2631,8 @@ gst_rtspsrc_stream_configure_manager (GstRTSPSrc * src, GstRTSPStream * stream,
     /* configure the manager */
     if (src->manager == NULL) {
       GObjectClass *klass;
-      GstState target;
 
-      if (!(src->manager = gst_element_factory_make (manager, NULL))) {
+      if (!(src->manager = gst_element_factory_make (manager, "manager"))) {
         /* fallback */
         if (gst_rtsp_transport_get_manager (transport->trans, &manager, 1) < 0)
           goto no_manager;
@@ -2414,24 +2640,31 @@ gst_rtspsrc_stream_configure_manager (GstRTSPSrc * src, GstRTSPStream * stream,
         if (!manager)
           goto use_no_manager;
 
-        if (!(src->manager = gst_element_factory_make (manager, NULL)))
+        if (!(src->manager = gst_element_factory_make (manager, "manager")))
           goto manager_failed;
       }
 
       /* we manage this element */
+      gst_element_set_locked_state (src->manager, TRUE);
       gst_bin_add (GST_BIN_CAST (src), src->manager);
 
-      GST_OBJECT_LOCK (src);
-      target = GST_STATE_TARGET (src);
-      GST_OBJECT_UNLOCK (src);
-
-      ret = gst_element_set_state (src->manager, target);
+      ret = gst_element_set_state (src->manager, GST_STATE_PAUSED);
       if (ret == GST_STATE_CHANGE_FAILURE)
         goto start_manager_failure;
 
       g_object_set (src->manager, "latency", src->latency, NULL);
 
       klass = G_OBJECT_GET_CLASS (G_OBJECT (src->manager));
+
+      if (g_object_class_find_property (klass, "ntp-sync")) {
+        g_object_set (src->manager, "ntp-sync", src->ntp_sync, NULL);
+      }
+
+      if (g_object_class_find_property (klass, "use-pipeline-clock")) {
+        g_object_set (src->manager, "use-pipeline-clock",
+            src->use_pipeline_clock, NULL);
+      }
+
       if (g_object_class_find_property (klass, "drop-on-latency")) {
         g_object_set (src->manager, "drop-on-latency", src->drop_on_latency,
             NULL);
@@ -2759,12 +2992,19 @@ gst_rtspsrc_stream_configure_mcast (GstRTSPSrc * src, GstRTSPStream * stream,
       g_object_set (G_OBJECT (stream->udpsrc[0]), "buffer-size",
           src->udp_buffer_size, NULL);
 
+    if (src->multi_iface != NULL)
+      g_object_set (G_OBJECT (stream->udpsrc[0]), "multicast-iface",
+          src->multi_iface, NULL);
+
     /* change state */
+    gst_element_set_locked_state (stream->udpsrc[0], TRUE);
     gst_element_set_state (stream->udpsrc[0], GST_STATE_PAUSED);
   }
 
   /* creating another UDP source for RTCP */
   if (max != -1) {
+    GstCaps *caps;
+
     uri = g_strdup_printf ("udp://%s:%d", destination, max);
     stream->udpsrc[1] =
         gst_element_make_from_uri (GST_URI_SRC, uri, NULL, NULL);
@@ -2772,9 +3012,17 @@ gst_rtspsrc_stream_configure_mcast (GstRTSPSrc * src, GstRTSPStream * stream,
     if (stream->udpsrc[1] == NULL)
       goto no_element;
 
+    caps = gst_caps_new_empty_simple ("application/x-rtcp");
+    g_object_set (stream->udpsrc[1], "caps", caps, NULL);
+    gst_caps_unref (caps);
+
     /* take ownership */
     gst_object_ref_sink (stream->udpsrc[1]);
 
+    if (src->multi_iface != NULL)
+      g_object_set (G_OBJECT (stream->udpsrc[0]), "multicast-iface",
+          src->multi_iface, NULL);
+
     gst_element_set_state (stream->udpsrc[1], GST_STATE_PAUSED);
   }
   return TRUE;
@@ -2805,6 +3053,7 @@ gst_rtspsrc_stream_configure_udp (GstRTSPSrc * src, GstRTSPStream * stream,
   /* we manage the UDP elements now. For unicast, the UDP sources where
    * allocated in the stream when we suggested a transport. */
   if (stream->udpsrc[0]) {
+    gst_element_set_locked_state (stream->udpsrc[0], TRUE);
     gst_bin_add (GST_BIN_CAST (src), stream->udpsrc[0]);
 
     GST_DEBUG_OBJECT (src, "setting up UDP source");
@@ -2812,8 +3061,8 @@ gst_rtspsrc_stream_configure_udp (GstRTSPSrc * src, GstRTSPStream * stream,
     /* configure a timeout on the UDP port. When the timeout message is
      * posted, we assume UDP transport is not possible. We reconnect using TCP
      * if we can. */
-    g_object_set (G_OBJECT (stream->udpsrc[0]), "timeout", src->udp_timeout,
-        NULL);
+    g_object_set (G_OBJECT (stream->udpsrc[0]), "timeout",
+        src->udp_timeout * 1000, NULL);
 
     /* get output pad of the UDP source. */
     *outpad = gst_element_get_static_pad (stream->udpsrc[0], "src");
@@ -2843,8 +3092,15 @@ gst_rtspsrc_stream_configure_udp (GstRTSPSrc * src, GstRTSPStream * stream,
 
   /* RTCP port */
   if (stream->udpsrc[1]) {
+    GstCaps *caps;
+
+    gst_element_set_locked_state (stream->udpsrc[1], TRUE);
     gst_bin_add (GST_BIN_CAST (src), stream->udpsrc[1]);
 
+    caps = gst_caps_new_empty_simple ("application/x-rtcp");
+    g_object_set (stream->udpsrc[1], "caps", caps, NULL);
+    gst_caps_unref (caps);
+
     if (stream->channelpad[1]) {
       GstPad *pad;
 
@@ -3439,15 +3695,18 @@ gst_rtspsrc_connection_flush (GstRTSPSrc * src, gboolean flush)
 
   GST_DEBUG_OBJECT (src, "set flushing %d", flush);
   GST_RTSP_STATE_LOCK (src);
-  if (src->conninfo.connection) {
+  if (src->conninfo.connection && src->conninfo.flushing != flush) {
     GST_DEBUG_OBJECT (src, "connection flush");
     gst_rtsp_connection_flush (src->conninfo.connection, flush);
+    src->conninfo.flushing = flush;
   }
   for (walk = src->streams; walk; walk = g_list_next (walk)) {
     GstRTSPStream *stream = (GstRTSPStream *) walk->data;
-    GST_DEBUG_OBJECT (src, "stream %p flush", stream);
-    if (stream->conninfo.connection)
+    if (stream->conninfo.connection && stream->conninfo.flushing != flush) {
+      GST_DEBUG_OBJECT (src, "stream %p flush", stream);
       gst_rtsp_connection_flush (stream->conninfo.connection, flush);
+      stream->conninfo.flushing = flush;
+    }
   }
   GST_RTSP_STATE_UNLOCK (src);
 }
@@ -3469,13 +3728,16 @@ gst_rtspsrc_handle_request (GstRTSPSrc * src, GstRTSPConnection * conn,
 
   if (res == GST_RTSP_ENOTIMPL) {
     /* default implementation, send OK */
+    GST_DEBUG_OBJECT (src, "prepare OK reply");
     res =
         gst_rtsp_message_init_response (&response, GST_RTSP_STS_OK, "OK",
         request);
     if (res < 0)
       goto send_error;
 
-    GST_DEBUG_OBJECT (src, "replying with OK");
+    /* let app parse and reply */
+    g_signal_emit (src, gst_rtspsrc_signals[SIGNAL_HANDLE_REQUEST],
+        0, request, response);
 
     if (src->debug)
       gst_rtsp_message_dump (&response);
@@ -3566,98 +3828,19 @@ send_error:
 }
 
 static GstFlowReturn
-gst_rtspsrc_loop_interleaved (GstRTSPSrc * src)
+gst_rtspsrc_handle_data (GstRTSPSrc * src, GstRTSPMessage * message)
 {
-  GstRTSPMessage message = { 0 };
-  GstRTSPResult res;
+  GstFlowReturn ret = GST_FLOW_OK;
   gint channel;
   GstRTSPStream *stream;
   GstPad *outpad = NULL;
   guint8 *data;
   guint size;
-  GstFlowReturn ret = GST_FLOW_OK;
   GstBuffer *buf;
-  gboolean is_rtcp, have_data;
+  gboolean is_rtcp;
   GstEvent *event;
 
-  /* here we are only interested in data messages */
-  have_data = FALSE;
-  do {
-    GTimeVal tv_timeout;
-
-    /* get the next timeout interval */
-    gst_rtsp_connection_next_timeout (src->conninfo.connection, &tv_timeout);
-
-    /* see if the timeout period expired */
-    if ((tv_timeout.tv_sec | tv_timeout.tv_usec) == 0) {
-      GST_DEBUG_OBJECT (src, "timout, sending keep-alive");
-      /* send keep-alive, only act on interrupt, a warning will be posted for
-       * other errors. */
-      if ((res = gst_rtspsrc_send_keep_alive (src)) == GST_RTSP_EINTR)
-        goto interrupt;
-      /* get new timeout */
-      gst_rtsp_connection_next_timeout (src->conninfo.connection, &tv_timeout);
-    }
-
-    GST_DEBUG_OBJECT (src, "doing receive with timeout %ld seconds, %ld usec",
-        tv_timeout.tv_sec, tv_timeout.tv_usec);
-
-    /* protect the connection with the connection lock so that we can see when
-     * we are finished doing server communication */
-    res =
-        gst_rtspsrc_connection_receive (src, src->conninfo.connection,
-        &message, src->ptcp_timeout);
-
-    switch (res) {
-      case GST_RTSP_OK:
-        GST_DEBUG_OBJECT (src, "we received a server message");
-        break;
-      case GST_RTSP_EINTR:
-        /* we got interrupted this means we need to stop */
-        goto interrupt;
-      case GST_RTSP_ETIMEOUT:
-        /* no reply, send keep alive */
-        GST_DEBUG_OBJECT (src, "timeout, sending keep-alive");
-        if ((res = gst_rtspsrc_send_keep_alive (src)) == GST_RTSP_EINTR)
-          goto interrupt;
-        continue;
-      case GST_RTSP_EEOF:
-        /* go EOS when the server closed the connection */
-        goto server_eof;
-      default:
-        goto receive_error;
-    }
-
-    switch (message.type) {
-      case GST_RTSP_MESSAGE_REQUEST:
-        /* server sends us a request message, handle it */
-        res =
-            gst_rtspsrc_handle_request (src, src->conninfo.connection,
-            &message);
-        if (res == GST_RTSP_EEOF)
-          goto server_eof;
-        else if (res < 0)
-          goto handle_request_failed;
-        break;
-      case GST_RTSP_MESSAGE_RESPONSE:
-        /* we ignore response messages */
-        GST_DEBUG_OBJECT (src, "ignoring response message");
-        if (src->debug)
-          gst_rtsp_message_dump (&message);
-        break;
-      case GST_RTSP_MESSAGE_DATA:
-        GST_DEBUG_OBJECT (src, "got data message");
-        have_data = TRUE;
-        break;
-      default:
-        GST_WARNING_OBJECT (src, "ignoring unknown message type %d",
-            message.type);
-        break;
-    }
-  }
-  while (!have_data);
-
-  channel = message.type_data.data.channel;
+  channel = message->type_data.data.channel;
 
   stream = find_stream (src, &channel, (gpointer) find_stream_by_channel);
   if (!stream)
@@ -3674,7 +3857,7 @@ gst_rtspsrc_loop_interleaved (GstRTSPSrc * src)
   }
 
   /* take a look at the body to figure out what we have */
-  gst_rtsp_message_get_body (&message, &data, &size);
+  gst_rtsp_message_get_body (message, &data, &size);
   if (size < 2)
     goto invalid_length;
 
@@ -3690,7 +3873,7 @@ gst_rtspsrc_loop_interleaved (GstRTSPSrc * src)
     goto unknown_stream;
 
   /* take the message body for further processing */
-  gst_rtsp_message_steal_body (&message, &data, &size);
+  gst_rtsp_message_steal_body (message, &data, &size);
 
   /* strip the trailing \0 */
   size -= 1;
@@ -3700,12 +3883,28 @@ gst_rtspsrc_loop_interleaved (GstRTSPSrc * src)
       gst_memory_new_wrapped (0, data, size, 0, size, data, g_free));
 
   /* don't need message anymore */
-  gst_rtsp_message_unset (&message);
+  gst_rtsp_message_unset (message);
 
   GST_DEBUG_OBJECT (src, "pushing data of size %d on channel %d", size,
       channel);
 
   if (src->need_activate) {
+    gchar *stream_id;
+    GstEvent *event;
+    GChecksum *cs;
+    gchar *uri;
+
+    /* generate an SHA256 sum of the URI */
+    cs = g_checksum_new (G_CHECKSUM_SHA256);
+    uri = src->conninfo.location;
+    g_checksum_update (cs, (const guchar *) uri, strlen (uri));
+    stream_id =
+        g_strdup_printf ("%s/%d", g_checksum_get_string (cs), stream->id);
+    g_checksum_free (cs);
+    event = gst_event_new_stream_start (stream_id);
+    g_free (stream_id);
+    gst_rtspsrc_push_event (src, event);
+
     gst_rtspsrc_activate_streams (src);
     src->need_activate = FALSE;
   }
@@ -3766,9 +3965,102 @@ gst_rtspsrc_loop_interleaved (GstRTSPSrc * src)
 unknown_stream:
   {
     GST_DEBUG_OBJECT (src, "unknown stream on channel %d, ignored", channel);
-    gst_rtsp_message_unset (&message);
+    gst_rtsp_message_unset (message);
     return GST_FLOW_OK;
   }
+invalid_length:
+  {
+    GST_ELEMENT_WARNING (src, RESOURCE, READ, (NULL),
+        ("Short message received, ignoring."));
+    gst_rtsp_message_unset (message);
+    return GST_FLOW_OK;
+  }
+}
+
+static GstFlowReturn
+gst_rtspsrc_loop_interleaved (GstRTSPSrc * src)
+{
+  GstRTSPMessage message = { 0 };
+  GstRTSPResult res;
+  GstFlowReturn ret = GST_FLOW_OK;
+  GTimeVal tv_timeout;
+
+  while (TRUE) {
+    /* get the next timeout interval */
+    gst_rtsp_connection_next_timeout (src->conninfo.connection, &tv_timeout);
+
+    /* see if the timeout period expired */
+    if ((tv_timeout.tv_sec | tv_timeout.tv_usec) == 0) {
+      GST_DEBUG_OBJECT (src, "timout, sending keep-alive");
+      /* send keep-alive, only act on interrupt, a warning will be posted for
+       * other errors. */
+      if ((res = gst_rtspsrc_send_keep_alive (src)) == GST_RTSP_EINTR)
+        goto interrupt;
+      /* get new timeout */
+      gst_rtsp_connection_next_timeout (src->conninfo.connection, &tv_timeout);
+    }
+
+    GST_DEBUG_OBJECT (src, "doing receive with timeout %ld seconds, %ld usec",
+        tv_timeout.tv_sec, tv_timeout.tv_usec);
+
+    /* protect the connection with the connection lock so that we can see when
+     * we are finished doing server communication */
+    res =
+        gst_rtspsrc_connection_receive (src, src->conninfo.connection,
+        &message, src->ptcp_timeout);
+
+    switch (res) {
+      case GST_RTSP_OK:
+        GST_DEBUG_OBJECT (src, "we received a server message");
+        break;
+      case GST_RTSP_EINTR:
+        /* we got interrupted this means we need to stop */
+        goto interrupt;
+      case GST_RTSP_ETIMEOUT:
+        /* no reply, send keep alive */
+        GST_DEBUG_OBJECT (src, "timeout, sending keep-alive");
+        if ((res = gst_rtspsrc_send_keep_alive (src)) == GST_RTSP_EINTR)
+          goto interrupt;
+        continue;
+      case GST_RTSP_EEOF:
+        /* go EOS when the server closed the connection */
+        goto server_eof;
+      default:
+        goto receive_error;
+    }
+
+    switch (message.type) {
+      case GST_RTSP_MESSAGE_REQUEST:
+        /* server sends us a request message, handle it */
+        res =
+            gst_rtspsrc_handle_request (src, src->conninfo.connection,
+            &message);
+        if (res == GST_RTSP_EEOF)
+          goto server_eof;
+        else if (res < 0)
+          goto handle_request_failed;
+        break;
+      case GST_RTSP_MESSAGE_RESPONSE:
+        /* we ignore response messages */
+        GST_DEBUG_OBJECT (src, "ignoring response message");
+        if (src->debug)
+          gst_rtsp_message_dump (&message);
+        break;
+      case GST_RTSP_MESSAGE_DATA:
+        GST_DEBUG_OBJECT (src, "got data message");
+        ret = gst_rtspsrc_handle_data (src, &message);
+        if (ret != GST_FLOW_OK)
+          goto handle_data_failed;
+        break;
+      default:
+        GST_WARNING_OBJECT (src, "ignoring unknown message type %d",
+            message.type);
+        break;
+    }
+  }
+  g_assert_not_reached ();
+
+  /* ERRORS */
 server_eof:
   {
     GST_DEBUG_OBJECT (src, "we got an eof from the server");
@@ -3781,8 +4073,7 @@ server_eof:
 interrupt:
   {
     gst_rtsp_message_unset (&message);
-    GST_DEBUG_OBJECT (src, "got interrupted: stop connection flush");
-    gst_rtspsrc_connection_flush (src, FALSE);
+    GST_DEBUG_OBJECT (src, "got interrupted");
     return GST_FLOW_FLUSHING;
   }
 receive_error:
@@ -3806,12 +4097,10 @@ handle_request_failed:
     gst_rtsp_message_unset (&message);
     return GST_FLOW_ERROR;
   }
-invalid_length:
+handle_data_failed:
   {
-    GST_ELEMENT_WARNING (src, RESOURCE, READ, (NULL),
-        ("Short message received, ignoring."));
-    gst_rtsp_message_unset (&message);
-    return GST_FLOW_OK;
+    GST_DEBUG_OBJECT (src, "could no handle data message");
+    return ret;
   }
 }
 
@@ -3857,10 +4146,13 @@ gst_rtspsrc_loop_udp (GstRTSPSrc * src)
          * see what happens. */
         GST_ELEMENT_WARNING (src, RESOURCE, READ, (NULL),
             ("The server closed the connection."));
-        if ((res =
-                gst_rtsp_conninfo_reconnect (src, &src->conninfo, FALSE)) < 0)
-          goto connect_error;
-
+        if (src->udp_reconnect) {
+          if ((res =
+                  gst_rtsp_conninfo_reconnect (src, &src->conninfo, FALSE)) < 0)
+            goto connect_error;
+        } else {
+          goto server_eof;
+        }
         continue;
       case GST_RTSP_ENET:
         GST_DEBUG_OBJECT (src, "An ethernet problem occured.");
@@ -3907,13 +4199,13 @@ gst_rtspsrc_loop_udp (GstRTSPSrc * src)
         break;
     }
   }
+  g_assert_not_reached ();
 
   /* we get here when the connection got interrupted */
 interrupt:
   {
     gst_rtsp_message_unset (&message);
-    GST_DEBUG_OBJECT (src, "got interrupted: stop connection flush");
-    gst_rtspsrc_connection_flush (src, FALSE);
+    GST_DEBUG_OBJECT (src, "got interrupted");
     return GST_FLOW_FLUSHING;
   }
 connect_error:
@@ -4560,7 +4852,8 @@ next:
       break;
     case GST_RTSP_MESSAGE_DATA:
       /* get next response */
-      GST_DEBUG_OBJECT (src, "ignoring data response message");
+      GST_DEBUG_OBJECT (src, "handle data response message");
+      gst_rtspsrc_handle_data (src, response);
       goto next;
     default:
       GST_WARNING_OBJECT (src, "ignoring unknown message type %d",
@@ -4609,8 +4902,8 @@ receive_error:
   {
     switch (res) {
       case GST_RTSP_EEOF:
-        GST_WARNING_OBJECT (src, "server closed connection, doing reconnect");
-        if (try == 0) {
+        GST_WARNING_OBJECT (src, "server closed connection");
+        if ((try == 0) && !src->interleaved && src->udp_reconnect) {
           try++;
           /* if reconnect succeeds, try again */
           if ((res =
@@ -4811,9 +5104,7 @@ gst_rtspsrc_parse_methods (GstRTSPSrc * src, GstRTSPMessage * response)
 {
   GstRTSPHeaderField field;
   gchar *respoptions;
-  gchar **options;
   gint indx = 0;
-  gint i;
 
   /* reset supported methods */
   src->methods = 0;
@@ -4831,25 +5122,7 @@ gst_rtspsrc_parse_methods (GstRTSPSrc * src, GstRTSPMessage * response)
     if (!respoptions)
       break;
 
-    /* If we get here, the server gave a list of supported methods, parse
-     * them here. The string is like:
-     *
-     * OPTIONS, DESCRIBE, ANNOUNCE, PLAY, SETUP, ...
-     */
-    options = g_strsplit (respoptions, ",", 0);
-
-    for (i = 0; options[i]; i++) {
-      gchar *stripped;
-      gint method;
-
-      stripped = g_strstrip (options[i]);
-      method = gst_rtsp_find_method (stripped);
-
-      /* keep bitfield of supported methods */
-      if (method != GST_RTSP_INVALID)
-        src->methods |= method;
-    }
-    g_strfreev (options);
+    src->methods |= gst_rtsp_options_from_text (respoptions);
 
     indx++;
   }
@@ -5128,6 +5401,7 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async)
     gchar *transports;
     gint retry = 0;
     guint mask = 0;
+    gboolean selected;
 
     stream = (GstRTSPStream *) walk->data;
 
@@ -5139,6 +5413,15 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async)
       continue;
     }
 
+    g_signal_emit (src, gst_rtspsrc_signals[SIGNAL_SELECT_STREAM], 0,
+        stream->id, stream->caps, &selected);
+    if (!selected) {
+      GST_DEBUG_OBJECT (src, "skipping stream %p, disabled by signal", stream);
+      stream->disabled = TRUE;
+      continue;
+    }
+    stream->disabled = FALSE;
+
     /* merge/overwrite global caps */
     if (stream->caps) {
       guint j, num;
@@ -5227,16 +5510,14 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async)
       goto create_request_failed;
     }
 
-    /* select transport, copy is made when adding to header so we can free it. */
-    gst_rtsp_message_add_header (&request, GST_RTSP_HDR_TRANSPORT, transports);
-    g_free (transports);
+    /* select transport */
+    gst_rtsp_message_take_header (&request, GST_RTSP_HDR_TRANSPORT, transports);
 
     /* if the user wants a non default RTP packet size we add the blocksize
      * parameter */
     if (src->rtp_blocksize > 0) {
       hval = g_strdup_printf ("%d", src->rtp_blocksize);
-      gst_rtsp_message_add_header (&request, GST_RTSP_HDR_BLOCKSIZE, hval);
-      g_free (hval);
+      gst_rtsp_message_take_header (&request, GST_RTSP_HDR_BLOCKSIZE, hval);
     }
 
     if (async)
@@ -5524,6 +5805,70 @@ gst_rtspsrc_parse_range (GstRTSPSrc * src, const gchar * range,
   return TRUE;
 }
 
+/* Parse clock profived by the server with following syntax:
+ *
+ * "GstNetTimeProvider <wrapped-clock> <server-IP:port> <clock-time>"
+ */
+static gboolean
+gst_rtspsrc_parse_gst_clock (GstRTSPSrc * src, const gchar * gstclock)
+{
+  gboolean res = FALSE;
+
+  if (g_str_has_prefix (gstclock, "GstNetTimeProvider ")) {
+    gchar **fields = NULL, **parts = NULL;
+    gchar *remote_ip, *str;
+    gint port;
+    GstClockTime base_time;
+    GstClock *netclock;
+
+    fields = g_strsplit (gstclock, " ", 0);
+
+    /* wrapped clock, not very interesting for now */
+    if (fields[1] == NULL)
+      goto cleanup;
+
+    /* remote IP address and port */
+    if ((str = fields[2]) == NULL)
+      goto cleanup;
+
+    parts = g_strsplit (str, ":", 0);
+
+    if ((remote_ip = parts[0]) == NULL)
+      goto cleanup;
+
+    if ((str = parts[1]) == NULL)
+      goto cleanup;
+
+    port = atoi (str);
+    if (port == 0)
+      goto cleanup;
+
+    /* base-time */
+    if ((str = fields[3]) == NULL)
+      goto cleanup;
+
+    base_time = g_ascii_strtoull (str, NULL, 10);
+
+    netclock =
+        gst_net_client_clock_new ((gchar *) "GstRTSPClock", remote_ip, port,
+        base_time);
+
+    if (src->provided_clock)
+      gst_object_unref (src->provided_clock);
+    src->provided_clock = netclock;
+
+    gst_element_post_message (GST_ELEMENT_CAST (src),
+        gst_message_new_clock_provide (GST_OBJECT_CAST (src),
+            src->provided_clock, TRUE));
+
+    res = TRUE;
+  cleanup:
+    g_strfreev (fields);
+    g_strfreev (parts);
+  }
+  return res;
+}
+
 /* must be called with the RTSP state lock */
 static GstRTSPResult
 gst_rtspsrc_open_from_sdp (GstRTSPSrc * src, GstSDPMessage * sdp,
@@ -5543,6 +5888,9 @@ gst_rtspsrc_open_from_sdp (GstRTSPSrc * src, GstSDPMessage * sdp,
 
   gst_rtsp_ext_list_parse_sdp (src->extensions, sdp, src->props);
 
+  /* let the app inspect and change the SDP */
+  g_signal_emit (src, gst_rtspsrc_signals[SIGNAL_ON_SDP], 0, sdp);
+
   gst_segment_init (&src->segment, GST_FORMAT_TIME);
 
   /* parse range for duration reporting. */
@@ -5559,6 +5907,22 @@ gst_rtspsrc_open_from_sdp (GstRTSPSrc * src, GstSDPMessage * sdp,
         break;
     }
   }
+  /* parse clock information. This is GStreamer specific, a server can tell the
+   * client what clock it is using and wrap that in a network clock. The
+   * advantage of that is that we can slave to it. */
+  {
+    const gchar *gstclock;
+
+    for (i = 0;; i++) {
+      gstclock = gst_sdp_message_get_attribute_val_n (sdp, "x-gst-clock", i);
+      if (gstclock == NULL)
+        break;
+
+      /* parse the clock and expose it in the provide_clock method */
+      if (gst_rtspsrc_parse_gst_clock (src, gstclock))
+        break;
+    }
+  }
   /* try to find a global control attribute. Note that a '*' means that we should
    * do aggregate control with the current url (so we don't do anything and
    * leave the current connection as is) */
@@ -5845,6 +6209,8 @@ gst_rtspsrc_close (GstRTSPSrc * src, gboolean async, gboolean only_close)
 
   GST_DEBUG_OBJECT (src, "TEARDOWN...");
 
+  gst_rtspsrc_set_state (src, GST_STATE_READY);
+
   if (src->state < GST_RTSP_STATE_READY) {
     GST_DEBUG_OBJECT (src, "not ready, doing cleanup");
     goto close;
@@ -6164,27 +6530,11 @@ gst_rtspsrc_play (GstRTSPSrc * src, GstSegment * segment, gboolean async)
    * udp sources */
   gst_rtspsrc_send_dummy_packets (src);
 
-  /* activate receive elements;
-   * only in async case, since receive elements may not have been affected
-   * by overall state change (e.g. not around yet),
-   * do not mess with state in sync case (e.g. seeking) */
-  if (async) {
-    /* state change might be happening in the application thread. A
-     * specific case is when chaging state to NULL where we will wait
-     * for this task to finish (gst_rtspsrc_stop). However this task
-     * will try to change the state to PLAYING causing a deadlock. */
-
-    /* make sure we are not in the middle of a state change. The
-     * state lock is a recursive lock so it's safe to lock twice from
-     * the same thread */
-    if (GST_STATE_TRYLOCK (src)) {
-      gst_element_set_state (GST_ELEMENT_CAST (src), GST_STATE_PLAYING);
-      GST_STATE_UNLOCK (src);
-    } else {
-      res = GST_RTSP_ERROR;
-      goto changing_state;
-    }
-  }
+  /* require new SR packets */
+  if (src->manager)
+    g_signal_emit_by_name (src->manager, "reset-sync", NULL);
+
+  gst_rtspsrc_set_state (src, GST_STATE_PLAYING);
 
   /* construct a control url */
   if (src->control)
@@ -6219,8 +6569,7 @@ gst_rtspsrc_play (GstRTSPSrc * src, GstSegment * segment, gboolean async)
     if (src->need_range) {
       hval = gen_range_header (src, segment);
 
-      gst_rtsp_message_add_header (&request, GST_RTSP_HDR_RANGE, hval);
-      g_free (hval);
+      gst_rtsp_message_take_header (&request, GST_RTSP_HDR_RANGE, hval);
 
       /* store the newsegment event so it can be sent from the streaming thread. */
       if (src->start_segment)
@@ -6347,11 +6696,6 @@ was_playing:
     GST_DEBUG_OBJECT (src, "we were already PLAYING");
     goto done;
   }
-changing_state:
-  {
-    GST_DEBUG_OBJECT (src, "failed going to PLAYING, already changing state");
-    goto done;
-  }
 create_request_failed:
   {
     gchar *str = gst_rtsp_strresult (res);
@@ -6447,6 +6791,9 @@ gst_rtspsrc_pause (GstRTSPSrc * src, gboolean async)
       break;
   }
 
+  /* change element states now */
+  gst_rtspsrc_set_state (src, GST_STATE_PAUSED);
+
 no_connection:
   src->state = GST_RTSP_STATE_READY;
 
@@ -6585,7 +6932,8 @@ gst_rtspsrc_thread (GstRTSPSrc * src)
 
   GST_OBJECT_LOCK (src);
   cmd = src->pending_cmd;
-  if (cmd == CMD_RECONNECT || cmd == CMD_PLAY || cmd == CMD_LOOP)
+  if (cmd == CMD_RECONNECT || cmd == CMD_PLAY || cmd == CMD_PAUSE
+      || cmd == CMD_LOOP)
     src->pending_cmd = CMD_LOOP;
   else
     src->pending_cmd = CMD_WAIT;
@@ -6736,22 +7084,28 @@ gst_rtspsrc_change_state (GstElement * element, GstStateChange transition)
     goto done;
 
   switch (transition) {
+    case GST_STATE_CHANGE_NULL_TO_READY:
+      ret = GST_STATE_CHANGE_SUCCESS;
+      break;
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      ret = GST_STATE_CHANGE_NO_PREROLL;
+      break;
     case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
       gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_PLAY, 0);
+      ret = GST_STATE_CHANGE_SUCCESS;
       break;
     case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
       /* send pause request and keep the idle task around */
       gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_PAUSE, CMD_LOOP);
       ret = GST_STATE_CHANGE_NO_PREROLL;
       break;
-    case GST_STATE_CHANGE_READY_TO_PAUSED:
-      ret = GST_STATE_CHANGE_NO_PREROLL;
-      break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
       gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_CLOSE, CMD_PAUSE);
+      ret = GST_STATE_CHANGE_SUCCESS;
       break;
     case GST_STATE_CHANGE_READY_TO_NULL:
       gst_rtspsrc_stop (rtspsrc);
+      ret = GST_STATE_CHANGE_SUCCESS;
       break;
     default:
       break;
@@ -6797,7 +7151,9 @@ static const gchar *const *
 gst_rtspsrc_uri_get_protocols (GType type)
 {
   static const gchar *protocols[] =
-      { "rtsp", "rtspu", "rtspt", "rtsph", "rtsp-sdp", NULL };
+      { "rtsp", "rtspu", "rtspt", "rtsph", "rtsp-sdp",
+    "rtsps", "rtspsu", "rtspst", "rtspsh", NULL
+  };
 
   return protocols;
 }
diff --git a/gst/rtsp/gstrtspsrc.h b/gst/rtsp/gstrtspsrc.h
index 1f8ee2221..751c69964 100644
--- a/gst/rtsp/gstrtspsrc.h
+++ b/gst/rtsp/gstrtspsrc.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
@@ -87,6 +87,7 @@ struct _GstRTSPConnInfo {
   gchar              *url_str;
   GstRTSPConnection  *connection;
   gboolean            connected;
+  gboolean            flushing;
 };
 
 typedef struct _GstRTSPStream GstRTSPStream;
@@ -208,8 +209,10 @@ struct _GstRTSPSrc {
   gboolean          do_rtsp_keep_alive;
   gchar            *proxy_host;
   guint             proxy_port;
-  gchar            *proxy_user;
-  gchar            *proxy_passwd;
+  gchar            *proxy_user;        /* from url or property */
+  gchar            *proxy_passwd;      /* from url or property */
+  gchar            *prop_proxy_id;     /* set via property */
+  gchar            *prop_proxy_pw;     /* set via property */
   guint             rtp_blocksize;
   gchar            *user_id;
   gchar            *user_pw;
@@ -218,6 +221,10 @@ struct _GstRTSPSrc {
   gint              udp_buffer_size;
   gboolean          short_header;
   guint             probation;
+  gboolean          udp_reconnect;
+  gchar            *multi_iface;
+  gboolean          ntp_sync;
+  gboolean          use_pipeline_clock;
 
   /* state */
   GstRTSPState       state;
@@ -229,6 +236,7 @@ struct _GstRTSPSrc {
   GstRTSPTimeRange  *range;
   gchar             *control;
   guint              next_port_num;
+  GstClock          *provided_clock;
 
   /* supported methods */
   gint               methods;
diff --git a/gst/shapewipe/Makefile.in b/gst/shapewipe/Makefile.in
index 0c030c0d3..103d3c0c3 100644
--- a/gst/shapewipe/Makefile.in
+++ b/gst/shapewipe/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/shapewipe
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -135,10 +161,23 @@ libgstshapewipe_la_OBJECTS = $(am_libgstshapewipe_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstshapewipe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstshapewipe_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstshapewipe_la_CFLAGS) $(CFLAGS) \
 	$(libgstshapewipe_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstshapewipe_la_SOURCES)
 DIST_SOURCES = $(libgstshapewipe_la_SOURCES)
 am__can_run_installinfo = \
@@ -173,6 +208,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -341,6 +393,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -542,6 +595,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -568,12 +622,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstshapewipe.la: $(libgstshapewipe_la_OBJECTS) $(libgstshapewipe_la_DEPENDENCIES) $(EXTRA_libgstshapewipe_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstshapewipe_la_LINK) -rpath $(plugindir) $(libgstshapewipe_la_OBJECTS) $(libgstshapewipe_la_LIBADD) $(LIBS)
 
@@ -619,26 +676,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -650,15 +696,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -667,6 +709,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -811,19 +868,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/shapewipe/gstshapewipe.c b/gst/shapewipe/gstshapewipe.c
index 41bc34e83..024ef6842 100644
--- a/gst/shapewipe/gstshapewipe.c
+++ b/gst/shapewipe/gstshapewipe.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -32,7 +32,7 @@
  * <refsect2>
  * <title>Example launch line</title>
  * |[
- * gst-launch-1.0 -v videotestsrc ! video/x-raw,format=(string)AYUV,width=640,height=480 ! shapewipe position=0.5 name=shape ! videomixer name=mixer ! videoconvert ! autovideosink     filesrc location=mask.png ! typefind ! decodebin2 ! videoconvert ! videoscale ! queue ! shape.mask_sink    videotestsrc pattern=snow ! video/x-raw,format=(string)AYUV,width=640,height=480 ! queue ! mixer.
+ * gst-launch-1.0 -v videotestsrc ! video/x-raw,format=AYUV,width=640,height=480 ! shapewipe position=0.5 name=shape ! videomixer name=mixer ! videoconvert ! autovideosink     filesrc location=mask.png ! typefind ! decodebin ! videoconvert ! videoscale ! queue ! shape.mask_sink    videotestsrc pattern=snow ! video/x-raw,format=AYUV,width=640,height=480 ! queue ! mixer.
  * ]| This pipeline adds the transition from mask.png with position 0.5 to an SMPTE test screen and snow.
  * </refsect2>
  */
@@ -486,6 +486,7 @@ gst_shape_wipe_mask_sink_getcaps (GstShapeWipe * self, GstPad * pad,
   if (gst_caps_is_empty (ret))
     goto done;
 
+  ret = gst_caps_make_writable (ret);
   n = gst_caps_get_size (ret);
   tmp = gst_caps_new_empty ();
   for (i = 0; i < n; i++) {
@@ -831,7 +832,6 @@ gst_shape_wipe_video_sink_chain (GstPad * pad, GstObject * parent,
   GstFlowReturn ret = GST_FLOW_OK;
   GstBuffer *mask = NULL, *outbuf = NULL;
   GstClockTime timestamp;
-  gboolean new_outbuf = FALSE;
   GstVideoFrame inframe, outframe, maskframe;
 
   if (G_UNLIKELY (GST_VIDEO_INFO_FORMAT (&self->vinfo) ==
@@ -866,20 +866,10 @@ gst_shape_wipe_video_sink_chain (GstPad * pad, GstObject * parent,
   if (!gst_shape_wipe_do_qos (self, GST_BUFFER_TIMESTAMP (buffer)))
     goto qos;
 
-  /* Try to blend inplace, if it's not possible
-   * get a new buffer from downstream. */
-  if (!gst_buffer_is_writable (buffer)) {
-    outbuf = gst_buffer_new_allocate (NULL, gst_buffer_get_size (buffer), NULL);
-    gst_buffer_copy_into (outbuf, buffer, GST_BUFFER_COPY_METADATA, 0, -1);
-    new_outbuf = TRUE;
-  } else {
-    outbuf = buffer;
-  }
-
-  gst_video_frame_map (&inframe, &self->vinfo, buffer,
-      new_outbuf ? GST_MAP_READ : GST_MAP_READWRITE);
-  gst_video_frame_map (&outframe, &self->vinfo, outbuf,
-      new_outbuf ? GST_MAP_WRITE : GST_MAP_READWRITE);
+  /* Will blend inplace if buffer is writable */
+  outbuf = gst_buffer_make_writable (buffer);
+  gst_video_frame_map (&outframe, &self->vinfo, outbuf, GST_MAP_READWRITE);
+  gst_video_frame_map (&inframe, &self->vinfo, outbuf, GST_MAP_READ);
 
   gst_video_frame_map (&maskframe, &self->minfo, mask, GST_MAP_READ);
 
@@ -910,8 +900,6 @@ gst_shape_wipe_video_sink_chain (GstPad * pad, GstObject * parent,
   gst_video_frame_unmap (&maskframe);
 
   gst_buffer_unref (mask);
-  if (new_outbuf)
-    gst_buffer_unref (buffer);
 
   ret = gst_pad_push (self->srcpad, outbuf);
   if (G_UNLIKELY (ret != GST_FLOW_OK))
@@ -941,8 +929,9 @@ qos:
   }
 push_failed:
   {
-    GST_ERROR_OBJECT (self, "Pushing buffer downstream failed: %s",
-        gst_flow_get_name (ret));
+    if (ret != GST_FLOW_FLUSHING)
+      GST_ERROR_OBJECT (self, "Pushing buffer downstream failed: %s",
+          gst_flow_get_name (ret));
     return ret;
   }
 }
diff --git a/gst/shapewipe/gstshapewipe.h b/gst/shapewipe/gstshapewipe.h
index 1df8c5e10..66731ce72 100644
--- a/gst/shapewipe/gstshapewipe.h
+++ b/gst/shapewipe/gstshapewipe.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_SHAPE_WIPE_H__
diff --git a/gst/smpte/Makefile.in b/gst/smpte/Makefile.in
index 5e5b9dfed..e6a5d6e9e 100644
--- a/gst/smpte/Makefile.in
+++ b/gst/smpte/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/smpte
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -138,10 +164,23 @@ libgstsmpte_la_OBJECTS = $(am_libgstsmpte_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstsmpte_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstsmpte_la_CFLAGS) $(CFLAGS) \
 	$(libgstsmpte_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -154,20 +193,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstsmpte_la_SOURCES)
 DIST_SOURCES = $(libgstsmpte_la_SOURCES)
 am__can_run_installinfo = \
@@ -176,6 +211,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -344,6 +396,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -547,6 +600,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -573,12 +627,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstsmpte.la: $(libgstsmpte_la_OBJECTS) $(libgstsmpte_la_DEPENDENCIES) $(EXTRA_libgstsmpte_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstsmpte_la_LINK) -rpath $(plugindir) $(libgstsmpte_la_OBJECTS) $(libgstsmpte_la_LIBADD) $(LIBS)
 
@@ -664,26 +721,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -695,15 +741,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -712,6 +754,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -856,19 +913,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/smpte/barboxwipes.c b/gst/smpte/barboxwipes.c
index b8f00f7fc..7855eaabb 100644
--- a/gst/smpte/barboxwipes.c
+++ b/gst/smpte/barboxwipes.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/smpte/gstmask.c b/gst/smpte/gstmask.c
index 940bf8285..92b591936 100644
--- a/gst/smpte/gstmask.c
+++ b/gst/smpte/gstmask.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/smpte/gstmask.h b/gst/smpte/gstmask.h
index 576475cd1..53a5082a1 100644
--- a/gst/smpte/gstmask.h
+++ b/gst/smpte/gstmask.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/smpte/gstsmpte.c b/gst/smpte/gstsmpte.c
index f82f6123b..37a383dcb 100644
--- a/gst/smpte/gstsmpte.c
+++ b/gst/smpte/gstsmpte.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/smpte/gstsmpte.h b/gst/smpte/gstsmpte.h
index a91f6a2ff..59a48305c 100644
--- a/gst/smpte/gstsmpte.h
+++ b/gst/smpte/gstsmpte.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/smpte/gstsmptealpha.c b/gst/smpte/gstsmptealpha.c
index 00d25c38b..25f5e3806 100644
--- a/gst/smpte/gstsmptealpha.c
+++ b/gst/smpte/gstsmptealpha.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/smpte/gstsmptealpha.h b/gst/smpte/gstsmptealpha.h
index e8ce957e8..f8d2b3549 100644
--- a/gst/smpte/gstsmptealpha.h
+++ b/gst/smpte/gstsmptealpha.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/smpte/paint.c b/gst/smpte/paint.c
index 7c2ba0dc8..cd97323cb 100644
--- a/gst/smpte/paint.c
+++ b/gst/smpte/paint.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/smpte/paint.h b/gst/smpte/paint.h
index 3de748148..c815e0bee 100644
--- a/gst/smpte/paint.h
+++ b/gst/smpte/paint.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_SMPTE_PAINT_H__
diff --git a/gst/smpte/plugin.c b/gst/smpte/plugin.c
index 5c00570de..43eba8a7e 100644
--- a/gst/smpte/plugin.c
+++ b/gst/smpte/plugin.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/spectrum/Makefile.in b/gst/spectrum/Makefile.in
index 5a047604d..64c15863e 100644
--- a/gst/spectrum/Makefile.in
+++ b/gst/spectrum/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/spectrum
-DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -136,10 +162,23 @@ libgstspectrum_la_OBJECTS = $(am_libgstspectrum_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstspectrum_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstspectrum_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstspectrum_la_CFLAGS) $(CFLAGS) \
 	$(libgstspectrum_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -152,20 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstspectrum_la_SOURCES)
 DIST_SOURCES = $(libgstspectrum_la_SOURCES)
 am__can_run_installinfo = \
@@ -174,6 +209,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -342,6 +394,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -548,6 +601,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -574,12 +628,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstspectrum.la: $(libgstspectrum_la_OBJECTS) $(libgstspectrum_la_DEPENDENCIES) $(EXTRA_libgstspectrum_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstspectrum_la_LINK) -rpath $(plugindir) $(libgstspectrum_la_OBJECTS) $(libgstspectrum_la_LIBADD) $(LIBS)
 
@@ -625,26 +682,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -656,15 +702,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -673,6 +715,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -817,19 +874,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/spectrum/README b/gst/spectrum/README
deleted file mode 100644
index 87555712f..000000000
--- a/gst/spectrum/README
+++ /dev/null
@@ -1,5 +0,0 @@
-This is a simple, rather lame spectrum analyzer made from the fix_fft.c
-code, as found I think in xmms-0.9.1 (the 75-wide output sounds like xmms
-to me), which is actually written by other people (see fix_fft.c for
-credits).  It worked last time I had GiST working, which was a while ago.
-Yes, GiST is not included here yet, it will be in 0.1.0.
diff --git a/gst/spectrum/gstspectrum.c b/gst/spectrum/gstspectrum.c
index f6a2caa99..75a9152b8 100644
--- a/gst/spectrum/gstspectrum.c
+++ b/gst/spectrum/gstspectrum.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-spectrum
@@ -176,13 +176,6 @@ gst_spectrum_class_init (GstSpectrumClass * klass)
 
   filter_class->setup = GST_DEBUG_FUNCPTR (gst_spectrum_setup);
 
-  /**
-   * GstSpectrum:post-messages
-   *
-   * Post messages on the bus with spectrum information.
-   *
-   * Since: 0.10.17
-   */
   g_object_class_install_property (gobject_class, PROP_POST_MESSAGES,
       g_param_spec_boolean ("post-messages", "Post Messages",
           "Whether to post a 'spectrum' element message on the bus for each "
@@ -219,13 +212,6 @@ gst_spectrum_class_init (GstSpectrumClass * klass)
           G_MININT, 0, DEFAULT_THRESHOLD,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  /**
-   * GstSpectrum:multi-channel
-   *
-   * Send separate results for each channel
-   *
-   * Since: 0.10.29
-   */
   g_object_class_install_property (gobject_class, PROP_MULTI_CHANNEL,
       g_param_spec_boolean ("multi-channel", "Multichannel results",
           "Send separate results for each channel",
diff --git a/gst/spectrum/gstspectrum.h b/gst/spectrum/gstspectrum.h
index e8f0f8952..c6e7e8a92 100644
--- a/gst/spectrum/gstspectrum.h
+++ b/gst/spectrum/gstspectrum.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/udp/Makefile.am b/gst/udp/Makefile.am
index 53e4c06ff..7c109d5bd 100644
--- a/gst/udp/Makefile.am
+++ b/gst/udp/Makefile.am
@@ -1,18 +1,5 @@
 plugin_LTLIBRARIES = libgstudp.la
 
-# variables used for enum/marshal generation
-glib_enum_headers = gstudp.h
-glib_enum_define = GST_UDP
-glib_gen_prefix = gst_udp
-glib_gen_basename = gstudp
-
-include $(top_srcdir)/common/gst-glib-gen.mak
-
-built_sources = gstudp-enumtypes.c gstudp-marshal.c
-built_headers = gstudp-enumtypes.h gstudp-marshal.h
-
-BUILT_SOURCES = $(built_sources) $(built_headers)
-
 libgstudp_la_SOURCES = gstudp.c gstudpsrc.c gstudpsink.c gstmultiudpsink.c gstdynudpsink.c gstudpnetutils.c
 
 libgstudp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_NET_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS)
@@ -20,12 +7,9 @@ libgstudp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_NET_LIBS)
 libgstudp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstudp_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
-nodist_libgstudp_la_SOURCES = \
-        $(built_sources)
-
-noinst_HEADERS = gstudpsink.h gstudpsrc.h gstudp.h gstmultiudpsink.h gstdynudpsink.h gstudpnetutils.h
+noinst_HEADERS = gstudpsink.h gstudpsrc.h gstmultiudpsink.h gstdynudpsink.h gstudpnetutils.h
 
-EXTRA_DIST = README gstudp-marshal.list
+EXTRA_DIST = README
 
 CLEANFILES = $(BUILT_SOURCES)
 
diff --git a/gst/udp/Makefile.in b/gst/udp/Makefile.in
index 59dea8e3e..ea5c35307 100644
--- a/gst/udp/Makefile.in
+++ b/gst/udp/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -15,33 +14,53 @@
 
 @SET_MAKE@
 
-# these are the variables your Makefile.am should set
-# the example is based on the colorbalance interface
-
-#glib_enum_headers=$(colorbalance_headers)
-#glib_enum_define=GST_COLOR_BALANCE
-#glib_gen_prefix=gst_color_balance
-#glib_gen_basename=colorbalance
-
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -61,16 +80,15 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/common/gst-glib-gen.mak
 subdir = gst/udp
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 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-gcc-inline-assembly.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 \
@@ -143,18 +161,27 @@ am_libgstudp_la_OBJECTS = libgstudp_la-gstudp.lo \
 	libgstudp_la-gstudpsrc.lo libgstudp_la-gstudpsink.lo \
 	libgstudp_la-gstmultiudpsink.lo libgstudp_la-gstdynudpsink.lo \
 	libgstudp_la-gstudpnetutils.lo
-am__objects_1 = libgstudp_la-gstudp-enumtypes.lo \
-	libgstudp_la-gstudp-marshal.lo
-nodist_libgstudp_la_OBJECTS = $(am__objects_1)
-libgstudp_la_OBJECTS = $(am_libgstudp_la_OBJECTS) \
-	$(nodist_libgstudp_la_OBJECTS)
+libgstudp_la_OBJECTS = $(am_libgstudp_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstudp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstudp_la_CFLAGS) $(CFLAGS) \
 	$(libgstudp_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -167,21 +194,17 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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 = $(libgstudp_la_SOURCES) $(nodist_libgstudp_la_SOURCES)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(libgstudp_la_SOURCES)
 DIST_SOURCES = $(libgstudp_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
@@ -189,6 +212,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -357,6 +397,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -518,33 +559,19 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 plugin_LTLIBRARIES = libgstudp.la
-
-# variables used for enum/marshal generation
-glib_enum_headers = gstudp.h
-glib_enum_define = GST_UDP
-glib_gen_prefix = gst_udp
-glib_gen_basename = gstudp
-enum_headers = $(foreach h,$(glib_enum_headers),\n\#include \"$(h)\")
-built_sources = gstudp-enumtypes.c gstudp-marshal.c
-built_headers = gstudp-enumtypes.h gstudp-marshal.h
-BUILT_SOURCES = $(built_sources) $(built_headers)
 libgstudp_la_SOURCES = gstudp.c gstudpsrc.c gstudpsink.c gstmultiudpsink.c gstdynudpsink.c gstudpnetutils.c
 libgstudp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_NET_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS)
 libgstudp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_NET_LIBS) $(GIO_LIBS)
 libgstudp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstudp_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
-nodist_libgstudp_la_SOURCES = \
-        $(built_sources)
-
-noinst_HEADERS = gstudpsink.h gstudpsrc.h gstudp.h gstmultiudpsink.h gstdynudpsink.h gstudpnetutils.h
-EXTRA_DIST = README gstudp-marshal.list
+noinst_HEADERS = gstudpsink.h gstudpsrc.h gstmultiudpsink.h gstdynudpsink.h gstudpnetutils.h
+EXTRA_DIST = README
 CLEANFILES = $(BUILT_SOURCES)
-all: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) all-am
+all: all-am
 
 .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  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -565,7 +592,6 @@ 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
@@ -575,6 +601,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -601,12 +628,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstudp.la: $(libgstudp_la_OBJECTS) $(libgstudp_la_DEPENDENCIES) $(EXTRA_libgstudp_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstudp_la_LINK) -rpath $(plugindir) $(libgstudp_la_OBJECTS) $(libgstudp_la_LIBADD) $(LIBS)
 
@@ -618,8 +648,6 @@ distclean-compile:
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstudp_la-gstdynudpsink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstudp_la-gstmultiudpsink.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstudp_la-gstudp-enumtypes.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstudp_la-gstudp-marshal.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstudp_la-gstudp.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstudp_la-gstudpnetutils.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstudp_la-gstudpsink.Plo@am__quote@
@@ -688,46 +716,21 @@ libgstudp_la-gstudpnetutils.lo: gstudpnetutils.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudpnetutils.lo `test -f 'gstudpnetutils.c' || echo '$(srcdir)/'`gstudpnetutils.c
 
-libgstudp_la-gstudp-enumtypes.lo: gstudp-enumtypes.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -MT libgstudp_la-gstudp-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstudp-enumtypes.Tpo -c -o libgstudp_la-gstudp-enumtypes.lo `test -f 'gstudp-enumtypes.c' || echo '$(srcdir)/'`gstudp-enumtypes.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstudp_la-gstudp-enumtypes.Tpo $(DEPDIR)/libgstudp_la-gstudp-enumtypes.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstudp-enumtypes.c' object='libgstudp_la-gstudp-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 $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudp-enumtypes.lo `test -f 'gstudp-enumtypes.c' || echo '$(srcdir)/'`gstudp-enumtypes.c
-
-libgstudp_la-gstudp-marshal.lo: gstudp-marshal.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -MT libgstudp_la-gstudp-marshal.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstudp-marshal.Tpo -c -o libgstudp_la-gstudp-marshal.lo `test -f 'gstudp-marshal.c' || echo '$(srcdir)/'`gstudp-marshal.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstudp_la-gstudp-marshal.Tpo $(DEPDIR)/libgstudp_la-gstudp-marshal.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstudp-marshal.c' object='libgstudp_la-gstudp-marshal.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 $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudp-marshal.lo `test -f 'gstudp-marshal.c' || echo '$(srcdir)/'`gstudp-marshal.c
-
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -739,15 +742,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -756,6 +755,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -791,15 +805,13 @@ distdir: $(DISTFILES)
 	  fi; \
 	done
 check-am: all-am
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-am
+check: check-am
 all-am: Makefile $(LTLIBRARIES) $(HEADERS)
 installdirs:
 	for dir in "$(DESTDIR)$(plugindir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
-install: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) install-am
+install: install-am
 install-exec: install-exec-am
 install-data: install-data-am
 uninstall: uninstall-am
@@ -830,7 +842,6 @@ distclean-generic:
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
 	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
 clean: clean-am
 
 clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \
@@ -902,58 +913,23 @@ ps-am:
 
 uninstall-am: uninstall-pluginLTLIBRARIES
 
-.MAKE: all check install install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
-
-
-# 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 && \
-	mv $(glib_gen_basename)-marshal.h.tmp $(glib_gen_basename)-marshal.h
-
-$(glib_gen_basename)-marshal.c: $(glib_gen_basename)-marshal.list
-	$(AM_V_GEN)echo "#include \"$(glib_gen_basename)-marshal.h\"" >> $(glib_gen_basename)-marshal.c.tmp && \
-	$(GLIB_GENMARSHAL) --body --prefix=$(glib_gen_prefix)_marshal $^ >> $(glib_gen_basename)-marshal.c.tmp && \
-	mv $(glib_gen_basename)-marshal.c.tmp $(glib_gen_basename)-marshal.c
-
-$(glib_gen_basename)-enumtypes.h: $(glib_enum_headers)
-	$(AM_V_GEN)$(GLIB_MKENUMS) \
-	--fhead "#ifndef __$(glib_enum_define)_ENUM_TYPES_H__\n#define __$(glib_enum_define)_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
-	--fprod "\n/* enumerations from \"@filename@\" */\n" \
-	--vhead "GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n"         \
-	--ftail "G_END_DECLS\n\n#endif /* __$(glib_enum_define)_ENUM_TYPES_H__ */" \
-	$^ > $@
-
-$(glib_gen_basename)-enumtypes.c: $(glib_enum_headers)
-	@if test "x$(glib_enum_headers)" = "x"; then echo "ERROR: glib_enum_headers is empty, please fix Makefile"; exit 1; fi
-	$(AM_V_GEN)$(GLIB_MKENUMS) \
-	--fhead "#include \"$(glib_gen_basename)-enumtypes.h\"\n$(enum_headers)" \
-	--fprod "\n/* enumerations from \"@filename@\" */" \
-	--vhead "GType\n@enum_name@_get_type (void)\n{\n  static volatile gsize g_define_type_id__volatile = 0;\n  if (g_once_init_enter (&g_define_type_id__volatile)) {\n    static const G@Type@Value values[] = {"     \
-	--vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
-	--vtail "      { 0, NULL, NULL }\n    };\n    GType g_define_type_id = g_@type@_register_static (\"@EnumName@\", values);\n    g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);\n  }\n  return g_define_type_id__volatile;\n}\n" \
-	$^ > $@
-
-# a hack rule to make sure .Plo files exist because they get include'd
-# from Makefile's
-.deps/%-marshal.Plo:
-	@touch $@
-
-.deps/%-enumtypes.Plo:
-	@touch $@
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
+
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
 	androgenizer \
diff --git a/gst/udp/gstdynudpsink.c b/gst/udp/gstdynudpsink.c
index 4690bde44..328e9020a 100644
--- a/gst/udp/gstdynudpsink.c
+++ b/gst/udp/gstdynudpsink.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
@@ -28,7 +28,6 @@
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
-#include "gstudp-marshal.h"
 #include "gstdynudpsink.h"
 
 #include <gst/net/gstnetaddressmeta.h>
@@ -55,12 +54,17 @@ enum
 
 #define UDP_DEFAULT_SOCKET		NULL
 #define UDP_DEFAULT_CLOSE_SOCKET	TRUE
+#define UDP_DEFAULT_BIND_ADDRESS	NULL
+#define UDP_DEFAULT_BIND_PORT   	0
 
 enum
 {
   PROP_0,
   PROP_SOCKET,
-  PROP_CLOSE_SOCKET
+  PROP_SOCKET_V6,
+  PROP_CLOSE_SOCKET,
+  PROP_BIND_ADDRESS,
+  PROP_BIND_PORT
 };
 
 static void gst_dynudpsink_finalize (GObject * object);
@@ -105,18 +109,30 @@ gst_dynudpsink_class_init (GstDynUDPSinkClass * klass)
       g_signal_new ("get-stats", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
       G_STRUCT_OFFSET (GstDynUDPSinkClass, get_stats),
-      NULL, NULL, gst_udp_marshal_BOXED__STRING_INT, GST_TYPE_STRUCTURE, 2,
+      NULL, NULL, g_cclosure_marshal_generic, GST_TYPE_STRUCTURE, 2,
       G_TYPE_STRING, G_TYPE_INT);
 
   g_object_class_install_property (gobject_class, PROP_SOCKET,
       g_param_spec_object ("socket", "Socket",
           "Socket to use for UDP sending. (NULL == allocate)",
           G_TYPE_SOCKET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, PROP_SOCKET_V6,
+      g_param_spec_object ("socket-v6", "Socket IPv6",
+          "Socket to use for UDPv6 sending. (NULL == allocate)",
+          G_TYPE_SOCKET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_CLOSE_SOCKET,
       g_param_spec_boolean ("close-socket", "Close socket",
           "Close socket if passed as property on state change",
           UDP_DEFAULT_CLOSE_SOCKET,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, PROP_BIND_ADDRESS,
+      g_param_spec_string ("bind-address", "Bind Address",
+          "Address to bind the socket to", UDP_DEFAULT_BIND_ADDRESS,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, PROP_BIND_PORT,
+      g_param_spec_int ("bind-port", "Bind Port",
+          "Port to bind the socket to", 0, G_MAXUINT16,
+          UDP_DEFAULT_BIND_PORT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&sink_template));
@@ -141,12 +157,15 @@ static void
 gst_dynudpsink_init (GstDynUDPSink * sink)
 {
   sink->socket = UDP_DEFAULT_SOCKET;
+  sink->socket_v6 = UDP_DEFAULT_SOCKET;
   sink->close_socket = UDP_DEFAULT_CLOSE_SOCKET;
   sink->external_socket = FALSE;
+  sink->bind_address = UDP_DEFAULT_BIND_ADDRESS;
+  sink->bind_port = UDP_DEFAULT_BIND_PORT;
 
   sink->used_socket = NULL;
+  sink->used_socket_v6 = NULL;
   sink->cancellable = g_cancellable_new ();
-  sink->family = G_SOCKET_FAMILY_IPV6;
 }
 
 static void
@@ -164,10 +183,21 @@ gst_dynudpsink_finalize (GObject * object)
     g_object_unref (sink->socket);
   sink->socket = NULL;
 
+  if (sink->socket_v6)
+    g_object_unref (sink->socket_v6);
+  sink->socket_v6 = NULL;
+
   if (sink->used_socket)
     g_object_unref (sink->used_socket);
   sink->used_socket = NULL;
 
+  if (sink->used_socket_v6)
+    g_object_unref (sink->used_socket_v6);
+  sink->used_socket_v6 = NULL;
+
+  g_free (sink->bind_address);
+  sink->bind_address = NULL;
+
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
@@ -181,11 +211,12 @@ gst_dynudpsink_render (GstBaseSink * bsink, GstBuffer * buffer)
   GSocketAddress *addr;
   GError *err = NULL;
   GSocketFamily family;
+  GSocket *socket;
 
   meta = gst_buffer_get_net_address_meta (buffer);
 
   if (meta == NULL) {
-    GST_DEBUG ("Received buffer is not a GstNetBuffer, skipping");
+    GST_DEBUG ("Received buffer without GstNetAddressMeta, skipping");
     return GST_FLOW_OK;
   }
 
@@ -195,7 +226,7 @@ gst_dynudpsink_render (GstBaseSink * bsink, GstBuffer * buffer)
   addr = meta->addr;
 
   family = g_socket_address_get_family (addr);
-  if (sink->family != family && family != G_SOCKET_FAMILY_IPV4)
+  if (family == G_SOCKET_FAMILY_IPV6 && !sink->used_socket_v6)
     goto invalid_family;
 
   gst_buffer_map (buffer, &map, GST_MAP_READ);
@@ -216,8 +247,14 @@ gst_dynudpsink_render (GstBaseSink * bsink, GstBuffer * buffer)
   }
 #endif
 
+  /* Select socket to send from for this address */
+  if (family == G_SOCKET_FAMILY_IPV6 || !sink->used_socket)
+    socket = sink->used_socket_v6;
+  else
+    socket = sink->used_socket;
+
   ret =
-      g_socket_send_to (sink->used_socket, addr, (gchar *) map.data, map.size,
+      g_socket_send_to (socket, addr, (gchar *) map.data, map.size,
       sink->cancellable, &err);
   gst_buffer_unmap (buffer, &map);
 
@@ -236,8 +273,7 @@ send_error:
   }
 invalid_family:
   {
-    GST_DEBUG ("invalid family (got %d, expected %d)",
-        g_socket_address_get_family (addr), sink->family);
+    GST_DEBUG ("invalid address family (got %d)", family);
     return GST_FLOW_ERROR;
   }
 }
@@ -267,9 +303,33 @@ gst_dynudpsink_set_property (GObject * object, guint prop_id,
       udpsink->socket = g_value_dup_object (value);
       GST_DEBUG ("setting socket to %p", udpsink->socket);
       break;
+    case PROP_SOCKET_V6:
+      if (udpsink->socket_v6 != NULL
+          && udpsink->socket_v6 != udpsink->used_socket_v6
+          && udpsink->close_socket) {
+        GError *err = NULL;
+
+        if (!g_socket_close (udpsink->socket_v6, &err)) {
+          GST_ERROR ("failed to close socket %p: %s", udpsink->socket_v6,
+              err->message);
+          g_clear_error (&err);
+        }
+      }
+      if (udpsink->socket_v6)
+        g_object_unref (udpsink->socket_v6);
+      udpsink->socket_v6 = g_value_dup_object (value);
+      GST_DEBUG ("setting socket v6 to %p", udpsink->socket_v6);
+      break;
     case PROP_CLOSE_SOCKET:
       udpsink->close_socket = g_value_get_boolean (value);
       break;
+    case PROP_BIND_ADDRESS:
+      g_free (udpsink->bind_address);
+      udpsink->bind_address = g_value_dup_string (value);
+      break;
+    case PROP_BIND_PORT:
+      udpsink->bind_port = g_value_get_int (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -288,9 +348,18 @@ gst_dynudpsink_get_property (GObject * object, guint prop_id, GValue * value,
     case PROP_SOCKET:
       g_value_set_object (value, udpsink->socket);
       break;
+    case PROP_SOCKET_V6:
+      g_value_set_object (value, udpsink->socket_v6);
+      break;
     case PROP_CLOSE_SOCKET:
       g_value_set_boolean (value, udpsink->close_socket);
       break;
+    case PROP_BIND_ADDRESS:
+      g_value_set_string (value, udpsink->bind_address);
+      break;
+    case PROP_BIND_PORT:
+      g_value_set_int (value, udpsink->bind_port);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -306,45 +375,116 @@ gst_dynudpsink_start (GstBaseSink * bsink)
 
   udpsink = GST_DYNUDPSINK (bsink);
 
-  if (udpsink->socket == NULL) {
+  udpsink->external_socket = FALSE;
+
+  if (udpsink->socket) {
+    if (g_socket_get_family (udpsink->socket) == G_SOCKET_FAMILY_IPV6) {
+      udpsink->used_socket_v6 = G_SOCKET (g_object_ref (udpsink->socket));
+      udpsink->external_socket = TRUE;
+    } else {
+      udpsink->used_socket = G_SOCKET (g_object_ref (udpsink->socket));
+      udpsink->external_socket = TRUE;
+    }
+  }
+
+  if (udpsink->socket_v6) {
+    g_return_val_if_fail (g_socket_get_family (udpsink->socket) !=
+        G_SOCKET_FAMILY_IPV6, FALSE);
+
+    if (udpsink->used_socket_v6
+        && udpsink->used_socket_v6 != udpsink->socket_v6) {
+      GST_ERROR_OBJECT (udpsink,
+          "Provided different IPv6 sockets in socket and socket-v6 properties");
+      return FALSE;
+    }
+
+    udpsink->used_socket_v6 = G_SOCKET (g_object_ref (udpsink->socket_v6));
+    udpsink->external_socket = TRUE;
+  }
+
+  if (!udpsink->used_socket && !udpsink->used_socket_v6) {
     GSocketAddress *bind_addr;
     GInetAddress *bind_iaddr;
 
-    /* create sender socket if none available, first try IPv6, then
-     * fall-back to IPv4 */
-    udpsink->family = G_SOCKET_FAMILY_IPV6;
-    if ((udpsink->used_socket =
-            g_socket_new (G_SOCKET_FAMILY_IPV6,
-                G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP, &err)) == NULL) {
-      udpsink->family = G_SOCKET_FAMILY_IPV4;
+    if (udpsink->bind_address) {
+      GSocketFamily family;
+
+      bind_iaddr = g_inet_address_new_from_string (udpsink->bind_address);
+      if (!bind_iaddr) {
+        GList *results;
+        GResolver *resolver;
+
+        resolver = g_resolver_get_default ();
+        results =
+            g_resolver_lookup_by_name (resolver, udpsink->bind_address,
+            udpsink->cancellable, &err);
+        if (!results) {
+          g_object_unref (resolver);
+          goto name_resolve;
+        }
+        bind_iaddr = G_INET_ADDRESS (g_object_ref (results->data));
+        g_resolver_free_addresses (results);
+        g_object_unref (resolver);
+      }
+
+      bind_addr = g_inet_socket_address_new (bind_iaddr, udpsink->bind_port);
+      g_object_unref (bind_iaddr);
+      family = g_socket_address_get_family (G_SOCKET_ADDRESS (bind_addr));
+
+      if ((udpsink->used_socket =
+              g_socket_new (family, G_SOCKET_TYPE_DATAGRAM,
+                  G_SOCKET_PROTOCOL_UDP, &err)) == NULL) {
+        g_object_unref (bind_addr);
+        goto no_socket;
+      }
+
+      g_socket_bind (udpsink->used_socket, bind_addr, TRUE, &err);
+      if (err != NULL)
+        goto bind_error;
+    } else {
+      /* create sender sockets if none available */
       if ((udpsink->used_socket = g_socket_new (G_SOCKET_FAMILY_IPV4,
                   G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP, &err)) == NULL)
         goto no_socket;
-    }
 
-    bind_iaddr = g_inet_address_new_any (udpsink->family);
-    bind_addr = g_inet_socket_address_new (bind_iaddr, 0);
-    g_socket_bind (udpsink->used_socket, bind_addr, TRUE, &err);
-    g_object_unref (bind_addr);
-    g_object_unref (bind_iaddr);
-    if (err != NULL)
-      goto bind_error;
-
-    udpsink->external_socket = FALSE;
-  } else {
-    udpsink->used_socket = G_SOCKET (g_object_ref (udpsink->socket));
-    udpsink->external_socket = TRUE;
-    udpsink->family = g_socket_get_family (udpsink->used_socket);
+      bind_iaddr = g_inet_address_new_any (G_SOCKET_FAMILY_IPV4);
+      bind_addr = g_inet_socket_address_new (bind_iaddr, 0);
+      g_socket_bind (udpsink->used_socket, bind_addr, TRUE, &err);
+      g_object_unref (bind_addr);
+      g_object_unref (bind_iaddr);
+      if (err != NULL)
+        goto bind_error;
+
+      if ((udpsink->used_socket_v6 = g_socket_new (G_SOCKET_FAMILY_IPV6,
+                  G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP,
+                  &err)) == NULL) {
+        GST_INFO_OBJECT (udpsink, "Failed to create IPv6 socket: %s",
+            err->message);
+        g_clear_error (&err);
+      } else {
+        bind_iaddr = g_inet_address_new_any (G_SOCKET_FAMILY_IPV6);
+        bind_addr = g_inet_socket_address_new (bind_iaddr, 0);
+        g_socket_bind (udpsink->used_socket_v6, bind_addr, TRUE, &err);
+        g_object_unref (bind_addr);
+        g_object_unref (bind_iaddr);
+        if (err != NULL)
+          goto bind_error;
+      }
+    }
   }
 
-  g_socket_set_broadcast (udpsink->used_socket, TRUE);
+  if (udpsink->used_socket)
+    g_socket_set_broadcast (udpsink->used_socket, TRUE);
+  if (udpsink->used_socket_v6)
+    g_socket_set_broadcast (udpsink->used_socket_v6, TRUE);
 
   return TRUE;
 
   /* ERRORS */
 no_socket:
   {
-    GST_ERROR_OBJECT (udpsink, "Failed to create socket: %s", err->message);
+    GST_ERROR_OBJECT (udpsink, "Failed to create IPv4 socket: %s",
+        err->message);
     g_clear_error (&err);
     return FALSE;
   }
@@ -355,6 +495,14 @@ bind_error:
     g_clear_error (&err);
     return FALSE;
   }
+name_resolve:
+  {
+    GST_ELEMENT_ERROR (udpsink, RESOURCE, FAILED, (NULL),
+        ("Failed to resolve bind address %s: %s", udpsink->bind_address,
+            err->message));
+    g_clear_error (&err);
+    return FALSE;
+  }
 }
 
 static GstStructure *
@@ -384,6 +532,20 @@ gst_dynudpsink_stop (GstBaseSink * bsink)
     udpsink->used_socket = NULL;
   }
 
+  if (udpsink->used_socket_v6) {
+    if (udpsink->close_socket || !udpsink->external_socket) {
+      GError *err = NULL;
+
+      if (!g_socket_close (udpsink->used_socket_v6, &err)) {
+        GST_ERROR_OBJECT (udpsink, "Failed to close socket: %s", err->message);
+        g_clear_error (&err);
+      }
+    }
+
+    g_object_unref (udpsink->used_socket_v6);
+    udpsink->used_socket_v6 = NULL;
+  }
+
   return TRUE;
 }
 
diff --git a/gst/udp/gstdynudpsink.h b/gst/udp/gstdynudpsink.h
index 38013288a..9b82eec8e 100644
--- a/gst/udp/gstdynudpsink.h
+++ b/gst/udp/gstdynudpsink.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_DYNUDPSINK_H__
@@ -27,7 +27,6 @@
 G_BEGIN_DECLS
 
 #include "gstudpnetutils.h"
-#include "gstudp.h"
 
 #define GST_TYPE_DYNUDPSINK             (gst_dynudpsink_get_type())
 #define GST_DYNUDPSINK(obj)             (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DYNUDPSINK,GstDynUDPSink))
@@ -45,14 +44,15 @@ struct _GstDynUDPSink {
   GstBaseSink parent;
 
   /* properties */
-  GSocket *socket;
+  GSocket *socket, *socket_v6;
   gboolean close_socket;
+  gchar *bind_address;
+  gint bind_port;
 
   /* the socket in use */
-  GSocket *used_socket;
+  GSocket *used_socket, *used_socket_v6;
   gboolean external_socket;
   GCancellable *cancellable;
-  GSocketFamily family;
 };
 
 struct _GstDynUDPSinkClass {
diff --git a/gst/udp/gstmultiudpsink.c b/gst/udp/gstmultiudpsink.c
index 92d1bac9d..cb2674ba6 100644
--- a/gst/udp/gstmultiudpsink.c
+++ b/gst/udp/gstmultiudpsink.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -36,7 +36,6 @@
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
-#include "gstudp-marshal.h"
 #include "gstmultiudpsink.h"
 
 #include <string.h>
@@ -93,6 +92,8 @@ enum
 #define DEFAULT_QOS_DSCP           -1
 #define DEFAULT_SEND_DUPLICATES    TRUE
 #define DEFAULT_BUFFER_SIZE        0
+#define DEFAULT_BIND_ADDRESS       NULL
+#define DEFAULT_BIND_PORT          0
 
 enum
 {
@@ -100,8 +101,10 @@ enum
   PROP_BYTES_TO_SERVE,
   PROP_BYTES_SERVED,
   PROP_SOCKET,
+  PROP_SOCKET_V6,
   PROP_CLOSE_SOCKET,
   PROP_USED_SOCKET,
+  PROP_USED_SOCKET_V6,
   PROP_CLIENTS,
   PROP_AUTO_MULTICAST,
   PROP_MULTICAST_IFACE,
@@ -112,6 +115,8 @@ enum
   PROP_QOS_DSCP,
   PROP_SEND_DUPLICATES,
   PROP_BUFFER_SIZE,
+  PROP_BIND_ADDRESS,
+  PROP_BIND_PORT,
   PROP_LAST
 };
 
@@ -174,7 +179,7 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass)
       g_signal_new ("add", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
       G_STRUCT_OFFSET (GstMultiUDPSinkClass, add),
-      NULL, NULL, gst_udp_marshal_VOID__STRING_INT, G_TYPE_NONE, 2,
+      NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 2,
       G_TYPE_STRING, G_TYPE_INT);
   /**
    * GstMultiUDPSink::remove:
@@ -189,7 +194,7 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass)
       g_signal_new ("remove", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
       G_STRUCT_OFFSET (GstMultiUDPSinkClass, remove),
-      NULL, NULL, gst_udp_marshal_VOID__STRING_INT, G_TYPE_NONE, 2,
+      NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 2,
       G_TYPE_STRING, G_TYPE_INT);
   /**
    * GstMultiUDPSink::clear:
@@ -201,7 +206,7 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass)
       g_signal_new ("clear", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
       G_STRUCT_OFFSET (GstMultiUDPSinkClass, clear),
-      NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+      NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 0);
   /**
    * GstMultiUDPSink::get-stats:
    * @gstmultiudpsink: the sink on which the signal is emitted
@@ -217,7 +222,7 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass)
       g_signal_new ("get-stats", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
       G_STRUCT_OFFSET (GstMultiUDPSinkClass, get_stats),
-      NULL, NULL, gst_udp_marshal_BOXED__STRING_INT, GST_TYPE_STRUCTURE, 2,
+      NULL, NULL, g_cclosure_marshal_generic, GST_TYPE_STRUCTURE, 2,
       G_TYPE_STRING, G_TYPE_INT);
   /**
    * GstMultiUDPSink::client-added:
@@ -231,7 +236,7 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass)
   gst_multiudpsink_signals[SIGNAL_CLIENT_ADDED] =
       g_signal_new ("client-added", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstMultiUDPSinkClass, client_added),
-      NULL, NULL, gst_udp_marshal_VOID__STRING_INT, G_TYPE_NONE, 2,
+      NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 2,
       G_TYPE_STRING, G_TYPE_INT);
   /**
    * GstMultiUDPSink::client-removed:
@@ -245,7 +250,7 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass)
   gst_multiudpsink_signals[SIGNAL_CLIENT_REMOVED] =
       g_signal_new ("client-removed", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstMultiUDPSinkClass,
-          client_removed), NULL, NULL, gst_udp_marshal_VOID__STRING_INT,
+          client_removed), NULL, NULL, g_cclosure_marshal_generic,
       G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_INT);
 
   g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_BYTES_TO_SERVE,
@@ -260,6 +265,10 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass)
       g_param_spec_object ("socket", "Socket Handle",
           "Socket to use for UDP sending. (NULL == allocate)",
           G_TYPE_SOCKET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, PROP_SOCKET_V6,
+      g_param_spec_object ("socket-v6", "Socket Handle IPv6",
+          "Socket to use for UDPv6 sending. (NULL == allocate)",
+          G_TYPE_SOCKET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_CLOSE_SOCKET,
       g_param_spec_boolean ("close-socket", "Close socket",
           "Close socket if passed as property on state change",
@@ -268,6 +277,10 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass)
       g_param_spec_object ("used-socket", "Used Socket Handle",
           "Socket currently in use for UDP sending. (NULL == no socket)",
           G_TYPE_SOCKET, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, PROP_USED_SOCKET_V6,
+      g_param_spec_object ("used-socket-v6", "Used Socket Handle IPv6",
+          "Socket currently in use for UDPv6 sending. (NULL == no socket)",
+          G_TYPE_SOCKET, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_CLIENTS,
       g_param_spec_string ("clients", "Clients",
           "A comma separated list of host:port pairs with destinations",
@@ -304,8 +317,8 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass)
    */
   g_object_class_install_property (gobject_class, PROP_FORCE_IPV4,
       g_param_spec_boolean ("force-ipv4", "Force IPv4",
-          "Forcing the use of an IPv4 socket", DEFAULT_FORCE_IPV4,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          "Forcing the use of an IPv4 socket (DEPRECATED, has no effect anymore)",
+          DEFAULT_FORCE_IPV4, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_QOS_DSCP,
       g_param_spec_int ("qos-dscp", "QoS diff srv code point",
@@ -331,6 +344,15 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass)
           "Size of the kernel send buffer in bytes, 0=default", 0, G_MAXINT,
           DEFAULT_BUFFER_SIZE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  g_object_class_install_property (gobject_class, PROP_BIND_ADDRESS,
+      g_param_spec_string ("bind-address", "Bind Address",
+          "Address to bind the socket to", DEFAULT_BIND_ADDRESS,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, PROP_BIND_PORT,
+      g_param_spec_int ("bind-port", "Bind Port",
+          "Port to bind the socket to", 0, G_MAXUINT16,
+          DEFAULT_BIND_PORT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&sink_template));
 
@@ -356,9 +378,13 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass)
 static void
 gst_multiudpsink_init (GstMultiUDPSink * sink)
 {
+  guint max_mem;
+
   g_mutex_init (&sink->client_lock);
   sink->socket = DEFAULT_SOCKET;
+  sink->socket_v6 = DEFAULT_SOCKET;
   sink->used_socket = DEFAULT_USED_SOCKET;
+  sink->used_socket_v6 = DEFAULT_USED_SOCKET;
   sink->close_socket = DEFAULT_CLOSE_SOCKET;
   sink->external_socket = (sink->socket != NULL);
   sink->auto_multicast = DEFAULT_AUTO_MULTICAST;
@@ -371,6 +397,14 @@ gst_multiudpsink_init (GstMultiUDPSink * sink)
   sink->multi_iface = g_strdup (DEFAULT_MULTICAST_IFACE);
 
   sink->cancellable = g_cancellable_new ();
+
+  /* allocate OutputVector and MapInfo for use in the render function, buffers can
+   * hold up to a maximum amount of memory so we can create a maximally sized
+   * array for them.  */
+  max_mem = gst_buffer_get_max_memory ();
+
+  sink->vec = g_new (GOutputVector, max_mem);
+  sink->map = g_new (GstMapInfo, max_mem);
 }
 
 static GstUDPClient *
@@ -452,10 +486,18 @@ gst_multiudpsink_finalize (GObject * object)
     g_object_unref (sink->socket);
   sink->socket = NULL;
 
+  if (sink->socket_v6)
+    g_object_unref (sink->socket_v6);
+  sink->socket_v6 = NULL;
+
   if (sink->used_socket)
     g_object_unref (sink->used_socket);
   sink->used_socket = NULL;
 
+  if (sink->used_socket_v6)
+    g_object_unref (sink->used_socket_v6);
+  sink->used_socket_v6 = NULL;
+
   if (sink->cancellable)
     g_object_unref (sink->cancellable);
   sink->cancellable = NULL;
@@ -463,6 +505,14 @@ gst_multiudpsink_finalize (GObject * object)
   g_free (sink->multi_iface);
   sink->multi_iface = NULL;
 
+  g_free (sink->vec);
+  sink->vec = NULL;
+  g_free (sink->map);
+  sink->map = NULL;
+
+  g_free (sink->bind_address);
+  sink->bind_address = NULL;
+
   g_mutex_clear (&sink->client_lock);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
@@ -487,8 +537,10 @@ gst_multiudpsink_render (GstBaseSink * bsink, GstBuffer * buffer)
   if (n_mem == 0)
     goto no_data;
 
-  vec = g_new (GOutputVector, n_mem);
-  map = g_new (GstMapInfo, n_mem);
+  /* allocated on the stack, the max number of memory blocks is limited so this
+   * should not cause stack overflows */
+  vec = sink->vec;
+  map = sink->map;
 
   size = 0;
   for (i = 0; i < n_mem; i++) {
@@ -506,12 +558,15 @@ gst_multiudpsink_render (GstBaseSink * bsink, GstBuffer * buffer)
   /* grab lock while iterating and sending to clients, this should be
    * fast as UDP never blocks */
   g_mutex_lock (&sink->client_lock);
-  GST_LOG_OBJECT (bsink, "about to send %" G_GSIZE_FORMAT " bytes", size);
+  GST_LOG_OBJECT (bsink, "about to send %" G_GSIZE_FORMAT " bytes in %u blocks",
+      size, n_mem);
 
   no_clients = 0;
   num = 0;
   for (clients = sink->clients; clients; clients = g_list_next (clients)) {
     GstUDPClient *client;
+    GSocket *socket;
+    GSocketFamily family;
     gint count;
 
     client = (GstUDPClient *) clients->data;
@@ -519,13 +574,20 @@ gst_multiudpsink_render (GstBaseSink * bsink, GstBuffer * buffer)
     GST_LOG_OBJECT (sink, "sending %" G_GSIZE_FORMAT " bytes to client %p",
         size, client);
 
+    family = g_socket_address_get_family (G_SOCKET_ADDRESS (client->addr));
+    /* Select socket to send from for this address */
+    if (family == G_SOCKET_FAMILY_IPV6 || !sink->used_socket)
+      socket = sink->used_socket_v6;
+    else
+      socket = sink->used_socket;
+
     count = sink->send_duplicates ? client->refcount : 1;
 
     while (count--) {
       gssize ret;
 
       ret =
-          g_socket_send_message (sink->used_socket, client->addr, vec, n_mem,
+          g_socket_send_message (socket, client->addr, vec, n_mem,
           NULL, 0, 0, sink->cancellable, &err);
 
       if (G_UNLIKELY (ret < 0)) {
@@ -561,9 +623,6 @@ gst_multiudpsink_render (GstBaseSink * bsink, GstBuffer * buffer)
     gst_memory_unref (map[i].memory);
   }
 
-  g_free (vec);
-  g_free (map);
-
   GST_LOG_OBJECT (sink, "sent %" G_GSIZE_FORMAT " bytes to %d (of %d) clients",
       size, num, no_clients);
 
@@ -643,13 +702,13 @@ gst_multiudpsink_get_clients_string (GstMultiUDPSink * sink)
 }
 
 static void
-gst_multiudpsink_setup_qos_dscp (GstMultiUDPSink * sink)
+gst_multiudpsink_setup_qos_dscp (GstMultiUDPSink * sink, GSocket * socket)
 {
   /* don't touch on -1 */
   if (sink->qos_dscp < 0)
     return;
 
-  if (sink->used_socket == NULL)
+  if (socket == NULL)
     return;
 
 #ifdef IP_TOS
@@ -657,7 +716,7 @@ gst_multiudpsink_setup_qos_dscp (GstMultiUDPSink * sink)
     gint tos;
     gint fd;
 
-    fd = g_socket_get_fd (sink->used_socket);
+    fd = g_socket_get_fd (socket);
 
     GST_DEBUG_OBJECT (sink, "setting TOS to %d", sink->qos_dscp);
 
@@ -701,6 +760,23 @@ gst_multiudpsink_set_property (GObject * object, guint prop_id,
       udpsink->socket = g_value_dup_object (value);
       GST_DEBUG_OBJECT (udpsink, "setting socket to %p", udpsink->socket);
       break;
+    case PROP_SOCKET_V6:
+      if (udpsink->socket_v6 != NULL
+          && udpsink->socket_v6 != udpsink->used_socket_v6
+          && udpsink->close_socket) {
+        GError *err = NULL;
+
+        if (!g_socket_close (udpsink->socket_v6, &err)) {
+          GST_ERROR ("failed to close socket %p: %s", udpsink->socket_v6,
+              err->message);
+          g_clear_error (&err);
+        }
+      }
+      if (udpsink->socket_v6)
+        g_object_unref (udpsink->socket_v6);
+      udpsink->socket_v6 = g_value_dup_object (value);
+      GST_DEBUG_OBJECT (udpsink, "setting socket to %p", udpsink->socket_v6);
+      break;
     case PROP_CLOSE_SOCKET:
       udpsink->close_socket = g_value_get_boolean (value);
       break;
@@ -732,7 +808,8 @@ gst_multiudpsink_set_property (GObject * object, guint prop_id,
       break;
     case PROP_QOS_DSCP:
       udpsink->qos_dscp = g_value_get_int (value);
-      gst_multiudpsink_setup_qos_dscp (udpsink);
+      gst_multiudpsink_setup_qos_dscp (udpsink, udpsink->used_socket);
+      gst_multiudpsink_setup_qos_dscp (udpsink, udpsink->used_socket_v6);
       break;
     case PROP_SEND_DUPLICATES:
       udpsink->send_duplicates = g_value_get_boolean (value);
@@ -740,6 +817,13 @@ gst_multiudpsink_set_property (GObject * object, guint prop_id,
     case PROP_BUFFER_SIZE:
       udpsink->buffer_size = g_value_get_int (value);
       break;
+    case PROP_BIND_ADDRESS:
+      g_free (udpsink->bind_address);
+      udpsink->bind_address = g_value_dup_string (value);
+      break;
+    case PROP_BIND_PORT:
+      udpsink->bind_port = g_value_get_int (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -764,12 +848,18 @@ gst_multiudpsink_get_property (GObject * object, guint prop_id, GValue * value,
     case PROP_SOCKET:
       g_value_set_object (value, udpsink->socket);
       break;
+    case PROP_SOCKET_V6:
+      g_value_set_object (value, udpsink->socket_v6);
+      break;
     case PROP_CLOSE_SOCKET:
       g_value_set_boolean (value, udpsink->close_socket);
       break;
     case PROP_USED_SOCKET:
       g_value_set_object (value, udpsink->used_socket);
       break;
+    case PROP_USED_SOCKET_V6:
+      g_value_set_object (value, udpsink->used_socket_v6);
+      break;
     case PROP_CLIENTS:
       g_value_take_string (value,
           gst_multiudpsink_get_clients_string (udpsink));
@@ -801,6 +891,12 @@ gst_multiudpsink_get_property (GObject * object, guint prop_id, GValue * value,
     case PROP_BUFFER_SIZE:
       g_value_set_int (value, udpsink->buffer_size);
       break;
+    case PROP_BIND_ADDRESS:
+      g_value_set_string (value, udpsink->bind_address);
+      break;
+    case PROP_BIND_PORT:
+      g_value_set_int (value, udpsink->bind_port);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -813,25 +909,36 @@ gst_multiudpsink_configure_client (GstMultiUDPSink * sink,
 {
   GInetSocketAddress *saddr = G_INET_SOCKET_ADDRESS (client->addr);
   GInetAddress *addr = g_inet_socket_address_get_address (saddr);
+  GSocketFamily family = g_socket_address_get_family (G_SOCKET_ADDRESS (saddr));
+  GSocket *socket;
   GError *err = NULL;
 
   GST_DEBUG_OBJECT (sink, "configuring client %p", client);
 
+  if (family == G_SOCKET_FAMILY_IPV6 && !sink->used_socket_v6)
+    goto invalid_family;
+
+  /* Select socket to send from for this address */
+  if (family == G_SOCKET_FAMILY_IPV6 || !sink->used_socket)
+    socket = sink->used_socket_v6;
+  else
+    socket = sink->used_socket;
+
   if (g_inet_address_get_is_multicast (addr)) {
     GST_DEBUG_OBJECT (sink, "we have a multicast client %p", client);
     if (sink->auto_multicast) {
       GST_DEBUG_OBJECT (sink, "autojoining group");
-      if (!g_socket_join_multicast_group (sink->used_socket, addr, FALSE,
+      if (!g_socket_join_multicast_group (socket, addr, FALSE,
               sink->multi_iface, &err))
         goto join_group_failed;
     }
     GST_DEBUG_OBJECT (sink, "setting loop to %d", sink->loop);
-    g_socket_set_multicast_loopback (sink->used_socket, sink->loop);
+    g_socket_set_multicast_loopback (socket, sink->loop);
     GST_DEBUG_OBJECT (sink, "setting ttl to %d", sink->ttl_mc);
-    g_socket_set_multicast_ttl (sink->used_socket, sink->ttl_mc);
+    g_socket_set_multicast_ttl (socket, sink->ttl_mc);
   } else {
     GST_DEBUG_OBJECT (sink, "setting unicast ttl to %d", sink->ttl);
-    g_socket_set_ttl (sink->used_socket, sink->ttl);
+    g_socket_set_ttl (socket, sink->ttl);
   }
   return TRUE;
 
@@ -845,6 +952,13 @@ join_group_failed:
     g_clear_error (&err);
     return FALSE;
   }
+invalid_family:
+  {
+    gst_multiudpsink_stop (GST_BASE_SINK (sink));
+    GST_ELEMENT_ERROR (sink, RESOURCE, SETTINGS, (NULL),
+        ("Invalid address family (got %d)", family));
+    return FALSE;
+  }
 }
 
 /* create a socket for sending to remote machine */
@@ -858,40 +972,104 @@ gst_multiudpsink_start (GstBaseSink * bsink)
 
   sink = GST_MULTIUDPSINK (bsink);
 
-  if (sink->socket == NULL) {
+  sink->external_socket = FALSE;
+
+  if (sink->socket) {
+    GST_DEBUG_OBJECT (sink, "using configured socket");
+    if (g_socket_get_family (sink->socket) == G_SOCKET_FAMILY_IPV6) {
+      sink->used_socket_v6 = G_SOCKET (g_object_ref (sink->socket));
+      sink->external_socket = TRUE;
+    } else {
+      sink->used_socket = G_SOCKET (g_object_ref (sink->socket));
+      sink->external_socket = TRUE;
+    }
+  }
+
+  if (sink->socket_v6) {
+    GST_DEBUG_OBJECT (sink, "using configured IPv6 socket");
+    g_return_val_if_fail (g_socket_get_family (sink->socket) !=
+        G_SOCKET_FAMILY_IPV6, FALSE);
+
+    if (sink->used_socket_v6 && sink->used_socket_v6 != sink->socket_v6) {
+      GST_ERROR_OBJECT (sink,
+          "Provided different IPv6 sockets in socket and socket-v6 properties");
+      return FALSE;
+    }
+
+    sink->used_socket_v6 = G_SOCKET (g_object_ref (sink->socket_v6));
+    sink->external_socket = TRUE;
+  }
+
+  if (!sink->used_socket && !sink->used_socket_v6) {
     GSocketAddress *bind_addr;
     GInetAddress *bind_iaddr;
-    GSocketFamily family = G_SOCKET_FAMILY_IPV6;
 
-    GST_DEBUG_OBJECT (sink, "creating sockets");
-    /* create sender socket try IP6, fall back to IP4 */
-    if (sink->force_ipv4 || (sink->used_socket =
-            g_socket_new (G_SOCKET_FAMILY_IPV6,
-                G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP, &err)) == NULL) {
+    if (sink->bind_address) {
+      GSocketFamily family;
+
+      bind_iaddr = g_inet_address_new_from_string (sink->bind_address);
+      if (!bind_iaddr) {
+        GList *results;
+        GResolver *resolver;
+
+        resolver = g_resolver_get_default ();
+        results =
+            g_resolver_lookup_by_name (resolver, sink->bind_address,
+            sink->cancellable, &err);
+        if (!results) {
+          g_object_unref (resolver);
+          goto name_resolve;
+        }
+        bind_iaddr = G_INET_ADDRESS (g_object_ref (results->data));
+        g_resolver_free_addresses (results);
+        g_object_unref (resolver);
+      }
+
+      bind_addr = g_inet_socket_address_new (bind_iaddr, sink->bind_port);
+      g_object_unref (bind_iaddr);
+      family = g_socket_address_get_family (G_SOCKET_ADDRESS (bind_addr));
+
+      if ((sink->used_socket =
+              g_socket_new (family, G_SOCKET_TYPE_DATAGRAM,
+                  G_SOCKET_PROTOCOL_UDP, &err)) == NULL) {
+        g_object_unref (bind_addr);
+        goto no_socket;
+      }
+
+      g_socket_bind (sink->used_socket, bind_addr, TRUE, &err);
+      if (err != NULL)
+        goto bind_error;
+    } else {
+      /* create sender sockets if none available */
       if ((sink->used_socket = g_socket_new (G_SOCKET_FAMILY_IPV4,
                   G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP, &err)) == NULL)
         goto no_socket;
-      else
-        family = G_SOCKET_FAMILY_IPV4;
-    }
 
-    bind_iaddr = g_inet_address_new_any (family);
-    bind_addr = g_inet_socket_address_new (bind_iaddr, 0);
-    g_socket_bind (sink->used_socket, bind_addr, TRUE, &err);
-    g_object_unref (bind_addr);
-    g_object_unref (bind_iaddr);
-    if (err != NULL)
-      goto bind_error;
-
-    GST_DEBUG_OBJECT (sink, "have socket");
-    sink->external_socket = FALSE;
-  } else {
-    GST_DEBUG_OBJECT (sink, "using configured socket");
-    /* we use the configured socket */
-    sink->used_socket = G_SOCKET (g_object_ref (sink->socket));
-    sink->external_socket = TRUE;
+      bind_iaddr = g_inet_address_new_any (G_SOCKET_FAMILY_IPV4);
+      bind_addr = g_inet_socket_address_new (bind_iaddr, 0);
+      g_socket_bind (sink->used_socket, bind_addr, TRUE, &err);
+      g_object_unref (bind_addr);
+      g_object_unref (bind_iaddr);
+      if (err != NULL)
+        goto bind_error;
+
+      if ((sink->used_socket_v6 = g_socket_new (G_SOCKET_FAMILY_IPV6,
+                  G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP,
+                  &err)) == NULL) {
+        GST_INFO_OBJECT (sink, "Failed to create IPv6 socket: %s",
+            err->message);
+        g_clear_error (&err);
+      } else {
+        bind_iaddr = g_inet_address_new_any (G_SOCKET_FAMILY_IPV6);
+        bind_addr = g_inet_socket_address_new (bind_iaddr, 0);
+        g_socket_bind (sink->used_socket_v6, bind_addr, TRUE, &err);
+        g_object_unref (bind_addr);
+        g_object_unref (bind_iaddr);
+        if (err != NULL)
+          goto bind_error;
+      }
+    }
   }
-
 #ifdef SO_SNDBUF
   {
     socklen_t len;
@@ -905,35 +1083,78 @@ gst_multiudpsink_start (GstBaseSink * bsink)
       /* set buffer size, Note that on Linux this is typically limited to a
        * maximum of around 100K. Also a minimum of 128 bytes is required on
        * Linux. */
-      ret =
-          setsockopt (g_socket_get_fd (sink->used_socket), SOL_SOCKET,
-          SO_SNDBUF, (void *) &sndsize, len);
-      if (ret != 0) {
-        GST_ELEMENT_WARNING (sink, RESOURCE, SETTINGS, (NULL),
-            ("Could not create a buffer of requested %d bytes, %d: %s",
-                sndsize, ret, g_strerror (errno)));
+
+      if (sink->used_socket) {
+        ret =
+            setsockopt (g_socket_get_fd (sink->used_socket), SOL_SOCKET,
+            SO_SNDBUF, (void *) &sndsize, len);
+        if (ret != 0) {
+          GST_ELEMENT_WARNING (sink, RESOURCE, SETTINGS, (NULL),
+              ("Could not create a buffer of requested %d bytes, %d: %s",
+                  sndsize, ret, g_strerror (errno)));
+        }
+      }
+
+      if (sink->used_socket_v6) {
+        ret =
+            setsockopt (g_socket_get_fd (sink->used_socket_v6), SOL_SOCKET,
+            SO_SNDBUF, (void *) &sndsize, len);
+        if (ret != 0) {
+          GST_ELEMENT_WARNING (sink, RESOURCE, SETTINGS, (NULL),
+              ("Could not create a buffer of requested %d bytes, %d: %s",
+                  sndsize, ret, g_strerror (errno)));
+        }
       }
     }
 
     /* read the value of the receive buffer. Note that on linux this returns 2x the
      * value we set because the kernel allocates extra memory for metadata.
      * The default on Linux is about 100K (which is about 50K without metadata) */
-    ret =
-        getsockopt (g_socket_get_fd (sink->used_socket), SOL_SOCKET, SO_SNDBUF,
-        (void *) &sndsize, &len);
-    if (ret == 0)
-      GST_DEBUG_OBJECT (sink, "have udp buffer of %d bytes", sndsize);
-    else
-      GST_DEBUG_OBJECT (sink, "could not get udp buffer size");
+    if (sink->used_socket) {
+      ret =
+          getsockopt (g_socket_get_fd (sink->used_socket), SOL_SOCKET,
+          SO_SNDBUF, (void *) &sndsize, &len);
+      if (ret == 0)
+        GST_DEBUG_OBJECT (sink, "have UDP buffer of %d bytes", sndsize);
+      else
+        GST_DEBUG_OBJECT (sink, "could not get UDP buffer size");
+    }
+
+    if (sink->used_socket_v6) {
+      ret =
+          getsockopt (g_socket_get_fd (sink->used_socket_v6), SOL_SOCKET,
+          SO_SNDBUF, (void *) &sndsize, &len);
+      if (ret == 0)
+        GST_DEBUG_OBJECT (sink, "have UDPv6 buffer of %d bytes", sndsize);
+      else
+        GST_DEBUG_OBJECT (sink, "could not get UDPv6 buffer size");
+    }
   }
 #endif
 
-  g_socket_set_broadcast (sink->used_socket, TRUE);
+#ifdef SO_BINDTODEVICE
+  if (sink->multi_iface) {
+    if (sink->used_socket) {
+      setsockopt (g_socket_get_fd (sink->used_socket), SOL_SOCKET,
+          SO_BINDTODEVICE, sink->multi_iface, strlen (sink->multi_iface));
+    }
+    if (sink->used_socket_v6) {
+      setsockopt (g_socket_get_fd (sink->used_socket_v6), SOL_SOCKET,
+          SO_BINDTODEVICE, sink->multi_iface, strlen (sink->multi_iface));
+    }
+  }
+#endif
+
+  if (sink->used_socket)
+    g_socket_set_broadcast (sink->used_socket, TRUE);
+  if (sink->used_socket_v6)
+    g_socket_set_broadcast (sink->used_socket_v6, TRUE);
 
   sink->bytes_to_serve = 0;
   sink->bytes_served = 0;
 
-  gst_multiudpsink_setup_qos_dscp (sink);
+  gst_multiudpsink_setup_qos_dscp (sink, sink->used_socket);
+  gst_multiudpsink_setup_qos_dscp (sink, sink->used_socket_v6);
 
   /* look for multicast clients and join multicast groups appropriately
      set also ttl and multicast loopback delivery appropriately  */
@@ -960,6 +1181,14 @@ bind_error:
     g_clear_error (&err);
     return FALSE;
   }
+name_resolve:
+  {
+    GST_ELEMENT_ERROR (sink, RESOURCE, FAILED, (NULL),
+        ("Failed to resolve bind address %s: %s", sink->bind_address,
+            err->message));
+    g_clear_error (&err);
+    return FALSE;
+  }
 }
 
 static gboolean
@@ -983,6 +1212,20 @@ gst_multiudpsink_stop (GstBaseSink * bsink)
     udpsink->used_socket = NULL;
   }
 
+  if (udpsink->used_socket_v6) {
+    if (udpsink->close_socket || !udpsink->external_socket) {
+      GError *err = NULL;
+
+      if (!g_socket_close (udpsink->used_socket_v6, &err)) {
+        GST_ERROR_OBJECT (udpsink, "Failed to close socket: %s", err->message);
+        g_clear_error (&err);
+      }
+    }
+
+    g_object_unref (udpsink->used_socket_v6);
+    udpsink->used_socket_v6 = NULL;
+  }
+
   return TRUE;
 }
 
@@ -1078,17 +1321,26 @@ gst_multiudpsink_remove (GstMultiUDPSink * sink, const gchar * host, gint port)
   if (client->refcount == 0) {
     GInetSocketAddress *saddr = G_INET_SOCKET_ADDRESS (client->addr);
     GInetAddress *addr = g_inet_socket_address_get_address (saddr);
+    GSocketFamily family =
+        g_socket_address_get_family (G_SOCKET_ADDRESS (saddr));
+    GSocket *socket;
+
+    /* Select socket to send from for this address */
+    if (family == G_SOCKET_FAMILY_IPV6 || !sink->used_socket)
+      socket = sink->used_socket_v6;
+    else
+      socket = sink->used_socket;
 
     GST_DEBUG_OBJECT (sink, "remove client with host %s, port %d", host, port);
 
     g_get_current_time (&now);
     client->disconnect_time = GST_TIMEVAL_TO_TIME (now);
 
-    if (sink->used_socket && sink->auto_multicast
+    if (socket && sink->auto_multicast
         && g_inet_address_get_is_multicast (addr)) {
       GError *err = NULL;
 
-      if (!g_socket_leave_multicast_group (sink->used_socket, addr, FALSE,
+      if (!g_socket_leave_multicast_group (socket, addr, FALSE,
               sink->multi_iface, &err)) {
         GST_DEBUG_OBJECT (sink, "Failed to leave multicast group: %s",
             err->message);
diff --git a/gst/udp/gstmultiudpsink.h b/gst/udp/gstmultiudpsink.h
index a3e96c644..a1be566b6 100644
--- a/gst/udp/gstmultiudpsink.h
+++ b/gst/udp/gstmultiudpsink.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_MULTIUDPSINK_H__
@@ -27,7 +27,6 @@
 G_BEGIN_DECLS
 
 #include "gstudpnetutils.h"
-#include "gstudp.h"
 
 #define GST_TYPE_MULTIUDPSINK            (gst_multiudpsink_get_type())
 #define GST_MULTIUDPSINK(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MULTIUDPSINK,GstMultiUDPSink))
@@ -57,16 +56,19 @@ typedef struct {
 struct _GstMultiUDPSink {
   GstBaseSink parent;
 
-  GSocket       *used_socket;
+  GSocket       *used_socket, *used_socket_v6;
   GCancellable  *cancellable;
 
   GMutex         client_lock;
   GList         *clients;
 
+  GOutputVector *vec;
+  GstMapInfo *map;
+
   /* properties */
   guint64        bytes_to_serve;
   guint64        bytes_served;
-  GSocket       *socket;
+  GSocket       *socket, *socket_v6;
   gboolean       close_socket;
 
   gboolean       external_socket;
@@ -81,6 +83,8 @@ struct _GstMultiUDPSink {
 
   gboolean       send_duplicates;
   gint           buffer_size;
+  gchar         *bind_address;
+  gint           bind_port;
 };
 
 struct _GstMultiUDPSinkClass {
diff --git a/gst/udp/gstudp-marshal.list b/gst/udp/gstudp-marshal.list
deleted file mode 100644
index b53e79c15..000000000
--- a/gst/udp/gstudp-marshal.list
+++ /dev/null
@@ -1,2 +0,0 @@
-VOID:STRING,INT
-BOXED:STRING,INT
diff --git a/gst/udp/gstudp.c b/gst/udp/gstudp.c
index b9c9fe70e..eb021122e 100644
--- a/gst/udp/gstudp.c
+++ b/gst/udp/gstudp.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -31,6 +31,12 @@
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
+  /* not using GLIB_CHECK_VERSION on purpose, run-time version matters */
+  if (glib_check_version (2, 36, 0) != NULL) {
+    GST_WARNING ("Your GLib version is < 2.36, UDP multicasting support may "
+        "be broken, see https://bugzilla.gnome.org/show_bug.cgi?id=688378");
+  }
+
   /* register info of the netaddress metadata so that we can use it from
    * multiple threads right away. Note that the plugin loading is always
    * serialized */
diff --git a/gst/udp/gstudp.h b/gst/udp/gstudp.h
deleted file mode 100644
index f6879377c..000000000
--- a/gst/udp/gstudp.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* GStreamer
- * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
- *
- * 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 "gstudp-enumtypes.h"
-#include <glib.h>
-
-#ifndef __GST_UDP_H__
-#define __GST_UDP_H__
-
-G_BEGIN_DECLS
-
-typedef enum
-{
-  CONTROL_ZERO,
-  CONTROL_NONE,
-  CONTROL_UDP,
-  CONTROL_TCP
-} GstUDPControl;
-
-G_END_DECLS
-
-#endif /* __GST_UDP_H__ */
-
diff --git a/gst/udp/gstudpnetutils.c b/gst/udp/gstudpnetutils.c
index 217c70849..b4dc5ef01 100644
--- a/gst/udp/gstudpnetutils.c
+++ b/gst/udp/gstudpnetutils.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/udp/gstudpnetutils.h b/gst/udp/gstudpnetutils.h
index 8e8665cce..a62be562c 100644
--- a/gst/udp/gstudpnetutils.h
+++ b/gst/udp/gstudpnetutils.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
diff --git a/gst/udp/gstudpsink.c b/gst/udp/gstudpsink.c
index b59917f63..224d57818 100644
--- a/gst/udp/gstudpsink.c
+++ b/gst/udp/gstudpsink.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-udpsink
diff --git a/gst/udp/gstudpsink.h b/gst/udp/gstudpsink.h
index b04fdda92..a7b5b343b 100644
--- a/gst/udp/gstudpsink.h
+++ b/gst/udp/gstudpsink.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -26,7 +26,6 @@
 
 G_BEGIN_DECLS
 
-#include "gstudp.h"
 #include "gstudpnetutils.h"
 
 #define GST_TYPE_UDPSINK                (gst_udpsink_get_type())
diff --git a/gst/udp/gstudpsrc.c b/gst/udp/gstudpsrc.c
index bdad5b30a..85179103e 100644
--- a/gst/udp/gstudpsrc.c
+++ b/gst/udp/gstudpsrc.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -131,6 +131,9 @@
 #endif
 #endif
 
+/* not 100% correct, but a good upper bound for memory allocation purposes */
+#define MAX_IPV4_UDP_PACKET_SIZE (65536 - 8)
+
 GST_DEBUG_CATEGORY_STATIC (udpsrc_debug);
 #define GST_CAT_DEFAULT (udpsrc_debug)
 
@@ -170,6 +173,7 @@ enum
   PROP_USED_SOCKET,
   PROP_AUTO_MULTICAST,
   PROP_REUSE,
+  PROP_BIND_ADDRESS,
 
   PROP_LAST
 };
@@ -275,6 +279,17 @@ gst_udpsrc_class_init (GstUDPSrcClass * klass)
       g_param_spec_boolean ("reuse", "Reuse", "Enable reuse of the port",
           UDP_DEFAULT_REUSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  /* FIXME 2.0: multicast-group and bind-address should
+   * be separated, the former only being the multicast group and
+   * the latter always being the address the socket is bound too,
+   * even if a multicast group is given.
+   */
+  g_object_class_install_property (gobject_class, PROP_BIND_ADDRESS,
+      g_param_spec_string ("bind-address", "Bind Address",
+          "Address to bind the socket to. This is equivalent to the "
+          "multicast-group property", UDP_DEFAULT_MULTICAST_GROUP,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&src_template));
 
@@ -300,7 +315,7 @@ gst_udpsrc_init (GstUDPSrc * udpsrc)
       g_strdup_printf ("udp://%s:%u", UDP_DEFAULT_MULTICAST_GROUP,
       UDP_DEFAULT_PORT);
 
-  udpsrc->host = g_strdup (UDP_DEFAULT_MULTICAST_GROUP);
+  udpsrc->multi_group = g_strdup (UDP_DEFAULT_MULTICAST_GROUP);
   udpsrc->port = UDP_DEFAULT_PORT;
   udpsrc->socket = UDP_DEFAULT_SOCKET;
   udpsrc->multi_iface = g_strdup (UDP_DEFAULT_MULTICAST_IFACE);
@@ -341,8 +356,8 @@ gst_udpsrc_finalize (GObject * object)
   g_free (udpsrc->uri);
   udpsrc->uri = NULL;
 
-  g_free (udpsrc->host);
-  udpsrc->host = NULL;
+  g_free (udpsrc->multi_group);
+  udpsrc->multi_group = NULL;
 
   if (udpsrc->socket)
     g_object_unref (udpsrc->socket);
@@ -397,13 +412,20 @@ retry:
     goto no_select;
 
   do {
+    gint64 timeout;
+
     try_again = FALSE;
 
+    if (udpsrc->timeout)
+      timeout = udpsrc->timeout / 1000;
+    else
+      timeout = -1;
+
     GST_LOG_OBJECT (udpsrc, "doing select, timeout %" G_GUINT64_FORMAT,
-        udpsrc->timeout);
+        timeout);
 
-    if (!g_socket_condition_wait (udpsrc->used_socket, G_IO_IN | G_IO_PRI,
-            udpsrc->cancellable, &err)) {
+    if (!g_socket_condition_timed_wait (udpsrc->used_socket, G_IO_IN | G_IO_PRI,
+            timeout, udpsrc->cancellable, &err)) {
       if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_BUSY)
           || g_error_matches (err, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
         goto stopped;
@@ -450,6 +472,11 @@ retry:
 no_select:
   GST_LOG_OBJECT (udpsrc, "ioctl says %d bytes available", (int) readsize);
 
+  /* sanity check value from _get_available_bytes(), which might be as
+   * large as the kernel-side buffer on some operating systems */
+  if (g_socket_get_family (udpsrc->used_socket) == G_SOCKET_FAMILY_IPV4)
+    readsize = MIN (MAX_IPV4_UDP_PACKET_SIZE, readsize);
+
   ret = GST_BASE_SRC_CLASS (parent_class)->alloc (GST_BASE_SRC_CAST (udpsrc),
       -1, readsize, &outbuf);
   if (ret != GST_FLOW_OK)
@@ -560,17 +587,17 @@ skip_error:
 static gboolean
 gst_udpsrc_set_uri (GstUDPSrc * src, const gchar * uri, GError ** error)
 {
-  gchar *host;
+  gchar *multi_group;
   guint16 port;
 
-  if (!gst_udp_parse_uri (uri, &host, &port))
+  if (!gst_udp_parse_uri (uri, &multi_group, &port))
     goto wrong_uri;
 
   if (port == (guint16) - 1)
     port = UDP_DEFAULT_PORT;
 
-  g_free (src->host);
-  src->host = host;
+  g_free (src->multi_group);
+  src->multi_group = multi_group;
   src->port = port;
 
   g_free (src->uri);
@@ -602,20 +629,23 @@ gst_udpsrc_set_property (GObject * object, guint prop_id, const GValue * value,
     case PROP_PORT:
       udpsrc->port = g_value_get_int (value);
       g_free (udpsrc->uri);
-      udpsrc->uri = g_strdup_printf ("udp://%s:%u", udpsrc->host, udpsrc->port);
+      udpsrc->uri =
+          g_strdup_printf ("udp://%s:%u", udpsrc->multi_group, udpsrc->port);
       break;
     case PROP_MULTICAST_GROUP:
+    case PROP_BIND_ADDRESS:
     {
       const gchar *group;
 
-      g_free (udpsrc->host);
+      g_free (udpsrc->multi_group);
       if ((group = g_value_get_string (value)))
-        udpsrc->host = g_strdup (group);
+        udpsrc->multi_group = g_strdup (group);
       else
-        udpsrc->host = g_strdup (UDP_DEFAULT_MULTICAST_GROUP);
+        udpsrc->multi_group = g_strdup (UDP_DEFAULT_MULTICAST_GROUP);
 
       g_free (udpsrc->uri);
-      udpsrc->uri = g_strdup_printf ("udp://%s:%u", udpsrc->host, udpsrc->port);
+      udpsrc->uri =
+          g_strdup_printf ("udp://%s:%u", udpsrc->multi_group, udpsrc->port);
       break;
     }
     case PROP_MULTICAST_IFACE:
@@ -700,7 +730,8 @@ gst_udpsrc_get_property (GObject * object, guint prop_id, GValue * value,
       g_value_set_int (value, udpsrc->port);
       break;
     case PROP_MULTICAST_GROUP:
-      g_value_set_string (value, udpsrc->host);
+    case PROP_BIND_ADDRESS:
+      g_value_set_string (value, udpsrc->multi_group);
       break;
     case PROP_MULTICAST_IFACE:
       g_value_set_string (value, udpsrc->multi_iface);
@@ -752,17 +783,19 @@ gst_udpsrc_start (GstBaseSrc * bsrc)
 
   if (src->socket == NULL) {
     /* need to allocate a socket */
-    GST_DEBUG_OBJECT (src, "allocating socket for %s:%d", src->host, src->port);
+    GST_DEBUG_OBJECT (src, "allocating socket for %s:%d", src->multi_group,
+        src->port);
 
-    addr = g_inet_address_new_from_string (src->host);
+    addr = g_inet_address_new_from_string (src->multi_group);
     if (!addr) {
       GList *results;
 
-      GST_DEBUG_OBJECT (src, "resolving IP address for host %s", src->host);
+      GST_DEBUG_OBJECT (src, "resolving IP address for host %s",
+          src->multi_group);
       resolver = g_resolver_get_default ();
       results =
-          g_resolver_lookup_by_name (resolver, src->host, src->cancellable,
-          &err);
+          g_resolver_lookup_by_name (resolver, src->multi_group,
+          src->cancellable, &err);
       if (!results)
         goto name_resolve;
       addr = G_INET_ADDRESS (g_object_ref (results->data));
@@ -774,7 +807,8 @@ gst_udpsrc_start (GstBaseSrc * bsrc)
     {
       gchar *ip = g_inet_address_to_string (addr);
 
-      GST_DEBUG_OBJECT (src, "IP address for host %s is %s", src->host, ip);
+      GST_DEBUG_OBJECT (src, "IP address for host %s is %s", src->multi_group,
+          ip);
       g_free (ip);
     }
 #endif
@@ -823,9 +857,6 @@ gst_udpsrc_start (GstBaseSrc * bsrc)
       goto getsockname_error;
   }
 
-  if (src->timeout)
-    g_socket_set_timeout (src->used_socket, src->timeout / GST_SECOND);
-
 #if GLIB_CHECK_VERSION (2, 35, 7)
   {
     gint val = 0;
@@ -906,7 +937,7 @@ gst_udpsrc_start (GstBaseSrc * bsrc)
       &&
       g_inet_address_get_is_multicast (g_inet_socket_address_get_address
           (src->addr))) {
-    GST_DEBUG_OBJECT (src, "joining multicast group %s", src->host);
+    GST_DEBUG_OBJECT (src, "joining multicast group %s", src->multi_group);
     if (!g_socket_join_multicast_group (src->used_socket,
             g_inet_socket_address_get_address (src->addr),
             FALSE, src->multi_iface, &err))
@@ -1023,7 +1054,7 @@ gst_udpsrc_stop (GstBaseSrc * bsrc)
             (src->addr))) {
       GError *err = NULL;
 
-      GST_DEBUG_OBJECT (src, "leaving multicast group %s", src->host);
+      GST_DEBUG_OBJECT (src, "leaving multicast group %s", src->multi_group);
 
       if (!g_socket_leave_multicast_group (src->used_socket,
               g_inet_socket_address_get_address (src->addr), FALSE,
diff --git a/gst/udp/gstudpsrc.h b/gst/udp/gstudpsrc.h
index dc5ea33c1..b7c3f14af 100644
--- a/gst/udp/gstudpsrc.h
+++ b/gst/udp/gstudpsrc.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -28,7 +28,6 @@
 G_BEGIN_DECLS
 
 #include "gstudpnetutils.h"
-#include "gstudp.h"
 
 #define GST_TYPE_UDPSRC \
   (gst_udpsrc_get_type())
@@ -49,7 +48,7 @@ struct _GstUDPSrc {
   GstPushSrc parent;
 
   /* properties */
-  gchar     *host;
+  gchar     *multi_group;
   gint       port;
   gchar     *multi_iface;
   gint       ttl;
diff --git a/gst/videobox/Makefile.in b/gst/videobox/Makefile.in
index 0b150d336..c65e8c53b 100644
--- a/gst/videobox/Makefile.in
+++ b/gst/videobox/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -39,23 +38,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -75,8 +102,9 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak
+DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS) \
+	README
 subdir = gst/videobox
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -84,7 +112,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-gcc-inline-assembly.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 \
@@ -161,10 +188,23 @@ libgstvideobox_la_OBJECTS = $(am_libgstvideobox_la_OBJECTS) \
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstvideobox_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstvideobox_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstvideobox_la_CFLAGS) $(CFLAGS) \
 	$(libgstvideobox_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -177,20 +217,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstvideobox_la_SOURCES) \
 	$(nodist_libgstvideobox_la_SOURCES)
 DIST_SOURCES = $(libgstvideobox_la_SOURCES)
@@ -200,6 +236,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -368,6 +421,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -591,6 +645,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -617,12 +672,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstvideobox.la: $(libgstvideobox_la_OBJECTS) $(libgstvideobox_la_DEPENDENCIES) $(EXTRA_libgstvideobox_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstvideobox_la_LINK) -rpath $(plugindir) $(libgstvideobox_la_OBJECTS) $(libgstvideobox_la_LIBADD) $(LIBS)
 
@@ -676,26 +734,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -707,15 +754,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -724,6 +767,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -874,19 +932,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-local clean-pluginLTLIBRARIES 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-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-pluginLTLIBRARIES 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 \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-local clean-pluginLTLIBRARIES \
+	cscopelist-am ctags ctags-am 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-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-pluginLTLIBRARIES \
+	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 tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
 
diff --git a/gst/videobox/gstvideobox.c b/gst/videobox/gstvideobox.c
index d0216cd32..de70b1b16 100644
--- a/gst/videobox/gstvideobox.c
+++ b/gst/videobox/gstvideobox.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-videobox
diff --git a/gst/videobox/gstvideobox.h b/gst/videobox/gstvideobox.h
index 2dec46d6f..cbb98ac39 100644
--- a/gst/videobox/gstvideobox.h
+++ b/gst/videobox/gstvideobox.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
diff --git a/gst/videobox/gstvideoboxorc-dist.c b/gst/videobox/gstvideoboxorc-dist.c
index 8b2dcd38b..15bbf1def 100644
--- a/gst/videobox/gstvideoboxorc-dist.c
+++ b/gst/videobox/gstvideoboxorc-dist.c
@@ -203,6 +203,15 @@ video_box_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 118, 105, 100, 101, 111, 95, 98, 111, 120, 95, 111, 114, 99,
+        95, 115, 112, 108, 97, 116, 95, 117, 51, 50, 11, 4, 4, 16, 4, 112,
+        0, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_box_orc_splat_u32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_box_orc_splat_u32");
       orc_program_set_backup_function (p, _backup_video_box_orc_splat_u32);
@@ -211,6 +220,7 @@ video_box_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
 
       orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
diff --git a/gst/videocrop/Makefile.in b/gst/videocrop/Makefile.in
index bf8414e4b..b762007c5 100644
--- a/gst/videocrop/Makefile.in
+++ b/gst/videocrop/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/videocrop
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -136,10 +162,23 @@ libgstvideocrop_la_OBJECTS = $(am_libgstvideocrop_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstvideocrop_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstvideocrop_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstvideocrop_la_CFLAGS) $(CFLAGS) \
 	$(libgstvideocrop_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -152,20 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstvideocrop_la_SOURCES)
 DIST_SOURCES = $(libgstvideocrop_la_SOURCES)
 am__can_run_installinfo = \
@@ -174,6 +209,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -342,6 +394,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -548,6 +601,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -574,12 +628,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstvideocrop.la: $(libgstvideocrop_la_OBJECTS) $(libgstvideocrop_la_DEPENDENCIES) $(EXTRA_libgstvideocrop_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstvideocrop_la_LINK) -rpath $(plugindir) $(libgstvideocrop_la_OBJECTS) $(libgstvideocrop_la_LIBADD) $(LIBS)
 
@@ -633,26 +690,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -664,15 +710,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -681,6 +723,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -825,19 +882,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/videocrop/gstaspectratiocrop.c b/gst/videocrop/gstaspectratiocrop.c
index 1e0f3d232..a4a65537e 100644
--- a/gst/videocrop/gstaspectratiocrop.c
+++ b/gst/videocrop/gstaspectratiocrop.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -54,11 +54,12 @@ enum
   ARG_ASPECT_RATIO_CROP,
 };
 
-/* we support the same caps as videocrop */
+/* we support the same caps as videocrop (sync changes) */
 #define ASPECT_RATIO_CROP_CAPS                        \
   GST_VIDEO_CAPS_MAKE ("{ RGBx, xRGB, BGRx, xBGR, "    \
       "RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, " \
-      "YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }")
+      "YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, "  \
+      "NV12, NV21, GRAY16_LE, GRAY16_BE }")
 
 static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
diff --git a/gst/videocrop/gstaspectratiocrop.h b/gst/videocrop/gstaspectratiocrop.h
index e6ceae6ca..5e108402b 100644
--- a/gst/videocrop/gstaspectratiocrop.h
+++ b/gst/videocrop/gstaspectratiocrop.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_ASPECT_RATIO_CROP_H__
diff --git a/gst/videocrop/gstvideocrop.c b/gst/videocrop/gstvideocrop.c
index 21738c570..a6c736f5c 100644
--- a/gst/videocrop/gstvideocrop.c
+++ b/gst/videocrop/gstvideocrop.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -77,10 +77,12 @@ enum
   ARG_BOTTOM
 };
 
+/* we support the same caps as aspectratiocrop (sync changes) */
 #define VIDEO_CROP_CAPS                                \
   GST_VIDEO_CAPS_MAKE ("{ RGBx, xRGB, BGRx, xBGR, "    \
       "RGBA, ARGB, BGRA, ABGR, RGB, BGR, AYUV, YUY2, " \
-      "YVYU, UYVY, I420, RGB16, RGB15, GRAY8 }")
+      "YVYU, UYVY, I420, YV12, RGB16, RGB15, GRAY8, "  \
+      "NV12, NV21, GRAY16_LE, GRAY16_BE }")
 
 static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
@@ -179,17 +181,21 @@ gst_video_crop_class_init (GstVideoCropClass * klass)
   gobject_class->get_property = gst_video_crop_get_property;
 
   g_object_class_install_property (gobject_class, ARG_LEFT,
-      g_param_spec_int ("left", "Left", "Pixels to crop at left",
-          0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+      g_param_spec_int ("left", "Left",
+          "Pixels to crop at left (-1 to auto-crop)", -1, G_MAXINT, 0,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, ARG_RIGHT,
-      g_param_spec_int ("right", "Right", "Pixels to crop at right",
-          0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+      g_param_spec_int ("right", "Right",
+          "Pixels to crop at right (-1 to auto-crop)", -1, G_MAXINT, 0,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, ARG_TOP,
-      g_param_spec_int ("top", "Top", "Pixels to crop at top",
-          0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+      g_param_spec_int ("top", "Top",
+          "Pixels to crop at top (-1 to auto-crop)", -1, G_MAXINT, 0,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, ARG_BOTTOM,
-      g_param_spec_int ("bottom", "Bottom", "Pixels to crop at bottom",
-          0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+      g_param_spec_int ("bottom", "Bottom",
+          "Pixels to crop at bottom (-1 to auto-crop)", -1, G_MAXINT, 0,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   gst_element_class_add_pad_template (element_class,
       gst_static_pad_template_get (&sink_template));
@@ -369,6 +375,47 @@ gst_video_crop_transform_planar (GstVideoCrop * vcrop,
   }
 }
 
+static void
+gst_video_crop_transform_semi_planar (GstVideoCrop * vcrop,
+    GstVideoFrame * in_frame, GstVideoFrame * out_frame)
+{
+  gint width, height;
+  guint8 *y_out, *uv_out;
+  guint8 *y_in, *uv_in;
+  guint i, dx;
+
+  width = GST_VIDEO_FRAME_WIDTH (out_frame);
+  height = GST_VIDEO_FRAME_HEIGHT (out_frame);
+
+  /* Y plane */
+  y_in = GST_VIDEO_FRAME_PLANE_DATA (in_frame, 0);
+  y_out = GST_VIDEO_FRAME_PLANE_DATA (out_frame, 0);
+
+  /* UV plane */
+  uv_in = GST_VIDEO_FRAME_PLANE_DATA (in_frame, 1);
+  uv_out = GST_VIDEO_FRAME_PLANE_DATA (out_frame, 1);
+
+  y_in += vcrop->crop_top * GST_VIDEO_FRAME_PLANE_STRIDE (in_frame, 0) +
+      vcrop->crop_left;
+  dx = width;
+
+  for (i = 0; i < height; ++i) {
+    memcpy (y_out, y_in, dx);
+    y_in += GST_VIDEO_FRAME_PLANE_STRIDE (in_frame, 0);
+    y_out += GST_VIDEO_FRAME_PLANE_STRIDE (out_frame, 0);
+  }
+
+  uv_in += (vcrop->crop_top / 2) * GST_VIDEO_FRAME_PLANE_STRIDE (in_frame, 1);
+  uv_in += GST_ROUND_DOWN_2 (vcrop->crop_left);
+  dx = GST_ROUND_UP_2 (width);
+
+  for (i = 0; i < GST_ROUND_UP_2 (height) / 2; i++) {
+    memcpy (uv_out, uv_in, dx);
+    uv_in += GST_VIDEO_FRAME_PLANE_STRIDE (in_frame, 1);
+    uv_out += GST_VIDEO_FRAME_PLANE_STRIDE (out_frame, 1);
+  }
+}
+
 static GstFlowReturn
 gst_video_crop_transform_frame (GstVideoFilter * vfilter,
     GstVideoFrame * in_frame, GstVideoFrame * out_frame)
@@ -386,6 +433,9 @@ gst_video_crop_transform_frame (GstVideoFilter * vfilter,
     case VIDEO_CROP_PIXEL_FORMAT_PLANAR:
       gst_video_crop_transform_planar (vcrop, in_frame, out_frame);
       break;
+    case VIDEO_CROP_PIXEL_FORMAT_SEMI_PLANAR:
+      gst_video_crop_transform_semi_planar (vcrop, in_frame, out_frame);
+      break;
     default:
       g_assert_not_reached ();
   }
@@ -406,33 +456,69 @@ gst_video_crop_transform_dimension (gint val, gint delta)
 
 static gboolean
 gst_video_crop_transform_dimension_value (const GValue * src_val,
-    gint delta, GValue * dest_val)
+    gint delta, GValue * dest_val, GstPadDirection direction, gboolean dynamic)
 {
   gboolean ret = TRUE;
 
-  g_value_init (dest_val, G_VALUE_TYPE (src_val));
-
   if (G_VALUE_HOLDS_INT (src_val)) {
     gint ival = g_value_get_int (src_val);
-
     ival = gst_video_crop_transform_dimension (ival, delta);
-    g_value_set_int (dest_val, ival);
+
+    if (dynamic) {
+      if (direction == GST_PAD_SRC) {
+        if (ival == G_MAXINT) {
+          g_value_init (dest_val, G_TYPE_INT);
+          g_value_set_int (dest_val, ival);
+        } else {
+          g_value_init (dest_val, GST_TYPE_INT_RANGE);
+          gst_value_set_int_range (dest_val, ival, G_MAXINT);
+        }
+      } else {
+        if (ival == 1) {
+          g_value_init (dest_val, G_TYPE_INT);
+          g_value_set_int (dest_val, ival);
+        } else {
+          g_value_init (dest_val, GST_TYPE_INT_RANGE);
+          gst_value_set_int_range (dest_val, 1, ival);
+        }
+      }
+    } else {
+      g_value_init (dest_val, G_TYPE_INT);
+      g_value_set_int (dest_val, ival);
+    }
   } else if (GST_VALUE_HOLDS_INT_RANGE (src_val)) {
     gint min = gst_value_get_int_range_min (src_val);
     gint max = gst_value_get_int_range_max (src_val);
 
     min = gst_video_crop_transform_dimension (min, delta);
     max = gst_video_crop_transform_dimension (max, delta);
-    gst_value_set_int_range (dest_val, min, max);
+
+    if (dynamic) {
+      if (direction == GST_PAD_SRC)
+        max = G_MAXINT;
+      else
+        min = 1;
+    }
+
+    if (min == max) {
+      g_value_init (dest_val, G_TYPE_INT);
+      g_value_set_int (dest_val, min);
+    } else {
+      g_value_init (dest_val, GST_TYPE_INT_RANGE);
+      gst_value_set_int_range (dest_val, min, max);
+    }
   } else if (GST_VALUE_HOLDS_LIST (src_val)) {
     gint i;
 
+    g_value_init (dest_val, GST_TYPE_LIST);
+
     for (i = 0; i < gst_value_list_get_size (src_val); ++i) {
       const GValue *list_val;
       GValue newval = { 0, };
 
       list_val = gst_value_list_get_value (src_val, i);
-      if (gst_video_crop_transform_dimension_value (list_val, delta, &newval))
+      if (gst_video_crop_transform_dimension_value (list_val, delta, &newval,
+              direction, dynamic))
         gst_value_list_append_value (dest_val, &newval);
       g_value_unset (&newval);
     }
@@ -442,7 +528,6 @@ gst_video_crop_transform_dimension_value (const GValue * src_val,
       ret = FALSE;
     }
   } else {
-    g_value_unset (dest_val);
     ret = FALSE;
   }
 
@@ -456,21 +541,30 @@ gst_video_crop_transform_caps (GstBaseTransform * trans,
 {
   GstVideoCrop *vcrop;
   GstCaps *other_caps;
-  gint dy, dx, i;
+  gint dy, dx, i, left, right, bottom, top;
+  gboolean w_dynamic, h_dynamic;
 
   vcrop = GST_VIDEO_CROP (trans);
 
   GST_OBJECT_LOCK (vcrop);
 
   GST_LOG_OBJECT (vcrop, "l=%d,r=%d,b=%d,t=%d",
-      vcrop->crop_left, vcrop->crop_right, vcrop->crop_bottom, vcrop->crop_top);
+      vcrop->prop_left, vcrop->prop_right, vcrop->prop_bottom, vcrop->prop_top);
+
+  w_dynamic = (vcrop->prop_left == -1 || vcrop->prop_right == -1);
+  h_dynamic = (vcrop->prop_top == -1 || vcrop->prop_bottom == -1);
+
+  left = (vcrop->prop_left == -1) ? 0 : vcrop->prop_left;
+  right = (vcrop->prop_right == -1) ? 0 : vcrop->prop_right;
+  bottom = (vcrop->prop_bottom == -1) ? 0 : vcrop->prop_bottom;
+  top = (vcrop->prop_top == -1) ? 0 : vcrop->prop_top;
 
   if (direction == GST_PAD_SRC) {
-    dx = vcrop->crop_left + vcrop->crop_right;
-    dy = vcrop->crop_top + vcrop->crop_bottom;
+    dx = left + right;
+    dy = top + bottom;
   } else {
-    dx = 0 - (vcrop->crop_left + vcrop->crop_right);
-    dy = 0 - (vcrop->crop_top + vcrop->crop_bottom);
+    dx = 0 - (left + right);
+    dy = 0 - (top + bottom);
   }
   GST_OBJECT_UNLOCK (vcrop);
 
@@ -487,14 +581,16 @@ gst_video_crop_transform_caps (GstBaseTransform * trans,
     structure = gst_caps_get_structure (caps, i);
 
     v = gst_structure_get_value (structure, "width");
-    if (!gst_video_crop_transform_dimension_value (v, dx, &w_val)) {
+    if (!gst_video_crop_transform_dimension_value (v, dx, &w_val, direction,
+            w_dynamic)) {
       GST_WARNING_OBJECT (vcrop, "could not tranform width value with dx=%d"
           ", caps structure=%" GST_PTR_FORMAT, dx, structure);
       continue;
     }
 
     v = gst_structure_get_value (structure, "height");
-    if (!gst_video_crop_transform_dimension_value (v, dy, &h_val)) {
+    if (!gst_video_crop_transform_dimension_value (v, dy, &h_val, direction,
+            h_dynamic)) {
       g_value_unset (&w_val);
       GST_WARNING_OBJECT (vcrop, "could not tranform height value with dy=%d"
           ", caps structure=%" GST_PTR_FORMAT, dy, structure);
@@ -526,6 +622,41 @@ gst_video_crop_set_info (GstVideoFilter * vfilter, GstCaps * in,
     GstVideoInfo * in_info, GstCaps * out, GstVideoInfo * out_info)
 {
   GstVideoCrop *crop = GST_VIDEO_CROP (vfilter);
+  int dx, dy;
+
+  crop->crop_left = crop->prop_left;
+  crop->crop_right = crop->prop_right;
+  crop->crop_top = crop->prop_top;
+  crop->crop_bottom = crop->prop_bottom;
+
+  dx = GST_VIDEO_INFO_WIDTH (in_info) - GST_VIDEO_INFO_WIDTH (out_info);
+  dy = GST_VIDEO_INFO_HEIGHT (in_info) - GST_VIDEO_INFO_HEIGHT (out_info);
+
+  if (crop->prop_left == -1 && crop->prop_right == -1) {
+    crop->crop_left = dx / 2;
+    crop->crop_right = dx / 2 + (dx & 1);
+  } else if (crop->prop_left == -1) {
+    if (G_UNLIKELY (crop->prop_right > dx))
+      goto cropping_too_much;
+    crop->crop_left = dx - crop->prop_right;
+  } else if (crop->prop_right == -1) {
+    if (G_UNLIKELY (crop->prop_left > dx))
+      goto cropping_too_much;
+    crop->crop_right = dx - crop->prop_left;
+  }
+
+  if (crop->prop_top == -1 && crop->prop_bottom == -1) {
+    crop->crop_top = dy / 2;
+    crop->crop_bottom = dy / 2 + (dy & 1);
+  } else if (crop->prop_top == -1) {
+    if (G_UNLIKELY (crop->prop_bottom > dy))
+      goto cropping_too_much;
+    crop->crop_top = dy - crop->prop_bottom;
+  } else if (crop->prop_bottom == -1) {
+    if (G_UNLIKELY (crop->prop_top > dy))
+      goto cropping_too_much;
+    crop->crop_bottom = dy - crop->prop_top;
+  }
 
   if (G_UNLIKELY ((crop->crop_left + crop->crop_right) >=
           GST_VIDEO_INFO_WIDTH (in_info)
@@ -565,13 +696,14 @@ gst_video_crop_set_info (GstVideoFilter * vfilter, GstCaps * in,
           crop->macro_y_off = 0;
         }
         break;
-      case GST_VIDEO_FORMAT_GRAY8:
-        crop->packing = VIDEO_CROP_PIXEL_FORMAT_PACKED_SIMPLE;
-        break;
       case GST_VIDEO_FORMAT_I420:
       case GST_VIDEO_FORMAT_YV12:
         crop->packing = VIDEO_CROP_PIXEL_FORMAT_PLANAR;
         break;
+      case GST_VIDEO_FORMAT_NV12:
+      case GST_VIDEO_FORMAT_NV21:
+        crop->packing = VIDEO_CROP_PIXEL_FORMAT_SEMI_PLANAR;
+        break;
       default:
         goto unknown_format;
     }
@@ -582,12 +714,12 @@ gst_video_crop_set_info (GstVideoFilter * vfilter, GstCaps * in,
   /* ERROR */
 cropping_too_much:
   {
-    GST_DEBUG_OBJECT (crop, "we are cropping too much");
+    GST_WARNING_OBJECT (crop, "we are cropping too much");
     return FALSE;
   }
 unknown_format:
   {
-    GST_DEBUG_OBJECT (crop, "Unsupported format");
+    GST_WARNING_OBJECT (crop, "Unsupported format");
     return FALSE;
   }
 }
@@ -607,16 +739,16 @@ gst_video_crop_set_property (GObject * object, guint prop_id,
   GST_OBJECT_LOCK (video_crop);
   switch (prop_id) {
     case ARG_LEFT:
-      video_crop->crop_left = g_value_get_int (value);
+      video_crop->prop_left = g_value_get_int (value);
       break;
     case ARG_RIGHT:
-      video_crop->crop_right = g_value_get_int (value);
+      video_crop->prop_right = g_value_get_int (value);
       break;
     case ARG_TOP:
-      video_crop->crop_top = g_value_get_int (value);
+      video_crop->prop_top = g_value_get_int (value);
       break;
     case ARG_BOTTOM:
-      video_crop->crop_bottom = g_value_get_int (value);
+      video_crop->prop_bottom = g_value_get_int (value);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -642,16 +774,16 @@ gst_video_crop_get_property (GObject * object, guint prop_id, GValue * value,
   GST_OBJECT_LOCK (video_crop);
   switch (prop_id) {
     case ARG_LEFT:
-      g_value_set_int (value, video_crop->crop_left);
+      g_value_set_int (value, video_crop->prop_left);
       break;
     case ARG_RIGHT:
-      g_value_set_int (value, video_crop->crop_right);
+      g_value_set_int (value, video_crop->prop_right);
       break;
     case ARG_TOP:
-      g_value_set_int (value, video_crop->crop_top);
+      g_value_set_int (value, video_crop->prop_top);
       break;
     case ARG_BOTTOM:
-      g_value_set_int (value, video_crop->crop_bottom);
+      g_value_set_int (value, video_crop->prop_bottom);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
diff --git a/gst/videocrop/gstvideocrop.h b/gst/videocrop/gstvideocrop.h
index 92969b731..cd8ad06c5 100644
--- a/gst/videocrop/gstvideocrop.h
+++ b/gst/videocrop/gstvideocrop.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VIDEO_CROP_H__
@@ -38,7 +38,8 @@ G_BEGIN_DECLS
 typedef enum {
   VIDEO_CROP_PIXEL_FORMAT_PACKED_SIMPLE = 0,  /* RGBx, AYUV */
   VIDEO_CROP_PIXEL_FORMAT_PACKED_COMPLEX,     /* UYVY, YVYU */
-  VIDEO_CROP_PIXEL_FORMAT_PLANAR              /* I420, YV12 */
+  VIDEO_CROP_PIXEL_FORMAT_PLANAR,             /* I420, YV12 */
+  VIDEO_CROP_PIXEL_FORMAT_SEMI_PLANAR         /* NV12, NV21 */
 } VideoCropPixelFormat;
 
 typedef struct _GstVideoCropImageDetails GstVideoCropImageDetails;
@@ -51,6 +52,11 @@ struct _GstVideoCrop
   GstVideoFilter parent;
 
   /*< private >*/
+  gint prop_left;
+  gint prop_right;
+  gint prop_top;
+  gint prop_bottom;
+
   gint crop_left;
   gint crop_right;
   gint crop_top;
diff --git a/gst/videofilter/Makefile.in b/gst/videofilter/Makefile.in
index d89a0a40e..519365546 100644
--- a/gst/videofilter/Makefile.in
+++ b/gst/videofilter/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/videofilter
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -139,10 +165,23 @@ libgstvideofilter_la_OBJECTS = $(am_libgstvideofilter_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstvideofilter_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) \
 	$(libgstvideofilter_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -155,20 +194,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstvideofilter_la_SOURCES)
 DIST_SOURCES = $(libgstvideofilter_la_SOURCES)
 am__can_run_installinfo = \
@@ -177,6 +212,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -345,6 +397,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -559,6 +612,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -585,12 +639,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstvideofilter.la: $(libgstvideofilter_la_OBJECTS) $(libgstvideofilter_la_DEPENDENCIES) $(EXTRA_libgstvideofilter_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstvideofilter_la_LINK) -rpath $(plugindir) $(libgstvideofilter_la_OBJECTS) $(libgstvideofilter_la_LIBADD) $(LIBS)
 
@@ -668,26 +725,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -699,15 +745,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -716,6 +758,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -861,19 +918,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 gstvideoexample.c: $(srcdir)/make_filter $(srcdir)/gstvideotemplate.c
diff --git a/gst/videofilter/gstgamma.c b/gst/videofilter/gstgamma.c
index 28c419a59..17acd7cb1 100644
--- a/gst/videofilter/gstgamma.c
+++ b/gst/videofilter/gstgamma.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/gst/videofilter/gstgamma.h b/gst/videofilter/gstgamma.h
index 6a1b886d2..13f967b73 100644
--- a/gst/videofilter/gstgamma.h
+++ b/gst/videofilter/gstgamma.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/videofilter/gstvideobalance.c b/gst/videofilter/gstvideobalance.c
index c371224bb..5922e4f7b 100644
--- a/gst/videofilter/gstvideobalance.c
+++ b/gst/videofilter/gstvideobalance.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/gst/videofilter/gstvideobalance.h b/gst/videofilter/gstvideobalance.h
index 194144bb3..8b9f921f4 100644
--- a/gst/videofilter/gstvideobalance.h
+++ b/gst/videofilter/gstvideobalance.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/videofilter/gstvideoflip.c b/gst/videofilter/gstvideoflip.c
index 6d38453ec..165643b3c 100644
--- a/gst/videofilter/gstvideoflip.c
+++ b/gst/videofilter/gstvideoflip.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
@@ -68,8 +68,9 @@ GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("{ AYUV, "
-            "ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx,xBGR, BGRx, "
-            "RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU }"))
+            "ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, "
+            "RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU, NV12, NV21, "
+            "GRAY8, GRAY16_BE, GRAY16_LE }"))
     );
 
 static GstStaticPadTemplate gst_video_flip_sink_template =
@@ -77,8 +78,9 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("{ AYUV, "
-            "ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx,xBGR, BGRx, "
-            "RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU }"))
+            "ARGB, BGRA, ABGR, RGBA, Y444, xRGB, RGBx, xBGR, BGRx, "
+            "RGB, BGR, I420, YV12, IYUV, YUY2, UYVY, YVYU, NV12, NV21, "
+            "GRAY8, GRAY16_BE, GRAY16_LE }"))
     );
 
 #define GST_TYPE_VIDEO_FLIP_METHOD (gst_video_flip_method_get_type())
@@ -428,6 +430,204 @@ gst_video_flip_planar_yuv (GstVideoFlip * videoflip, GstVideoFrame * dest,
   }
 }
 
+static void
+gst_video_flip_semi_planar_yuv (GstVideoFlip * videoflip, GstVideoFrame * dest,
+    const GstVideoFrame * src)
+{
+  gint x, y;
+  guint8 const *s;
+  guint8 *d;
+  gint s_off, d_off;
+  gint src_y_stride, src_uv_stride;
+  gint src_y_height, src_uv_height;
+  gint src_y_width, src_uv_width;
+  gint dest_y_stride, dest_uv_stride;
+  gint dest_y_height, dest_uv_height;
+  gint dest_y_width, dest_uv_width;
+
+
+  src_y_stride = GST_VIDEO_FRAME_PLANE_STRIDE (src, 0);
+  src_uv_stride = GST_VIDEO_FRAME_PLANE_STRIDE (src, 1);
+
+  dest_y_stride = GST_VIDEO_FRAME_PLANE_STRIDE (dest, 0);
+  dest_uv_stride = GST_VIDEO_FRAME_PLANE_STRIDE (dest, 1);
+
+  src_y_width = GST_VIDEO_FRAME_COMP_WIDTH (src, 0);
+  src_uv_width = GST_VIDEO_FRAME_COMP_WIDTH (src, 1);
+
+  dest_y_width = GST_VIDEO_FRAME_COMP_WIDTH (dest, 0);
+  dest_uv_width = GST_VIDEO_FRAME_COMP_WIDTH (dest, 1);
+
+  src_y_height = GST_VIDEO_FRAME_COMP_HEIGHT (src, 0);
+  src_uv_height = GST_VIDEO_FRAME_COMP_HEIGHT (src, 1);
+
+  dest_y_height = GST_VIDEO_FRAME_COMP_HEIGHT (dest, 0);
+  dest_uv_height = GST_VIDEO_FRAME_COMP_HEIGHT (dest, 1);
+
+  switch (videoflip->method) {
+    case GST_VIDEO_FLIP_METHOD_90R:
+      /* Flip Y */
+      s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
+      d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
+      for (y = 0; y < dest_y_height; y++) {
+        for (x = 0; x < dest_y_width; x++) {
+          d[y * dest_y_stride + x] =
+              s[(src_y_height - 1 - x) * src_y_stride + y];
+        }
+      }
+      /* Flip UV */
+      s = GST_VIDEO_FRAME_PLANE_DATA (src, 1);
+      d = GST_VIDEO_FRAME_PLANE_DATA (dest, 1);
+      for (y = 0; y < dest_uv_height; y++) {
+        for (x = 0; x < dest_uv_width; x++) {
+          d_off = y * dest_uv_stride + x * 2;
+          s_off = (src_uv_height - 1 - x) * src_uv_stride + y * 2;
+          d[d_off] = s[s_off];
+          d[d_off + 1] = s[s_off + 1];
+        }
+      }
+      break;
+    case GST_VIDEO_FLIP_METHOD_90L:
+      /* Flip Y */
+      s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
+      d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
+      for (y = 0; y < dest_y_height; y++) {
+        for (x = 0; x < dest_y_width; x++) {
+          d[y * dest_y_stride + x] =
+              s[x * src_y_stride + (src_y_width - 1 - y)];
+        }
+      }
+      /* Flip UV */
+      s = GST_VIDEO_FRAME_PLANE_DATA (src, 1);
+      d = GST_VIDEO_FRAME_PLANE_DATA (dest, 1);
+      for (y = 0; y < dest_uv_height; y++) {
+        for (x = 0; x < dest_uv_width; x++) {
+          d_off = y * dest_uv_stride + x * 2;
+          s_off = x * src_uv_stride + (src_uv_width - 1 - y) * 2;
+          d[d_off] = s[s_off];
+          d[d_off + 1] = s[s_off + 1];
+        }
+      }
+      break;
+    case GST_VIDEO_FLIP_METHOD_180:
+      /* Flip Y */
+      s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
+      d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
+      for (y = 0; y < dest_y_height; y++) {
+        for (x = 0; x < dest_y_width; x++) {
+          d[y * dest_y_stride + x] =
+              s[(src_y_height - 1 - y) * src_y_stride + (src_y_width - 1 - x)];
+        }
+      }
+      /* Flip UV */
+      s = GST_VIDEO_FRAME_PLANE_DATA (src, 1);
+      d = GST_VIDEO_FRAME_PLANE_DATA (dest, 1);
+      for (y = 0; y < dest_uv_height; y++) {
+        for (x = 0; x < dest_uv_width; x++) {
+          d_off = y * dest_uv_stride + x * 2;
+          s_off = (src_uv_height - 1 - y) * src_uv_stride + (src_uv_width - 1 -
+              x) * 2;
+          d[d_off] = s[s_off];
+          d[d_off + 1] = s[s_off + 1];
+        }
+      }
+      break;
+    case GST_VIDEO_FLIP_METHOD_HORIZ:
+      /* Flip Y */
+      s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
+      d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
+      for (y = 0; y < dest_y_height; y++) {
+        for (x = 0; x < dest_y_width; x++) {
+          d[y * dest_y_stride + x] =
+              s[y * src_y_stride + (src_y_width - 1 - x)];
+        }
+      }
+      /* Flip UV */
+      s = GST_VIDEO_FRAME_PLANE_DATA (src, 1);
+      d = GST_VIDEO_FRAME_PLANE_DATA (dest, 1);
+      for (y = 0; y < dest_uv_height; y++) {
+        for (x = 0; x < dest_uv_width; x++) {
+          d_off = y * dest_uv_stride + x * 2;
+          s_off = y * src_uv_stride + (src_uv_width - 1 - x) * 2;
+          d[d_off] = s[s_off];
+          d[d_off + 1] = s[s_off + 1];
+        }
+      }
+      break;
+    case GST_VIDEO_FLIP_METHOD_VERT:
+      /* Flip Y */
+      s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
+      d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
+      for (y = 0; y < dest_y_height; y++) {
+        for (x = 0; x < dest_y_width; x++) {
+          d[y * dest_y_stride + x] =
+              s[(src_y_height - 1 - y) * src_y_stride + x];
+        }
+      }
+      /* Flip UV */
+      s = GST_VIDEO_FRAME_PLANE_DATA (src, 1);
+      d = GST_VIDEO_FRAME_PLANE_DATA (dest, 1);
+      for (y = 0; y < dest_uv_height; y++) {
+        for (x = 0; x < dest_uv_width; x++) {
+          d_off = y * dest_uv_stride + x * 2;
+          s_off = (src_uv_height - 1 - y) * src_uv_stride + x * 2;
+          d[d_off] = s[s_off];
+          d[d_off + 1] = s[s_off + 1];
+        }
+      }
+      break;
+    case GST_VIDEO_FLIP_METHOD_TRANS:
+      /* Flip Y */
+      s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
+      d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
+      for (y = 0; y < dest_y_height; y++) {
+        for (x = 0; x < dest_y_width; x++) {
+          d[y * dest_y_stride + x] = s[x * src_y_stride + y];
+        }
+      }
+      /* Flip UV */
+      s = GST_VIDEO_FRAME_PLANE_DATA (src, 1);
+      d = GST_VIDEO_FRAME_PLANE_DATA (dest, 1);
+      for (y = 0; y < dest_uv_height; y++) {
+        for (x = 0; x < dest_uv_width; x++) {
+          d_off = y * dest_uv_stride + x * 2;
+          s_off = x * src_uv_stride + y * 2;
+          d[d_off] = s[s_off];
+          d[d_off + 1] = s[s_off + 1];
+        }
+      }
+    case GST_VIDEO_FLIP_METHOD_OTHER:
+      /* Flip Y */
+      s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
+      d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
+      for (y = 0; y < dest_y_height; y++) {
+        for (x = 0; x < dest_y_width; x++) {
+          d[y * dest_y_stride + x] =
+              s[(src_y_height - 1 - x) * src_y_stride + (src_y_width - 1 - y)];
+        }
+      }
+      /* Flip UV */
+      s = GST_VIDEO_FRAME_PLANE_DATA (src, 1);
+      d = GST_VIDEO_FRAME_PLANE_DATA (dest, 1);
+      for (y = 0; y < dest_uv_height; y++) {
+        for (x = 0; x < dest_uv_width; x++) {
+          d_off = y * dest_uv_stride + x * 2;
+          s_off = (src_uv_height - 1 - x) * src_uv_stride + (src_uv_width - 1 -
+              y) * 2;
+          d[d_off] = s[s_off];
+          d[d_off + 1] = s[s_off + 1];
+        }
+      }
+      break;
+    case GST_VIDEO_FLIP_METHOD_IDENTITY:
+      g_assert_not_reached ();
+      break;
+    default:
+      g_assert_not_reached ();
+      break;
+  }
+}
+
 static void
 gst_video_flip_packed_simple (GstVideoFlip * videoflip, GstVideoFrame * dest,
     const GstVideoFrame * src)
@@ -815,8 +1015,15 @@ gst_video_flip_set_info (GstVideoFilter * vfilter, GstCaps * incaps,
     case GST_VIDEO_FORMAT_BGRx:
     case GST_VIDEO_FORMAT_RGB:
     case GST_VIDEO_FORMAT_BGR:
+    case GST_VIDEO_FORMAT_GRAY8:
+    case GST_VIDEO_FORMAT_GRAY16_BE:
+    case GST_VIDEO_FORMAT_GRAY16_LE:
       vf->process = gst_video_flip_packed_simple;
       break;
+    case GST_VIDEO_FORMAT_NV12:
+    case GST_VIDEO_FORMAT_NV21:
+      vf->process = gst_video_flip_semi_planar_yuv;
+      break;
     default:
       break;
   }
diff --git a/gst/videofilter/gstvideoflip.h b/gst/videofilter/gstvideoflip.h
index dac4bdb5c..e868b0321 100644
--- a/gst/videofilter/gstvideoflip.h
+++ b/gst/videofilter/gstvideoflip.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VIDEO_FLIP_H__
diff --git a/gst/videofilter/gstvideomedian.c b/gst/videofilter/gstvideomedian.c
index aaf765eaa..a78939a9d 100644
--- a/gst/videofilter/gstvideomedian.c
+++ b/gst/videofilter/gstvideomedian.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/videofilter/gstvideomedian.h b/gst/videofilter/gstvideomedian.h
index a9eee531a..087767200 100644
--- a/gst/videofilter/gstvideomedian.h
+++ b/gst/videofilter/gstvideomedian.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/videofilter/gstvideotemplate.c b/gst/videofilter/gstvideotemplate.c
index 4e15dccb9..6cd70441d 100644
--- a/gst/videofilter/gstvideotemplate.c
+++ b/gst/videofilter/gstvideotemplate.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/gst/videofilter/plugin.c b/gst/videofilter/plugin.c
index 306c3a325..da736dc85 100644
--- a/gst/videofilter/plugin.c
+++ b/gst/videofilter/plugin.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/videomixer/Makefile.in b/gst/videomixer/Makefile.in
index 8cf225b17..86965c7ed 100644
--- a/gst/videomixer/Makefile.in
+++ b/gst/videomixer/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -39,23 +38,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -75,8 +102,9 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak
+DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS) \
+	README
 subdir = gst/videomixer
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -84,7 +112,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-gcc-inline-assembly.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 \
@@ -162,10 +189,23 @@ libgstvideomixer_la_OBJECTS = $(am_libgstvideomixer_la_OBJECTS) \
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstvideomixer_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) \
 	$(libgstvideomixer_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -178,20 +218,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstvideomixer_la_SOURCES) \
 	$(nodist_libgstvideomixer_la_SOURCES)
 DIST_SOURCES = $(libgstvideomixer_la_SOURCES)
@@ -201,6 +237,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -369,6 +422,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -597,6 +651,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -623,12 +678,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstvideomixer.la: $(libgstvideomixer_la_OBJECTS) $(libgstvideomixer_la_DEPENDENCIES) $(EXTRA_libgstvideomixer_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstvideomixer_la_LINK) -rpath $(plugindir) $(libgstvideomixer_la_OBJECTS) $(libgstvideomixer_la_LIBADD) $(LIBS)
 
@@ -690,26 +748,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -721,15 +768,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -738,6 +781,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -888,19 +946,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-local clean-pluginLTLIBRARIES 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-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-pluginLTLIBRARIES 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 \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-local clean-pluginLTLIBRARIES \
+	cscopelist-am ctags ctags-am 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-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-pluginLTLIBRARIES \
+	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 tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
 
diff --git a/gst/videomixer/blend.c b/gst/videomixer/blend.c
index 66461f223..aa5aa516c 100644
--- a/gst/videomixer/blend.c
+++ b/gst/videomixer/blend.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/videomixer/blend.h b/gst/videomixer/blend.h
index ba7033558..7d16c5620 100644
--- a/gst/videomixer/blend.h
+++ b/gst/videomixer/blend.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __BLEND_H__
diff --git a/gst/videomixer/blendorc-dist.c b/gst/videomixer/blendorc-dist.c
index 42712510f..d6def591c 100644
--- a/gst/videomixer/blendorc-dist.c
+++ b/gst/videomixer/blendorc-dist.c
@@ -215,6 +215,15 @@ video_mixer_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95, 111,
+        114, 99, 95, 115, 112, 108, 97, 116, 95, 117, 51, 50, 11, 4, 4, 16,
+        4, 112, 0, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_mixer_orc_splat_u32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_mixer_orc_splat_u32");
       orc_program_set_backup_function (p, _backup_video_mixer_orc_splat_u32);
@@ -223,6 +232,7 @@ video_mixer_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
 
       orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -311,6 +321,15 @@ video_mixer_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1,
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 26, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95, 111,
+        114, 99, 95, 109, 101, 109, 99, 112, 121, 95, 117, 51, 50, 11, 4, 4,
+        12, 4, 4, 112, 0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_mixer_orc_memcpy_u32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_mixer_orc_memcpy_u32");
       orc_program_set_backup_function (p, _backup_video_mixer_orc_memcpy_u32);
@@ -319,6 +338,7 @@ video_mixer_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1,
 
       orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -468,6 +488,17 @@ video_mixer_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride,
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 24, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
+        111, 114, 99, 95, 98, 108, 101, 110, 100, 95, 117, 56, 11, 1, 1, 12,
+        1, 1, 14, 1, 8, 0, 0, 0, 16, 2, 20, 2, 20, 2, 150, 32,
+        0, 150, 33, 4, 98, 33, 33, 32, 89, 33, 33, 24, 93, 32, 32, 16,
+        70, 33, 32, 33, 95, 33, 33, 16, 160, 0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_mixer_orc_blend_u8);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_mixer_orc_blend_u8");
@@ -495,6 +526,7 @@ video_mixer_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride,
           ORC_VAR_D1);
       orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T2,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -531,7 +563,11 @@ video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union64 var39;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var40;
+#else
   orc_union32 var40;
+#endif
   orc_union32 var41;
   orc_union16 var42;
   orc_int8 var43;
@@ -652,7 +688,11 @@ _backup_video_mixer_orc_blend_argb (OrcExecutor * ORC_RESTRICT ex)
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union64 var39;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var40;
+#else
   orc_union32 var40;
+#endif
   orc_union32 var41;
   orc_union16 var42;
   orc_int8 var43;
@@ -776,6 +816,21 @@ video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 26, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
+        111, 114, 99, 95, 98, 108, 101, 110, 100, 95, 97, 114, 103, 98, 11, 4,
+        4, 12, 4, 4, 14, 4, 255, 0, 0, 0, 14, 4, 8, 0, 0, 0,
+        16, 2, 20, 4, 20, 2, 20, 1, 20, 4, 20, 8, 20, 8, 20, 8,
+        113, 32, 4, 163, 33, 32, 157, 34, 33, 152, 35, 34, 21, 2, 150, 38,
+        35, 21, 2, 89, 38, 38, 24, 21, 2, 95, 38, 38, 17, 21, 2, 150,
+        37, 32, 113, 32, 0, 21, 2, 150, 36, 32, 21, 2, 98, 37, 37, 36,
+        21, 2, 89, 37, 37, 38, 21, 2, 80, 37, 37, 21, 2, 70, 36, 36,
+        37, 21, 2, 157, 32, 36, 123, 32, 32, 16, 128, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_mixer_orc_blend_argb);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_mixer_orc_blend_argb");
@@ -827,6 +882,7 @@ video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
           ORC_VAR_D1);
       orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -863,7 +919,11 @@ video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union64 var40;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var41;
+#else
   orc_union32 var41;
+#endif
   orc_union32 var42;
   orc_union32 var43;
   orc_union16 var44;
@@ -987,7 +1047,11 @@ _backup_video_mixer_orc_blend_bgra (OrcExecutor * ORC_RESTRICT ex)
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union64 var40;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var41;
+#else
   orc_union32 var41;
+#endif
   orc_union32 var42;
   orc_union32 var43;
   orc_union16 var44;
@@ -1114,6 +1178,22 @@ video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 26, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
+        111, 114, 99, 95, 98, 108, 101, 110, 100, 95, 98, 103, 114, 97, 11, 4,
+        4, 12, 4, 4, 14, 4, 0, 0, 0, 255, 14, 4, 24, 0, 0, 0,
+        14, 4, 8, 0, 0, 0, 16, 2, 20, 4, 20, 4, 20, 2, 20, 1,
+        20, 4, 20, 8, 20, 8, 20, 8, 113, 32, 4, 126, 33, 32, 17, 163,
+        34, 33, 157, 35, 34, 152, 36, 35, 21, 2, 150, 39, 36, 21, 2, 89,
+        39, 39, 24, 21, 2, 95, 39, 39, 18, 21, 2, 150, 38, 32, 113, 32,
+        0, 21, 2, 150, 37, 32, 21, 2, 98, 38, 38, 37, 21, 2, 89, 38,
+        38, 39, 21, 2, 80, 38, 38, 21, 2, 70, 37, 37, 38, 21, 2, 157,
+        32, 37, 123, 32, 32, 16, 128, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_mixer_orc_blend_bgra);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_mixer_orc_blend_bgra");
@@ -1169,6 +1249,7 @@ video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
           ORC_VAR_D1);
       orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1205,8 +1286,16 @@ video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union64 var41;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var42;
+#else
   orc_union32 var42;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var43;
+#else
   orc_union32 var43;
+#endif
   orc_union32 var44;
   orc_union16 var45;
   orc_int8 var46;
@@ -1403,8 +1492,16 @@ _backup_video_mixer_orc_overlay_argb (OrcExecutor * ORC_RESTRICT ex)
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union64 var41;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var42;
+#else
   orc_union32 var42;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var43;
+#else
   orc_union32 var43;
+#endif
   orc_union32 var44;
   orc_union16 var45;
   orc_int8 var46;
@@ -1604,6 +1701,27 @@ video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 28, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
+        111, 114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 97, 114, 103,
+            98,
+        11, 4, 4, 12, 4, 4, 14, 4, 255, 255, 255, 255, 14, 4, 255, 0,
+        0, 0, 14, 4, 0, 255, 255, 255, 14, 4, 8, 0, 0, 0, 16, 2,
+        20, 4, 20, 2, 20, 1, 20, 8, 20, 8, 20, 8, 20, 4, 20, 8,
+        20, 8, 113, 32, 4, 163, 33, 32, 157, 34, 33, 152, 38, 34, 21, 2,
+        150, 35, 38, 21, 2, 89, 35, 35, 24, 21, 2, 95, 35, 35, 19, 21,
+        2, 150, 40, 32, 21, 2, 89, 40, 40, 35, 115, 38, 16, 21, 2, 150,
+        36, 38, 21, 2, 98, 36, 36, 35, 113, 32, 0, 163, 33, 32, 157, 34,
+        33, 152, 38, 34, 21, 2, 150, 37, 38, 21, 2, 89, 37, 37, 36, 21,
+        2, 80, 37, 37, 21, 2, 150, 39, 32, 21, 2, 89, 39, 39, 37, 21,
+        2, 70, 39, 39, 40, 21, 2, 70, 37, 37, 35, 21, 2, 81, 39, 39,
+        37, 21, 2, 157, 32, 39, 106, 32, 32, 18, 21, 2, 157, 38, 37, 106,
+        38, 38, 17, 123, 32, 32, 38, 128, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_mixer_orc_overlay_argb);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_mixer_orc_overlay_argb");
@@ -1685,6 +1803,7 @@ video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
           ORC_VAR_D1);
       orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1721,8 +1840,16 @@ video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union64 var42;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var43;
+#else
   orc_union32 var43;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var44;
+#else
   orc_union32 var44;
+#endif
   orc_union32 var45;
   orc_union32 var46;
   orc_union16 var47;
@@ -1925,8 +2052,16 @@ _backup_video_mixer_orc_overlay_bgra (OrcExecutor * ORC_RESTRICT ex)
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union64 var42;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var43;
+#else
   orc_union32 var43;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var44;
+#else
   orc_union32 var44;
+#endif
   orc_union32 var45;
   orc_union32 var46;
   orc_union16 var47;
@@ -2132,6 +2267,28 @@ video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 28, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
+        111, 114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 98, 103, 114,
+            97,
+        11, 4, 4, 12, 4, 4, 14, 4, 255, 255, 255, 255, 14, 4, 0, 0,
+        0, 255, 14, 4, 255, 255, 255, 0, 14, 4, 24, 0, 0, 0, 14, 4,
+        8, 0, 0, 0, 16, 2, 20, 4, 20, 4, 20, 2, 20, 1, 20, 8,
+        20, 8, 20, 8, 20, 4, 20, 8, 20, 8, 113, 32, 4, 126, 33, 32,
+        19, 163, 34, 33, 157, 35, 34, 152, 39, 35, 21, 2, 150, 36, 39, 21,
+        2, 89, 36, 36, 24, 21, 2, 95, 36, 36, 20, 21, 2, 150, 41, 32,
+        21, 2, 89, 41, 41, 36, 115, 39, 16, 21, 2, 150, 37, 39, 21, 2,
+        98, 37, 37, 36, 113, 32, 0, 126, 33, 32, 19, 163, 34, 33, 157, 35,
+        34, 152, 39, 35, 21, 2, 150, 38, 39, 21, 2, 89, 38, 38, 37, 21,
+        2, 80, 38, 38, 21, 2, 150, 40, 32, 21, 2, 89, 40, 40, 38, 21,
+        2, 70, 40, 40, 41, 21, 2, 70, 38, 38, 36, 21, 2, 81, 40, 40,
+        38, 21, 2, 157, 32, 40, 106, 32, 32, 18, 21, 2, 157, 39, 38, 106,
+        39, 39, 17, 123, 32, 32, 39, 128, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_mixer_orc_overlay_bgra);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_mixer_orc_overlay_bgra");
@@ -2219,6 +2376,7 @@ video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
           ORC_VAR_D1);
       orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
diff --git a/gst/videomixer/videomixer2.c b/gst/videomixer/videomixer2.c
index aa11051d9..464dc48c8 100644
--- a/gst/videomixer/videomixer2.c
+++ b/gst/videomixer/videomixer2.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -317,9 +317,11 @@ gst_videomixer2_pad_sink_setcaps (GstPad * pad, GstObject * parent,
     if (GST_VIDEO_INFO_FORMAT (&mix->info) != GST_VIDEO_INFO_FORMAT (&info) ||
         GST_VIDEO_INFO_PAR_N (&mix->info) != GST_VIDEO_INFO_PAR_N (&info) ||
         GST_VIDEO_INFO_PAR_D (&mix->info) != GST_VIDEO_INFO_PAR_D (&info)) {
-      GST_ERROR_OBJECT (pad, "Caps not compatible with other pads' caps");
       GST_VIDEO_MIXER2_UNLOCK (mix);
-      goto beach;
+      GST_DEBUG_OBJECT (pad, "got input caps %" GST_PTR_FORMAT ", but "
+          "current caps are %" GST_PTR_FORMAT, caps, mix->current_caps);
+      gst_pad_push_event (pad, gst_event_new_reconfigure ());
+      return FALSE;
     }
   }
 
@@ -641,7 +643,7 @@ gst_videomixer2_reset (GstVideoMixer2 * mix)
   }
 
   mix->newseg_pending = TRUE;
-  mix->flush_stop_pending = FALSE;
+  g_atomic_int_set (&mix->flush_stop_pending, FALSE);
 }
 
 /*  1 == OK
@@ -707,21 +709,6 @@ gst_videomixer2_fill_queues (GstVideoMixer2 * mix,
       g_assert (start_time != -1 && end_time != -1);
       end_time += start_time;   /* convert from duration to position */
 
-      if (mixcol->end_time != -1 && mixcol->end_time > end_time) {
-        GST_WARNING_OBJECT (pad, "Buffer from the past, dropping");
-        if (buf == mixcol->queued) {
-          gst_buffer_unref (buf);
-          gst_buffer_replace (&mixcol->queued, NULL);
-        } else {
-          gst_buffer_unref (buf);
-          buf = gst_collect_pads_pop (mix->collect, &mixcol->collect);
-          gst_buffer_unref (buf);
-        }
-
-        need_more_data = TRUE;
-        continue;
-      }
-
       /* Check if it's inside the segment */
       if (start_time >= segment->stop || end_time < segment->start) {
         GST_DEBUG_OBJECT (pad, "Buffer outside the segment");
@@ -755,6 +742,21 @@ gst_videomixer2_fill_queues (GstVideoMixer2 * mix,
         end_time *= ABS (mix->segment.rate);
       }
 
+      if (mixcol->end_time != -1 && mixcol->end_time > end_time) {
+        GST_DEBUG_OBJECT (pad, "Buffer from the past, dropping");
+        if (buf == mixcol->queued) {
+          gst_buffer_unref (buf);
+          gst_buffer_replace (&mixcol->queued, NULL);
+        } else {
+          gst_buffer_unref (buf);
+          buf = gst_collect_pads_pop (mix->collect, &mixcol->collect);
+          gst_buffer_unref (buf);
+        }
+
+        need_more_data = TRUE;
+        continue;
+      }
+
       if (end_time >= output_start_time && start_time < output_end_time) {
         GST_DEBUG_OBJECT (pad,
             "Taking new buffer with start time %" GST_TIME_FORMAT,
@@ -964,15 +966,36 @@ gst_videomixer2_collected (GstCollectPads * pads, GstVideoMixer2 * mix)
     gst_pad_push_event (mix->srcpad, gst_event_new_flush_stop (TRUE));
   }
 
+  if (mix->send_stream_start) {
+    gchar s_id[32];
+
+    /* stream-start (FIXME: create id based on input ids) */
+    g_snprintf (s_id, sizeof (s_id), "mix-%08x", g_random_int ());
+    if (!gst_pad_push_event (mix->srcpad, gst_event_new_stream_start (s_id))) {
+      GST_WARNING_OBJECT (mix->srcpad, "Sending stream start event failed");
+    }
+    mix->send_stream_start = FALSE;
+  }
+
+  if (mix->send_caps) {
+    if (!gst_pad_push_event (mix->srcpad,
+            gst_event_new_caps (mix->current_caps))) {
+      GST_WARNING_OBJECT (mix->srcpad, "Sending caps event failed");
+    }
+    mix->send_caps = FALSE;
+  }
+
   GST_VIDEO_MIXER2_LOCK (mix);
 
   if (mix->newseg_pending) {
     GST_DEBUG_OBJECT (mix, "Sending NEWSEGMENT event");
+    GST_VIDEO_MIXER2_UNLOCK (mix);
     if (!gst_pad_push_event (mix->srcpad,
             gst_event_new_segment (&mix->segment))) {
       ret = GST_FLOW_ERROR;
-      goto done;
+      goto done_unlocked;
     }
+    GST_VIDEO_MIXER2_LOCK (mix);
     mix->newseg_pending = FALSE;
   }
 
@@ -983,15 +1006,16 @@ gst_videomixer2_collected (GstCollectPads * pads, GstVideoMixer2 * mix)
 
   if (output_start_time >= mix->segment.stop) {
     GST_DEBUG_OBJECT (mix, "Segment done");
+    GST_VIDEO_MIXER2_UNLOCK (mix);
     gst_pad_push_event (mix->srcpad, gst_event_new_eos ());
     ret = GST_FLOW_EOS;
-    goto done;
+    goto done_unlocked;
   }
 
   output_end_time =
       mix->ts_offset + gst_util_uint64_scale (mix->nframes + 1,
       GST_SECOND * GST_VIDEO_INFO_FPS_D (&mix->info),
-      GST_VIDEO_INFO_FPS_N (&mix->info));
+      GST_VIDEO_INFO_FPS_N (&mix->info)) + mix->segment.start;
   if (mix->segment.stop != -1)
     output_end_time = MIN (output_end_time, mix->segment.stop);
 
@@ -1002,10 +1026,11 @@ gst_videomixer2_collected (GstCollectPads * pads, GstVideoMixer2 * mix)
     ret = GST_FLOW_OK;
     goto done;
   } else if (res == -1) {
+    GST_VIDEO_MIXER2_UNLOCK (mix);
     GST_DEBUG_OBJECT (mix, "All sinkpads are EOS -- forwarding");
     gst_pad_push_event (mix->srcpad, gst_event_new_eos ());
     ret = GST_FLOW_EOS;
-    goto done;
+    goto done_unlocked;
   } else if (res == -2) {
     GST_ERROR_OBJECT (mix, "Error collecting buffers");
     ret = GST_FLOW_ERROR;
@@ -1049,29 +1074,31 @@ gst_videomixer2_collected (GstCollectPads * pads, GstVideoMixer2 * mix)
         GST_TIME_ARGS (GST_BUFFER_DURATION (outbuf)));
     ret = gst_pad_push (mix->srcpad, outbuf);
   }
-  GST_VIDEO_MIXER2_LOCK (mix);
+  goto done_unlocked;
 
 done:
   GST_VIDEO_MIXER2_UNLOCK (mix);
 
+done_unlocked:
   return ret;
 }
 
 static gboolean
 gst_videomixer2_query_caps (GstPad * pad, GstObject * parent, GstQuery * query)
 {
-  GstCaps *filter, *caps;
-  GstVideoMixer2 *mix = GST_VIDEO_MIXER2 (parent);
+  GstCaps *filter;
   GstStructure *s;
   gint n;
+  GstVideoMixer2 *mix = GST_VIDEO_MIXER2 (parent);
+  GstCaps *caps = NULL;
 
   gst_query_parse_caps (query, &filter);
 
-  if (GST_VIDEO_INFO_FORMAT (&mix->info) != GST_VIDEO_FORMAT_UNKNOWN) {
-    caps = gst_pad_get_current_caps (mix->srcpad);
-  } else {
+  if (GST_VIDEO_INFO_FORMAT (&mix->info) != GST_VIDEO_FORMAT_UNKNOWN)
+    caps = gst_caps_ref (mix->current_caps);
+
+  if (caps == NULL)
     caps = gst_pad_get_pad_template_caps (mix->srcpad);
-  }
 
   caps = gst_caps_make_writable (caps);
 
@@ -1091,6 +1118,22 @@ gst_videomixer2_query_caps (GstPad * pad, GstObject * parent, GstQuery * query)
   return TRUE;
 }
 
+/* FIXME, the duration query should reflect how long you will produce
+ * data, that is the amount of stream time until you will emit EOS.
+ *
+ * For synchronized mixing this is always the max of all the durations
+ * of upstream since we emit EOS when all of them finished.
+ *
+ * We don't do synchronized mixing so this really depends on where the
+ * streams where punched in and what their relative offsets are against
+ * eachother which we can get from the first timestamps we see.
+ *
+ * When we add a new stream (or remove a stream) the duration might
+ * also become invalid again and we need to post a new DURATION
+ * message to notify this fact to the parent.
+ * For now we take the max of all the upstream elements so the simple
+ * cases work at least somewhat.
+ */
 static gboolean
 gst_videomixer2_query_duration (GstVideoMixer2 * mix, GstQuery * query)
 {
@@ -1386,7 +1429,7 @@ gst_videomixer2_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
          * forwarding the seek upstream or from gst_videomixer_collected,
          * whichever happens first.
          */
-        mix->flush_stop_pending = TRUE;
+        g_atomic_int_set (&mix->flush_stop_pending, TRUE);
       }
 
       GST_COLLECT_PADS_STREAM_UNLOCK (mix->collect);
@@ -1394,13 +1437,6 @@ gst_videomixer2_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
       gst_videomixer2_reset_qos (mix);
 
       result = gst_videomixer2_push_sink_event (mix, event);
-
-      if (g_atomic_int_compare_and_exchange (&mix->flush_stop_pending, TRUE,
-              FALSE)) {
-        GST_DEBUG_OBJECT (mix, "pending flush stop");
-        gst_pad_push_event (mix->srcpad, gst_event_new_flush_stop (TRUE));
-      }
-
       break;
     }
     case GST_EVENT_NAVIGATION:
@@ -1599,9 +1635,13 @@ gst_videomixer2_src_setcaps (GstPad * pad, GstVideoMixer2 * mix, GstCaps * caps)
   }
   GST_VIDEO_MIXER2_UNLOCK (mix);
 
-  ret = gst_pad_set_caps (pad, caps);
-done:
+  if (mix->current_caps == NULL ||
+      gst_caps_is_equal (caps, mix->current_caps) == FALSE) {
+    gst_caps_replace (&mix->current_caps, caps);
+    mix->send_caps = TRUE;
+  }
 
+done:
   return ret;
 }
 
@@ -1664,7 +1704,7 @@ gst_videomixer2_sink_event (GstCollectPads * pads, GstCollectData * cdata,
     GstEvent * event, GstVideoMixer2 * mix)
 {
   GstVideoMixer2Pad *pad = GST_VIDEO_MIXER2_PAD (cdata->pad);
-  gboolean ret = TRUE;
+  gboolean ret = TRUE, discard = FALSE;
 
   GST_DEBUG_OBJECT (pad, "Got %s event on pad %s:%s",
       GST_EVENT_TYPE_NAME (event), GST_DEBUG_PAD_NAME (pad));
@@ -1689,15 +1729,29 @@ gst_videomixer2_sink_event (GstCollectPads * pads, GstCollectData * cdata,
       g_assert (seg.format == GST_FORMAT_TIME);
       break;
     }
+    case GST_EVENT_FLUSH_START:
+      g_atomic_int_set (&mix->flush_stop_pending, TRUE);
+      ret = gst_collect_pads_event_default (pads, cdata, event, discard);
+      event = NULL;
+      break;
     case GST_EVENT_FLUSH_STOP:
       mix->newseg_pending = TRUE;
-      mix->flush_stop_pending = FALSE;
+      if (g_atomic_int_compare_and_exchange (&mix->flush_stop_pending, TRUE,
+              FALSE)) {
+        GST_DEBUG_OBJECT (pad, "forwarding flush stop");
+        ret = gst_collect_pads_event_default (pads, cdata, event, discard);
+        event = NULL;
+      } else {
+        discard = TRUE;
+        GST_DEBUG_OBJECT (pad, "eating flush stop");
+      }
+
+      /* FIXME Should we reset in case we were not awaiting a flush stop? */
       gst_videomixer2_reset_qos (mix);
       gst_buffer_replace (&pad->mixcol->buffer, NULL);
       pad->mixcol->start_time = -1;
       pad->mixcol->end_time = -1;
 
-      gst_segment_init (&mix->segment, GST_FORMAT_TIME);
       mix->segment.position = -1;
       mix->ts_offset = 0;
       mix->nframes = 0;
@@ -1707,7 +1761,7 @@ gst_videomixer2_sink_event (GstCollectPads * pads, GstCollectData * cdata,
   }
 
   if (event != NULL)
-    return gst_collect_pads_event_default (pads, cdata, event, FALSE);
+    return gst_collect_pads_event_default (pads, cdata, event, discard);
 
   return ret;
 }
@@ -1758,6 +1812,10 @@ gst_videomixer2_change_state (GstElement * element, GstStateChange transition)
 
   switch (transition) {
     case GST_STATE_CHANGE_READY_TO_PAUSED:
+      mix->send_stream_start = TRUE;
+      mix->send_caps = TRUE;
+      gst_segment_init (&mix->segment, GST_FORMAT_TIME);
+      gst_caps_replace (&mix->current_caps, NULL);
       GST_LOG_OBJECT (mix, "starting collectpads");
       gst_collect_pads_start (mix->collect);
       break;
@@ -1899,6 +1957,14 @@ gst_videomixer2_finalize (GObject * o)
   G_OBJECT_CLASS (parent_class)->finalize (o);
 }
 
+static void
+gst_videomixer2_dispose (GObject * o)
+{
+  GstVideoMixer2 *mix = GST_VIDEO_MIXER2 (o);
+
+  gst_caps_replace (&mix->current_caps, NULL);
+}
+
 static void
 gst_videomixer2_get_property (GObject * object,
     guint prop_id, GValue * value, GParamSpec * pspec)
@@ -1977,6 +2043,7 @@ gst_videomixer2_class_init (GstVideoMixer2Class * klass)
   GstElementClass *gstelement_class = (GstElementClass *) klass;
 
   gobject_class->finalize = gst_videomixer2_finalize;
+  gobject_class->dispose = gst_videomixer2_dispose;
 
   gobject_class->get_property = gst_videomixer2_get_property;
   gobject_class->set_property = gst_videomixer2_set_property;
@@ -2023,6 +2090,7 @@ gst_videomixer2_init (GstVideoMixer2 * mix)
 
   mix->collect = gst_collect_pads_new ();
   mix->background = DEFAULT_BACKGROUND;
+  mix->current_caps = NULL;
 
   gst_collect_pads_set_function (mix->collect,
       (GstCollectPadsFunction) GST_DEBUG_FUNCPTR (gst_videomixer2_collected),
diff --git a/gst/videomixer/videomixer2.h b/gst/videomixer/videomixer2.h
index 92eef5308..b85325614 100644
--- a/gst/videomixer/videomixer2.h
+++ b/gst/videomixer/videomixer2.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
  
 #ifndef __GST_VIDEO_MIXER2_H__
@@ -92,6 +92,10 @@ struct _GstVideoMixer2
   /* Output caps */
   GstVideoInfo info;
 
+  /* current caps */
+  GstCaps *current_caps;
+  gboolean send_caps;
+
   gboolean newseg_pending;
   gboolean flush_stop_pending;
 
@@ -110,6 +114,8 @@ struct _GstVideoMixer2
   BlendFunction blend, overlay;
   FillCheckerFunction fill_checker;
   FillColorFunction fill_color;
+
+  gboolean send_stream_start;
 };
 
 struct _GstVideoMixer2Class
diff --git a/gst/videomixer/videomixer2pad.h b/gst/videomixer/videomixer2pad.h
index cd3442000..759bf9ee1 100644
--- a/gst/videomixer/videomixer2pad.h
+++ b/gst/videomixer/videomixer2pad.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
  
 #ifndef __GST_VIDEO_MIXER2_PAD_H__
diff --git a/gst/wavenc/Makefile.am b/gst/wavenc/Makefile.am
index 4bfdf504f..98d6f663e 100644
--- a/gst/wavenc/Makefile.am
+++ b/gst/wavenc/Makefile.am
@@ -3,11 +3,13 @@ plugin_LTLIBRARIES = libgstwavenc.la
 libgstwavenc_la_SOURCES = gstwavenc.c
 libgstwavenc_la_CFLAGS =  \
 	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(GST_BASE_CFLAGS) \
 	$(GST_CFLAGS)
 libgstwavenc_la_LIBADD = 	\
 	$(GST_PLUGINS_BASE_LIBS) \
 	-lgstaudio-@GST_API_VERSION@ \
 	-lgstriff-@GST_API_VERSION@ \
+	$(GST_BASE_LIBS) \
 	$(GST_LIBS)
 libgstwavenc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstwavenc_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
diff --git a/gst/wavenc/Makefile.in b/gst/wavenc/Makefile.in
index 05d4aad0e..146dac855 100644
--- a/gst/wavenc/Makefile.in
+++ b/gst/wavenc/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/wavenc
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -129,16 +155,29 @@ am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgstwavenc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1)
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libgstwavenc_la_OBJECTS = libgstwavenc_la-gstwavenc.lo
 libgstwavenc_la_OBJECTS = $(am_libgstwavenc_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstwavenc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstwavenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstwavenc_la_CFLAGS) $(CFLAGS) \
 	$(libgstwavenc_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstwavenc_la_SOURCES)
 DIST_SOURCES = $(libgstwavenc_la_SOURCES)
 am__can_run_installinfo = \
@@ -173,6 +208,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -341,6 +393,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -505,12 +558,14 @@ plugin_LTLIBRARIES = libgstwavenc.la
 libgstwavenc_la_SOURCES = gstwavenc.c
 libgstwavenc_la_CFLAGS = \
 	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(GST_BASE_CFLAGS) \
 	$(GST_CFLAGS)
 
 libgstwavenc_la_LIBADD = \
 	$(GST_PLUGINS_BASE_LIBS) \
 	-lgstaudio-@GST_API_VERSION@ \
 	-lgstriff-@GST_API_VERSION@ \
+	$(GST_BASE_LIBS) \
 	$(GST_LIBS)
 
 libgstwavenc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
@@ -550,6 +605,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -576,12 +632,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstwavenc.la: $(libgstwavenc_la_OBJECTS) $(libgstwavenc_la_DEPENDENCIES) $(EXTRA_libgstwavenc_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstwavenc_la_LINK) -rpath $(plugindir) $(libgstwavenc_la_OBJECTS) $(libgstwavenc_la_LIBADD) $(LIBS)
 
@@ -627,26 +686,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -658,15 +706,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -675,6 +719,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -819,19 +878,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/wavenc/gstwavenc.c b/gst/wavenc/gstwavenc.c
index eb80e89cc..6d64f1e44 100644
--- a/gst/wavenc/gstwavenc.c
+++ b/gst/wavenc/gstwavenc.c
@@ -15,14 +15,24 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  * 
  */
 /**
  * SECTION:element-wavenc
  *
- * Format a audio stream into the wav format.
+ * Format an audio stream into the wav format.
+ *
+ * <refsect2>
+ * <title>Example launch line</title>
+ * |[
+ * gst-launch-1.0 cdparanoiasrc mode=continuous ! queue ! audioconvert ! wavenc ! filesink location=cd.wav
+ * ]| Rip a whole audio CD into a single wav file, with the track table written into a CUE sheet inside the file
+ * |[
+ * gst-launch-1.0 cdparanoiasrc track=5 ! queue ! audioconvert ! wavenc ! filesink location=track5.wav
+ * ]| Rip track 5 of an audio CD into a single wav file containing unencoded raw audio samples.
+ * </refsect2>
  *
  */
 #ifdef HAVE_CONFIG_H
@@ -34,6 +44,7 @@
 
 #include <gst/audio/audio.h>
 #include <gst/riff/riff-media.h>
+#include <gst/base/gstbytewriter.h>
 
 GST_DEBUG_CATEGORY_STATIC (wavenc_debug);
 #define GST_CAT_DEFAULT wavenc_debug
@@ -69,6 +80,38 @@ struct wave_header
   struct chunk_struct data;
 };
 
+typedef struct
+{
+  /* Offset Size    Description   Value
+   * 0x00   4       ID            unique identification value
+   * 0x04   4       Position      play order position
+   * 0x08   4       Data Chunk ID RIFF ID of corresponding data chunk
+   * 0x0c   4       Chunk Start   Byte Offset of Data Chunk *
+   * 0x10   4       Block Start   Byte Offset to sample of First Channel
+   * 0x14   4       Sample Offset Byte Offset to sample byte of First Channel
+   */
+  guint32 id;
+  guint32 position;
+  guint8 data_chunk_id[4];
+  guint32 chunk_start;
+  guint32 block_start;
+  guint32 sample_offset;
+} GstWavEncCue;
+
+typedef struct
+{
+  /* Offset Size    Description     Value
+   * 0x00   4       Chunk ID        "labl" (0x6C61626C) or "note" (0x6E6F7465)
+   * 0x04   4       Chunk Data Size depends on contained text
+   * 0x08   4       Cue Point ID    0 - 0xFFFFFFFF
+   * 0x0c           Text
+   */
+  guint8 chunk_id[4];
+  guint32 chunk_data_size;
+  guint32 cue_point_id;
+  gchar *text;
+} GstWavEncLabl, GstWavEncNote;
+
 /* FIXME: mono doesn't produce correct files it seems, at least mplayer xruns */
 /* Max. of two channels, more channels need WAVFORMATEX with
  * channel layout, which we do not support yet */
@@ -113,7 +156,10 @@ static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",
     );
 
 #define gst_wavenc_parent_class parent_class
-G_DEFINE_TYPE (GstWavEnc, gst_wavenc, GST_TYPE_ELEMENT);
+G_DEFINE_TYPE_WITH_CODE (GstWavEnc, gst_wavenc, GST_TYPE_ELEMENT,
+    G_IMPLEMENT_INTERFACE (GST_TYPE_TAG_SETTER, NULL)
+    G_IMPLEMENT_INTERFACE (GST_TYPE_TOC_SETTER, NULL)
+    );
 
 static GstFlowReturn gst_wavenc_chain (GstPad * pad, GstObject * parent,
     GstBuffer * buf);
@@ -165,7 +211,7 @@ gst_wavenc_init (GstWavEnc * wavenc)
 #define WAV_HEADER_LEN 44
 
 static GstBuffer *
-gst_wavenc_create_header_buf (GstWavEnc * wavenc, guint audio_data_size)
+gst_wavenc_create_header_buf (GstWavEnc * wavenc)
 {
   struct wave_header wave;
   GstBuffer *buf;
@@ -177,25 +223,24 @@ gst_wavenc_create_header_buf (GstWavEnc * wavenc, guint audio_data_size)
   header = map.data;
   memset (header, 0, WAV_HEADER_LEN);
 
-  wave.common.wChannels = wavenc->channels;
-  wave.common.wBitsPerSample = wavenc->width;
-  wave.common.dwSamplesPerSec = wavenc->rate;
-
-  /* Fill out our wav-header with some information */
   memcpy (wave.riff.id, "RIFF", 4);
-  wave.riff.len = audio_data_size + WAV_HEADER_LEN - 8;
+  wave.riff.len =
+      wavenc->meta_length + wavenc->audio_length + WAV_HEADER_LEN - 8;
   memcpy (wave.riff.wav_id, "WAVE", 4);
 
   memcpy (wave.format.id, "fmt ", 4);
   wave.format.len = 16;
 
+  wave.common.wChannels = wavenc->channels;
+  wave.common.wBitsPerSample = wavenc->width;
+  wave.common.dwSamplesPerSec = wavenc->rate;
   wave.common.wFormatTag = wavenc->format;
   wave.common.wBlockAlign = (wavenc->width / 8) * wave.common.wChannels;
   wave.common.dwAvgBytesPerSec =
       wave.common.wBlockAlign * wave.common.dwSamplesPerSec;
 
   memcpy (wave.data.id, "data", 4);
-  wave.data.len = audio_data_size;
+  wave.data.len = wavenc->audio_length;
 
   memcpy (header, (char *) wave.riff.id, 4);
   GST_WRITE_UINT32_LE (header + 4, wave.riff.len);
@@ -217,7 +262,7 @@ gst_wavenc_create_header_buf (GstWavEnc * wavenc, guint audio_data_size)
 }
 
 static GstFlowReturn
-gst_wavenc_push_header (GstWavEnc * wavenc, guint audio_data_size)
+gst_wavenc_push_header (GstWavEnc * wavenc)
 {
   GstFlowReturn ret;
   GstBuffer *outbuf;
@@ -227,9 +272,10 @@ gst_wavenc_push_header (GstWavEnc * wavenc, guint audio_data_size)
   gst_segment_init (&segment, GST_FORMAT_BYTES);
   gst_pad_push_event (wavenc->srcpad, gst_event_new_segment (&segment));
 
-  GST_DEBUG_OBJECT (wavenc, "writing header with datasize=%u", audio_data_size);
+  GST_DEBUG_OBJECT (wavenc, "writing header, meta_size=%u, audio_size=%u",
+      wavenc->meta_length, wavenc->audio_length);
 
-  outbuf = gst_wavenc_create_header_buf (wavenc, audio_data_size);
+  outbuf = gst_wavenc_create_header_buf (wavenc);
   GST_BUFFER_OFFSET (outbuf) = 0;
 
   ret = gst_pad_push (wavenc->srcpad, outbuf);
@@ -313,291 +359,417 @@ fail:
   return FALSE;
 }
 
-#if 0
-static struct _maps
+static void
+gst_wavparse_tags_foreach (const GstTagList * tags, const gchar * tag,
+    gpointer data)
 {
-  const guint32 id;
-  const gchar *name;
-} maps[] = {
+  const struct
   {
-  GST_RIFF_INFO_IARL, "Location"}, {
-  GST_RIFF_INFO_IART, "Artist"}, {
-  GST_RIFF_INFO_ICMS, "Commissioner"}, {
-  GST_RIFF_INFO_ICMT, "Comment"}, {
-  GST_RIFF_INFO_ICOP, "Copyright"}, {
-  GST_RIFF_INFO_ICRD, "Creation Date"}, {
-  GST_RIFF_INFO_IENG, "Engineer"}, {
-  GST_RIFF_INFO_IGNR, "Genre"}, {
-  GST_RIFF_INFO_IKEY, "Keywords"}, {
-  GST_RIFF_INFO_INAM, "Title"}, {
-  GST_RIFF_INFO_IPRD, "Product"}, {
-  GST_RIFF_INFO_ISBJ, "Subject"}, {
-  GST_RIFF_INFO_ISFT, "Software"}, {
-  GST_RIFF_INFO_ITCH, "Technician"}
-};
-
-static guint32
-get_id_from_name (const char *name)
-{
-  int i;
-
-  for (i = 0; i < G_N_ELEMENTS (maps); i++) {
-    if (strcasecmp (maps[i].name, name) == 0) {
-      return maps[i].id;
+    guint32 fcc;
+    const gchar *tag;
+  } rifftags[] = {
+    {
+    GST_RIFF_INFO_IARL, GST_TAG_LOCATION}, {
+    GST_RIFF_INFO_IART, GST_TAG_ARTIST}, {
+    GST_RIFF_INFO_ICMT, GST_TAG_COMMENT}, {
+    GST_RIFF_INFO_ICOP, GST_TAG_COPYRIGHT}, {
+    GST_RIFF_INFO_ICRD, GST_TAG_DATE}, {
+    GST_RIFF_INFO_IGNR, GST_TAG_GENRE}, {
+    GST_RIFF_INFO_IKEY, GST_TAG_KEYWORDS}, {
+    GST_RIFF_INFO_INAM, GST_TAG_TITLE}, {
+    GST_RIFF_INFO_IPRD, GST_TAG_ALBUM}, {
+    GST_RIFF_INFO_ISBJ, GST_TAG_ALBUM_ARTIST}, {
+    GST_RIFF_INFO_ISFT, GST_TAG_ENCODER}, {
+    GST_RIFF_INFO_ISRC, GST_TAG_ISRC}, {
+    0, NULL}
+  };
+  gint n;
+  gchar *str = NULL;
+  GstByteWriter *bw = data;
+  for (n = 0; rifftags[n].fcc != 0; n++) {
+    if (!strcmp (rifftags[n].tag, tag)) {
+      if (rifftags[n].fcc == GST_RIFF_INFO_ICRD) {
+        GDate *date;
+        /* special case for the date tag */
+        if (gst_tag_list_get_date (tags, tag, &date)) {
+          str =
+              g_strdup_printf ("%04d:%02d:%02d", g_date_get_year (date),
+              g_date_get_month (date), g_date_get_day (date));
+          g_date_free (date);
+        }
+      } else {
+        gst_tag_list_get_string (tags, tag, &str);
+      }
+      if (str) {
+        gst_byte_writer_put_uint32_le (bw, rifftags[n].fcc);
+        gst_byte_writer_put_uint32_le (bw, GST_ROUND_UP_2 (strlen (str)));
+        gst_byte_writer_put_string (bw, str);
+        g_free (str);
+        str = NULL;
+        break;
+      }
     }
   }
 
-  return 0;
 }
 
-static void
-write_metadata (GstWavEnc * wavenc)
+static GstFlowReturn
+gst_wavenc_write_tags (GstWavEnc * wavenc)
 {
-  GString *info_str;
-  GList *props;
-  int total = 4;
-  gboolean need_to_write = FALSE;
-
-  info_str = g_string_new ("LIST    INFO");
-
-  for (props = wavenc->metadata->properties->properties; props;
-      props = props->next) {
-    GstPropsEntry *entry = props->data;
-    const char *name;
-    guint32 id;
-
-    name = gst_props_entry_get_name (entry);
-    id = get_id_from_name (name);
-    if (id != 0) {
-      const char *text;
-      char *tmp;
-      int len, req, i;
-
-      need_to_write = TRUE;     /* We've got at least one entry */
-
-      gst_props_entry_get_string (entry, &text);
-      len = strlen (text) + 1;  /* The length in the file includes the \0 */
-
-      tmp = g_strdup_printf ("%" GST_FOURCC_FORMAT "%d%s", GST_FOURCC_ARGS (id),
-          GUINT32_TO_LE (len), text);
-      g_string_append (info_str, tmp);
-      g_free (tmp);
-
-      /* Check that we end on an even boundary */
-      req = ((len + 8) + 1) & ~1;
-      for (i = 0; i < req - len; i++) {
-        g_string_append_printf (info_str, "%c", 0);
-      }
+  const GstTagList *user_tags;
+  GstTagList *tags;
+  guint size;
+  GstBuffer *buf;
+  GstByteWriter bw;
 
-      total += req;
-    }
+  g_return_val_if_fail (wavenc != NULL, GST_FLOW_OK);
+
+  user_tags = gst_tag_setter_get_tag_list (GST_TAG_SETTER (wavenc));
+  if ((!wavenc->tags) && (!user_tags)) {
+    GST_DEBUG_OBJECT (wavenc, "have no tags");
+    return GST_FLOW_OK;
   }
+  tags =
+      gst_tag_list_merge (user_tags, wavenc->tags,
+      gst_tag_setter_get_tag_merge_mode (GST_TAG_SETTER (wavenc)));
 
-  if (need_to_write) {
-    GstBuffer *buf;
+  GST_DEBUG_OBJECT (wavenc, "writing tags");
 
-    /* Now we've got all the strings together, we can write our length in */
-    info_str->str[4] = GUINT32_TO_LE (total);
+  gst_byte_writer_init_with_size (&bw, 1024, FALSE);
 
-    buf = gst_buffer_new ();
-    gst_buffer_set_data (buf, info_str->str, info_str->len);
+  /* add LIST INFO chunk */
+  gst_byte_writer_put_data (&bw, (const guint8 *) "LIST", 4);
+  gst_byte_writer_put_uint32_le (&bw, 0);
+  gst_byte_writer_put_data (&bw, (const guint8 *) "INFO", 4);
 
-    gst_pad_push (wavenc->srcpad, GST_DATA (buf));
-    g_string_free (info_str, FALSE);
-  }
+  /* add tags */
+  gst_tag_list_foreach (tags, gst_wavparse_tags_foreach, &bw);
+
+  /* sets real size of LIST INFO chunk */
+  size = gst_byte_writer_get_pos (&bw);
+  gst_byte_writer_set_pos (&bw, 4);
+  gst_byte_writer_put_uint32_le (&bw, size - 8);
+
+  gst_tag_list_unref (tags);
+
+  buf = gst_byte_writer_reset_and_get_buffer (&bw);
+  wavenc->meta_length += gst_buffer_get_size (buf);
+  return gst_pad_push (wavenc->srcpad, buf);
 }
 
-static void
-write_cues (GstWavEnc * wavenc)
+static gboolean
+gst_wavenc_is_cue_id_unique (guint32 id, GList * list)
 {
-  GString *cue_string, *point_string;
-  GstBuffer *buf;
-  GList *cue_list, *c;
-  int num_cues, total = 4;
+  GstWavEncCue *cue;
 
-  if (gst_props_get (wavenc->metadata->properties,
-          "cues", &cue_list, NULL) == FALSE) {
-    /* No cues, move along please, nothing to see here */
-    return;
+  while (list) {
+    cue = list->data;
+    if (cue->id == id)
+      return FALSE;
+    list = g_list_next (list);
   }
 
-  /* Space for 'cue ', chunk size and number of cuepoints */
-  cue_string = g_string_new ("cue         ");
-#define CUEPOINT_SIZE 24
-  point_string = g_string_sized_new (CUEPOINT_SIZE);
-
-  for (c = cue_list, num_cues = 0; c; c = c->next, num_cues++) {
-    GstCaps *cue_caps = c->data;
-    guint32 pos;
-
-    gst_props_get (cue_caps->properties, "position", &pos, NULL);
-
-    point_string->str[0] = GUINT32_TO_LE (num_cues + 1);
-    point_string->str[4] = GUINT32_TO_LE (0);
-    /* Fixme: There is probably a macro for this */
-    point_string->str[8] = 'd';
-    point_string->str[9] = 'a';
-    point_string->str[10] = 't';
-    point_string->str[11] = 'a';
-    point_string->str[12] = GUINT32_TO_LE (0);
-    point_string->str[16] = GUINT32_TO_LE (0);
-    point_string->str[20] = GUINT32_TO_LE (pos);
-
-    total += CUEPOINT_SIZE;
-  }
+  return TRUE;
+}
 
-  /* Set the length and chunk size */
-  cue_string->str[4] = GUINT32_TO_LE (total);
-  cue_string->str[8] = GUINT32_TO_LE (num_cues);
-  /* Stick the cue points on the end */
-  g_string_append (cue_string, point_string->str);
-  g_string_free (point_string, TRUE);
+static gboolean
+gst_wavenc_parse_cue (GstWavEnc * wavenc, guint32 id, GstTocEntry * entry)
+{
+  gint64 start;
+  GstWavEncCue *cue;
+
+  g_return_val_if_fail (entry != NULL, FALSE);
 
-  buf = gst_buffer_new ();
-  gst_buffer_set_data (buf, cue_string->str, cue_string->len);
+  gst_toc_entry_get_start_stop_times (entry, &start, NULL);
 
-  gst_pad_push (wavenc->srcpad, GST_DATA (buf));
-  g_string_free (cue_string, FALSE);
+  cue = g_new (GstWavEncCue, 1);
+  cue->id = id;
+  cue->position = gst_util_uint64_scale_round (start, wavenc->rate, GST_SECOND);
+  memcpy (cue->data_chunk_id, "data", 4);
+  cue->chunk_start = 0;
+  cue->block_start = 0;
+  cue->sample_offset = cue->position;
+  wavenc->cues = g_list_append (wavenc->cues, cue);
+
+  return TRUE;
 }
 
-static void
-write_labels (GstWavEnc * wavenc)
+static gboolean
+gst_wavenc_parse_labl (GstWavEnc * wavenc, guint32 id, GstTocEntry * entry)
 {
-  GstBuffer *buf;
-  GString *info_str;
-  int total = 4;
-  GList *caps;
-
-  info_str = g_string_new ("LIST    adtl");
-  if (gst_props_get (wavenc->metadata->properties, "ltxts", &caps, NULL)) {
-    GList *p;
-    int i;
-
-    for (p = caps, i = 1; p; p = p->next, i++) {
-      GstCaps *ltxt_caps = p->data;
-      GString *ltxt;
-      char *label = NULL;
-      int len, req, j;
-
-      gst_props_get (ltxt_caps->properties, "name", &label, NULL);
-      len = strlen (label);
-
-#define LTXT_SIZE 28
-      ltxt = g_string_new ("ltxt                        ");
-      ltxt->str[8] = GUINT32_TO_LE (i); /* Identifier */
-      ltxt->str[12] = GUINT32_TO_LE (0);        /* Sample Length */
-      ltxt->str[16] = GUINT32_TO_LE (0);        /* FIXME: Don't save the purpose yet */
-      ltxt->str[20] = GUINT16_TO_LE (0);        /* Country */
-      ltxt->str[22] = GUINT16_TO_LE (0);        /* Language */
-      ltxt->str[24] = GUINT16_TO_LE (0);        /* Dialect */
-      ltxt->str[26] = GUINT16_TO_LE (0);        /* Code Page */
-      g_string_append (ltxt, label);
-      g_free (label);
-
-      len += LTXT_SIZE;
-
-      ltxt->str[4] = GUINT32_TO_LE (len);
-
-      /* Check that we end on an even boundary */
-      req = ((len + 8) + 1) & ~1;
-      for (j = 0; j < req - len; j++) {
-        g_string_append_printf (ltxt, "%c", 0);
-      }
+  gchar *tag;
+  GstTagList *tags;
+  GstWavEncLabl *labl;
 
-      total += req;
+  g_return_val_if_fail (entry != NULL, FALSE);
 
-      g_string_append (info_str, ltxt->str);
-      g_string_free (ltxt, TRUE);
-    }
+  tags = gst_toc_entry_get_tags (entry);
+  if (!tags) {
+    GST_INFO_OBJECT (wavenc, "no tags for entry: %d", id);
+    return FALSE;
+  }
+  if (!gst_tag_list_get_string (tags, GST_TAG_TITLE, &tag)) {
+    GST_INFO_OBJECT (wavenc, "no title tag for entry: %d", id);
+    return FALSE;
   }
 
-  if (gst_props_get (wavenc->metadata->properties, "labels", &caps, NULL)) {
-    GList *p;
-    int i;
+  labl = g_new (GstWavEncLabl, 1);
+  memcpy (labl->chunk_id, "labl", 4);
+  labl->chunk_data_size = 4 + strlen (tag) + 1;
+  labl->cue_point_id = id;
+  labl->text = tag;
 
-    for (p = caps, i = 1; p; p = p->next, i++) {
-      GstCaps *labl_caps = p->data;
-      GString *labl;
-      char *label = NULL;
-      int len, req, j;
+  GST_DEBUG_OBJECT (wavenc, "got labl: '%s'", tag);
 
-      gst_props_get (labl_caps->properties, "name", &label, NULL);
-      len = strlen (label);
+  wavenc->labls = g_list_append (wavenc->labls, labl);
 
-#define LABL_SIZE 4
-      labl = g_string_new ("labl        ");
-      labl->str[8] = GUINT32_TO_LE (i);
-      g_string_append (labl, label);
-      g_free (label);
+  return TRUE;
+}
 
-      len += LABL_SIZE;
+static gboolean
+gst_wavenc_parse_note (GstWavEnc * wavenc, guint32 id, GstTocEntry * entry)
+{
+  gchar *tag;
+  GstTagList *tags;
+  GstWavEncNote *note;
+
+  g_return_val_if_fail (entry != NULL, FALSE);
+  tags = gst_toc_entry_get_tags (entry);
+  if (!tags) {
+    GST_INFO_OBJECT (wavenc, "no tags for entry: %d", id);
+    return FALSE;
+  }
+  if (!gst_tag_list_get_string (tags, GST_TAG_COMMENT, &tag)) {
+    GST_INFO_OBJECT (wavenc, "no comment tag for entry: %d", id);
+    return FALSE;
+  }
 
-      labl->str[4] = GUINT32_TO_LE (len);
+  note = g_new (GstWavEncNote, 1);
+  memcpy (note->chunk_id, "note", 4);
+  note->chunk_data_size = 4 + strlen (tag) + 1;
+  note->cue_point_id = id;
+  note->text = tag;
 
-      /* Check our size */
-      req = ((len + 8) + 1) & ~1;
-      for (j = 0; j < req - len; j++) {
-        g_string_append_printf (labl, "%c", 0);
-      }
+  GST_DEBUG_OBJECT (wavenc, "got note: '%s'", tag);
 
-      total += req;
+  wavenc->notes = g_list_append (wavenc->notes, note);
 
-      g_string_append (info_str, labl->str);
-      g_string_free (labl, TRUE);
-    }
+  return TRUE;
+}
+
+static gboolean
+gst_wavenc_write_cues (guint8 ** data, GList * list)
+{
+  GstWavEncCue *cue;
+
+  while (list) {
+    cue = list->data;
+    GST_WRITE_UINT32_LE (*data, cue->id);
+    GST_WRITE_UINT32_LE (*data + 4, cue->position);
+    memcpy (*data + 8, (gchar *) cue->data_chunk_id, 4);
+    GST_WRITE_UINT32_LE (*data + 12, cue->chunk_start);
+    GST_WRITE_UINT32_LE (*data + 16, cue->block_start);
+    GST_WRITE_UINT32_LE (*data + 20, cue->sample_offset);
+    *data += 24;
+    list = g_list_next (list);
   }
 
-  if (gst_props_get (wavenc->metadata->properties, "notes", &caps, NULL)) {
-    GList *p;
-    int i;
+  return TRUE;
+}
 
-    for (p = caps, i = 1; p; p = p->next, i++) {
-      GstCaps *note_caps = p->data;
-      GString *note;
-      char *label = NULL;
-      int len, req, j;
+static gboolean
+gst_wavenc_write_labls (guint8 ** data, GList * list)
+{
+  GstWavEncLabl *labl;
+
+  while (list) {
+    labl = list->data;
+    memcpy (*data, (gchar *) labl->chunk_id, 4);
+    GST_WRITE_UINT32_LE (*data + 4, labl->chunk_data_size);
+    GST_WRITE_UINT32_LE (*data + 8, labl->cue_point_id);
+    memcpy (*data + 12, (gchar *) labl->text, strlen (labl->text));
+    *data += 8 + GST_ROUND_UP_2 (labl->chunk_data_size);
+    list = g_list_next (list);
+  }
 
-      gst_props_get (note_caps->properties, "name", &label, NULL);
-      len = strlen (label);
+  return TRUE;
+}
 
-#define NOTE_SIZE 4
-      note = g_string_new ("note        ");
-      note->str[8] = GUINT32_TO_LE (i);
-      g_string_append (note, label);
-      g_free (label);
+static gboolean
+gst_wavenc_write_notes (guint8 ** data, GList * list)
+{
+  GstWavEncNote *note;
+
+  while (list) {
+    note = list->data;
+    memcpy (*data, (gchar *) note->chunk_id, 4);
+    GST_WRITE_UINT32_LE (*data + 4, note->chunk_data_size);
+    GST_WRITE_UINT32_LE (*data + 8, note->cue_point_id);
+    memcpy (*data + 12, (gchar *) note->text, strlen (note->text));
+    *data += 8 + GST_ROUND_UP_2 (note->chunk_data_size);
+    list = g_list_next (list);
+  }
 
-      len += NOTE_SIZE;
+  return TRUE;
+}
 
-      note->str[4] = GUINT32_TO_LE (len);
+static GstFlowReturn
+gst_wavenc_write_toc (GstWavEnc * wavenc)
+{
+  GList *list;
+  GstToc *toc;
+  GstTocEntry *entry, *subentry;
+  GstBuffer *buf;
+  GstMapInfo map;
+  guint8 *data;
+  guint32 ncues, size, cues_size, labls_size, notes_size;
 
-      /* Size check */
-      req = ((len + 8) + 1) & ~1;
-      for (j = 0; j < req - len; j++) {
-        g_string_append_printf (note, "%c", 0);
-      }
+  if (!wavenc->toc) {
+    GST_DEBUG_OBJECT (wavenc, "have no toc, checking toc_setter");
+    wavenc->toc = gst_toc_setter_get_toc (GST_TOC_SETTER (wavenc));
+  }
+  if (!wavenc->toc) {
+    GST_WARNING_OBJECT (wavenc, "have no toc");
+    return GST_FLOW_OK;
+  }
 
-      total += req;
+  toc = gst_toc_ref (wavenc->toc);
+  size = 0;
+  cues_size = 0;
+  labls_size = 0;
+  notes_size = 0;
+
+  /* check if the TOC entries is valid */
+  list = gst_toc_get_entries (toc);
+  entry = list->data;
+  if (gst_toc_entry_is_alternative (entry)) {
+    list = gst_toc_entry_get_sub_entries (entry);
+    while (list) {
+      subentry = list->data;
+      if (!gst_toc_entry_is_sequence (subentry))
+        return FALSE;
+      list = g_list_next (list);
+    }
+    list = gst_toc_entry_get_sub_entries (entry);
+  }
+  if (gst_toc_entry_is_sequence (entry)) {
+    while (list) {
+      entry = list->data;
+      if (!gst_toc_entry_is_sequence (entry))
+        return FALSE;
+      list = g_list_next (list);
+    }
+    list = gst_toc_get_entries (toc);
+  }
 
-      g_string_append (info_str, note->str);
-      g_string_free (note, TRUE);
+  ncues = g_list_length (list);
+  GST_DEBUG_OBJECT (wavenc, "number of cue entries: %d", ncues);
+
+  while (list) {
+    guint32 id = 0;
+    gint64 id64;
+    const gchar *uid;
+
+    entry = list->data;
+    uid = gst_toc_entry_get_uid (entry);
+    id64 = g_ascii_strtoll (uid, NULL, 0);
+    /* check if id unique compatible with guint32 else generate random */
+    if (id64 >= 0 && gst_wavenc_is_cue_id_unique (id64, wavenc->cues)) {
+      id = (guint32) id64;
+    } else {
+      do {
+        id = g_random_int ();
+      } while (!gst_wavenc_is_cue_id_unique (id, wavenc->cues));
     }
+    gst_wavenc_parse_cue (wavenc, id, entry);
+    gst_wavenc_parse_labl (wavenc, id, entry);
+    gst_wavenc_parse_note (wavenc, id, entry);
+    list = g_list_next (list);
   }
 
-  info_str->str[4] = GUINT32_TO_LE (total);
+  /* count cues size */
+  if (wavenc->cues) {
+    cues_size = 24 * g_list_length (wavenc->cues);
+    size += 12 + cues_size;
+  } else {
+    GST_WARNING_OBJECT (wavenc, "cue's not found");
+    return FALSE;
+  }
+  /* count labls size */
+  if (wavenc->labls) {
+    list = wavenc->labls;
+    while (list) {
+      GstWavEncLabl *labl;
+      labl = list->data;
+      labls_size += 8 + GST_ROUND_UP_2 (labl->chunk_data_size);
+      list = g_list_next (list);
+    }
+    size += labls_size;
+  }
+  /* count notes size */
+  if (wavenc->notes) {
+    list = wavenc->notes;
+    while (list) {
+      GstWavEncNote *note;
+      note = list->data;
+      notes_size += 8 + GST_ROUND_UP_2 (note->chunk_data_size);
+      list = g_list_next (list);
+    }
+    size += notes_size;
+  }
+  if (wavenc->labls || wavenc->notes) {
+    size += 12;
+  }
+
+  buf = gst_buffer_new_and_alloc (size);
+  gst_buffer_map (buf, &map, GST_MAP_WRITE);
+  data = map.data;
+  memset (data, 0, size);
+
+  /* write Cue Chunk */
+  if (wavenc->cues) {
+    memcpy (data, (gchar *) "cue ", 4);
+    GST_WRITE_UINT32_LE (data + 4, 4 + cues_size);
+    GST_WRITE_UINT32_LE (data + 8, ncues);
+    data += 12;
+    gst_wavenc_write_cues (&data, wavenc->cues);
+
+    /* write Associated Data List Chunk */
+    if (wavenc->labls || wavenc->notes) {
+      memcpy (data, (gchar *) "LIST", 4);
+      GST_WRITE_UINT32_LE (data + 4, 4 + labls_size + notes_size);
+      memcpy (data + 8, (gchar *) "adtl", 4);
+      data += 12;
+      if (wavenc->labls)
+        gst_wavenc_write_labls (&data, wavenc->labls);
+      if (wavenc->notes)
+        gst_wavenc_write_notes (&data, wavenc->notes);
+    }
+  }
+
+  /* free resources */
+  if (toc)
+    gst_toc_unref (toc);
+  if (wavenc->cues)
+    g_list_free_full (wavenc->cues, g_free);
+  if (wavenc->labls)
+    g_list_free_full (wavenc->labls, g_free);
+  if (wavenc->notes)
+    g_list_free_full (wavenc->notes, g_free);
 
-  buf = gst_buffer_new ();
-  gst_buffer_set_data (buf, info_str->str, info_str->len);
+  gst_buffer_unmap (buf, &map);
+  wavenc->meta_length += gst_buffer_get_size (buf);
 
-  gst_pad_push (wavenc->srcpad, GST_DATA (buf));
-  g_string_free (info_str, FALSE);
+  return gst_pad_push (wavenc->srcpad, buf);
 }
-#endif
 
 static gboolean
 gst_wavenc_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   gboolean res = TRUE;
   GstWavEnc *wavenc;
+  GstTagList *tags;
+  GstToc *toc;
 
   wavenc = GST_WAVENC (parent);
 
@@ -613,18 +785,24 @@ gst_wavenc_event (GstPad * pad, GstObject * parent, GstEvent * event)
       gst_event_unref (event);
       break;
     }
-    case GST_EVENT_EOS:{
+    case GST_EVENT_EOS:
+    {
+      GstFlowReturn flow;
       GST_DEBUG_OBJECT (wavenc, "got EOS");
-#if 0
-      /* Write our metadata if we have any */
-      if (wavenc->metadata) {
-        write_metadata (wavenc);
-        write_cues (wavenc);
-        write_labels (wavenc);
+
+      flow = gst_wavenc_write_toc (wavenc);
+      if (flow != GST_FLOW_OK) {
+        GST_WARNING_OBJECT (wavenc, "error pushing toc: %s",
+            gst_flow_get_name (flow));
       }
-#endif
+      flow = gst_wavenc_write_tags (wavenc);
+      if (flow != GST_FLOW_OK) {
+        GST_WARNING_OBJECT (wavenc, "error pushing tags: %s",
+            gst_flow_get_name (flow));
+      }
+
       /* write header with correct length values */
-      gst_wavenc_push_header (wavenc, wavenc->length);
+      gst_wavenc_push_header (wavenc);
 
       /* we're done with this file */
       wavenc->finished_properly = TRUE;
@@ -638,6 +816,30 @@ gst_wavenc_event (GstPad * pad, GstObject * parent, GstEvent * event)
        * anyway. We'll send our own newsegment event */
       gst_event_unref (event);
       break;
+    case GST_EVENT_TOC:
+      gst_event_parse_toc (event, &toc, NULL);
+      if (toc) {
+        if (wavenc->toc != toc) {
+          if (wavenc->toc)
+            gst_toc_unref (wavenc->toc);
+          wavenc->toc = toc;
+        } else {
+          gst_toc_unref (toc);
+        }
+      }
+      res = gst_pad_event_default (pad, parent, event);
+      break;
+    case GST_EVENT_TAG:
+      gst_event_parse_tag (event, &tags);
+      if (tags) {
+        if (wavenc->tags != tags) {
+          if (wavenc->tags)
+            gst_tag_list_unref (wavenc->tags);
+          wavenc->tags = gst_tag_list_ref (tags);
+        }
+      }
+      res = gst_pad_event_default (pad, parent, event);
+      break;
     default:
       res = gst_pad_event_default (pad, parent, event);
       break;
@@ -654,17 +856,18 @@ gst_wavenc_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
 
   g_return_val_if_fail (wavenc->channels > 0, GST_FLOW_FLUSHING);
 
-  if (!wavenc->sent_header) {
-    /* use bogus size initially, we'll write the real
-     * header when we get EOS and know the exact length */
-    flow = gst_wavenc_push_header (wavenc, 0x7FFF0000);
-
+  if (G_UNLIKELY (!wavenc->sent_header)) {
     /* starting a file, means we have to finish it properly */
     wavenc->finished_properly = FALSE;
 
-    if (flow != GST_FLOW_OK)
+    /* use bogus size initially, we'll write the real
+     * header when we get EOS and know the exact length */
+    flow = gst_wavenc_push_header (wavenc);
+    if (flow != GST_FLOW_OK) {
+      GST_WARNING_OBJECT (wavenc, "error pushing header: %s",
+          gst_flow_get_name (flow));
       return flow;
-
+    }
     GST_DEBUG_OBJECT (wavenc, "wrote dummy header");
     wavenc->sent_header = TRUE;
   }
@@ -675,10 +878,10 @@ gst_wavenc_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
 
   buf = gst_buffer_make_writable (buf);
 
-  GST_BUFFER_OFFSET (buf) = WAV_HEADER_LEN + wavenc->length;
+  GST_BUFFER_OFFSET (buf) = WAV_HEADER_LEN + wavenc->audio_length;
   GST_BUFFER_OFFSET_END (buf) = GST_BUFFER_OFFSET_NONE;
 
-  wavenc->length += gst_buffer_get_size (buf);
+  wavenc->audio_length += gst_buffer_get_size (buf);
 
   flow = gst_pad_push (wavenc->srcpad, buf);
 
@@ -697,7 +900,8 @@ gst_wavenc_change_state (GstElement * element, GstStateChange transition)
       wavenc->channels = 0;
       wavenc->width = 0;
       wavenc->rate = 0;
-      wavenc->length = 0;
+      wavenc->audio_length = 0;
+      wavenc->meta_length = 0;
       wavenc->sent_header = FALSE;
       /* its true because we haven't writen anything */
       wavenc->finished_properly = TRUE;
@@ -719,6 +923,20 @@ gst_wavenc_change_state (GstElement * element, GstStateChange transition)
                 "before shutdown"));
       }
       break;
+    case GST_STATE_CHANGE_READY_TO_NULL:
+      GST_DEBUG_OBJECT (wavenc, "tags: %p", wavenc->tags);
+      if (wavenc->tags) {
+        gst_tag_list_unref (wavenc->tags);
+        wavenc->tags = NULL;
+      }
+      GST_DEBUG_OBJECT (wavenc, "toc: %p", wavenc->toc);
+      if (wavenc->toc) {
+        gst_toc_unref (wavenc->toc);
+        wavenc->toc = NULL;
+      }
+      gst_tag_setter_reset_tags (GST_TAG_SETTER (wavenc));
+      gst_toc_setter_reset (GST_TOC_SETTER (wavenc));
+      break;
     default:
       break;
   }
diff --git a/gst/wavenc/gstwavenc.h b/gst/wavenc/gstwavenc.h
index 3fe167ec6..b6f8df4c1 100644
--- a/gst/wavenc/gstwavenc.h
+++ b/gst/wavenc/gstwavenc.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -46,12 +46,21 @@ struct _GstWavEnc {
   GstPad    *sinkpad;
   GstPad    *srcpad;
 
+  GstTagList *tags;
+  GstToc    *toc;
+  GList     *cues;
+  GList     *labls;
+  GList     *notes;
+
   /* useful audio data */
   guint16    format;
   guint      width;
   guint      rate;
   guint      channels;
-  guint32    length;
+  
+  /* data sizes */
+  guint32    audio_length;
+  guint32    meta_length;
 
   gboolean   sent_header;
   gboolean   finished_properly;
diff --git a/gst/wavparse/Makefile.in b/gst/wavparse/Makefile.in
index 05143ee11..66843b8b7 100644
--- a/gst/wavparse/Makefile.in
+++ b/gst/wavparse/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/wavparse
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -136,10 +162,23 @@ libgstwavparse_la_OBJECTS = $(am_libgstwavparse_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstwavparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstwavparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstwavparse_la_CFLAGS) $(CFLAGS) \
 	$(libgstwavparse_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -152,20 +191,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstwavparse_la_SOURCES)
 DIST_SOURCES = $(libgstwavparse_la_SOURCES)
 am__can_run_installinfo = \
@@ -174,6 +209,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -342,6 +394,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -555,6 +608,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -581,12 +635,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstwavparse.la: $(libgstwavparse_la_OBJECTS) $(libgstwavparse_la_DEPENDENCIES) $(EXTRA_libgstwavparse_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstwavparse_la_LINK) -rpath $(plugindir) $(libgstwavparse_la_OBJECTS) $(libgstwavparse_la_LIBADD) $(LIBS)
 
@@ -632,26 +689,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -663,15 +709,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -680,6 +722,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -824,19 +881,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c
index 1aee9c4b5..603a7d038 100644
--- a/gst/wavparse/gstwavparse.c
+++ b/gst/wavparse/gstwavparse.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -54,7 +54,6 @@
 #include <math.h>
 
 #include "gstwavparse.h"
-#include "gst/riff/riff-ids.h"
 #include "gst/riff/riff-media.h"
 #include <gst/base/gsttypefindhelper.h>
 #include <gst/gst-i18n-plugin.h>
@@ -139,7 +138,7 @@ typedef struct
    */
   guint32 cue_point_id;
   gchar *text;
-} GstWavParseLabl;
+} GstWavParseLabl, GstWavParseNote;
 
 static void
 gst_wavparse_class_init (GstWavParseClass * klass)
@@ -1219,14 +1218,43 @@ gst_wavparse_labl_chunk (GstWavParse * wav, const guint8 * data, guint32 size)
   /* parse data */
   data += 8;
   labl->cue_point_id = GST_READ_UINT32_LE (data);
-  labl->text = (gchar *) g_new0 (gchar *, size - 4 + 1);
-  memcpy (labl->text, data + 4, size - 4);
+  labl->text = g_memdup (data + 4, size - 4);
 
   wav->labls = g_list_append (wav->labls, labl);
 
   return TRUE;
 }
 
+/*
+ * gst_wavparse_note_chunk:
+ * @wav GstWavParse object
+ * @data holder for data
+ * @size holder for data size
+ *
+ * Parse note from @data to wav->notes.
+ *
+ * Returns: %TRUE when note chunk is available
+ */
+static gboolean
+gst_wavparse_note_chunk (GstWavParse * wav, const guint8 * data, guint32 size)
+{
+  GstWavParseNote *note;
+
+  if (size < 5)
+    return FALSE;
+
+  note = g_new0 (GstWavParseNote, 1);
+
+  /* parse data */
+  data += 8;
+  note->cue_point_id = GST_READ_UINT32_LE (data);
+  note->text = g_memdup (data + 4, size - 4);
+
+  wav->notes = g_list_append (wav->notes, note);
+
+  return TRUE;
+}
+
 /*
  * gst_wavparse_adtl_chunk:
  * @wav GstWavParse object
@@ -1248,6 +1276,10 @@ gst_wavparse_adtl_chunk (GstWavParse * wav, const guint8 * data, guint32 size)
     switch (ltag) {
       case GST_RIFF_TAG_labl:
         gst_wavparse_labl_chunk (wav, data + offset, size);
+        break;
+      case GST_RIFF_TAG_note:
+        gst_wavparse_note_chunk (wav, data + offset, size);
+        break;
       default:
         break;
     }
@@ -1258,6 +1290,24 @@ gst_wavparse_adtl_chunk (GstWavParse * wav, const guint8 * data, guint32 size)
   return TRUE;
 }
 
+static GstTagList *
+gst_wavparse_get_tags_toc_entry (GstToc * toc, gchar * id)
+{
+  GstTagList *tags = NULL;
+  GstTocEntry *entry = NULL;
+
+  entry = gst_toc_find_entry (toc, id);
+  if (entry != NULL) {
+    tags = gst_toc_entry_get_tags (entry);
+    if (tags == NULL) {
+      tags = gst_tag_list_new_empty ();
+      gst_toc_entry_set_tags (entry, tags);
+    }
+  }
+
+  return tags;
+}
+
 /*
  * gst_wavparse_create_toc:
  * @wav GstWavParse object
@@ -1272,6 +1322,7 @@ gst_wavparse_create_toc (GstWavParse * wav)
   GList *list;
   GstWavParseCue *cue;
   GstWavParseLabl *labl;
+  GstWavParseNote *note;
   GstTagList *tags;
   GstToc *toc;
   GstTocEntry *entry = NULL, *cur_subentry = NULL, *prev_subentry = NULL;
@@ -1296,19 +1347,19 @@ gst_wavparse_create_toc (GstWavParse * wav)
   gst_toc_entry_set_start_stop_times (entry, 0, wav->duration);
   gst_toc_append_entry (toc, entry);
 
-  /* add chapters in cue edition */
-  list = g_list_first (wav->cues);
+  /* add tracks in cue edition */
+  list = wav->cues;
   while (list) {
     cue = list->data;
     prev_subentry = cur_subentry;
-    /* previous chapter stop time = current chapter start time */
+    /* previous track stop time = current track start time */
     if (prev_subentry != NULL) {
       gst_toc_entry_get_start_stop_times (prev_subentry, &start, NULL);
       stop = gst_util_uint64_scale_round (cue->position, GST_SECOND, wav->rate);
       gst_toc_entry_set_start_stop_times (prev_subentry, start, stop);
     }
     id = g_strdup_printf ("%08x", cue->id);
-    cur_subentry = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, id);
+    cur_subentry = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_TRACK, id);
     g_free (id);
     start = gst_util_uint64_scale_round (cue->position, GST_SECOND, wav->rate);
     stop = wav->duration;
@@ -1317,18 +1368,28 @@ gst_wavparse_create_toc (GstWavParse * wav)
     list = g_list_next (list);
   }
 
-  /* add tags in chapters */
-  list = g_list_first (wav->labls);
+  /* add tags in tracks */
+  list = wav->labls;
   while (list) {
     labl = list->data;
     id = g_strdup_printf ("%08x", labl->cue_point_id);
-    cur_subentry = gst_toc_find_entry (toc, id);
+    tags = gst_wavparse_get_tags_toc_entry (toc, id);
     g_free (id);
-    if (cur_subentry != NULL) {
-      tags = gst_tag_list_new_empty ();
+    if (tags != NULL) {
       gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE, labl->text,
           NULL);
-      gst_toc_entry_set_tags (cur_subentry, tags);
+    }
+    list = g_list_next (list);
+  }
+  list = wav->notes;
+  while (list) {
+    note = list->data;
+    id = g_strdup_printf ("%08x", note->cue_point_id);
+    tags = gst_wavparse_get_tags_toc_entry (toc, id);
+    g_free (id);
+    if (tags != NULL) {
+      gst_tag_list_add (tags, GST_TAG_MERGE_PREPEND, GST_TAG_COMMENT,
+          note->text, NULL);
     }
     list = g_list_next (list);
   }
@@ -2304,6 +2365,7 @@ gst_wavparse_loop (GstPad * pad)
 {
   GstFlowReturn ret;
   GstWavParse *wav = GST_WAVPARSE (GST_PAD_PARENT (pad));
+  gchar *stream_id;
 
   GST_LOG_OBJECT (wav, "process data");
 
@@ -2313,6 +2375,11 @@ gst_wavparse_loop (GstPad * pad)
       if ((ret = gst_wavparse_stream_init (wav)) != GST_FLOW_OK)
         goto pause;
 
+      stream_id =
+          gst_pad_create_stream_id (wav->srcpad, GST_ELEMENT_CAST (wav), NULL);
+      gst_pad_push_event (wav->srcpad, gst_event_new_stream_start (stream_id));
+      g_free (stream_id);
+
       wav->state = GST_WAVPARSE_HEADER;
       /* fall-through */
 
diff --git a/gst/wavparse/gstwavparse.h b/gst/wavparse/gstwavparse.h
index ad8e02b19..7dc43bc1b 100644
--- a/gst/wavparse/gstwavparse.h
+++ b/gst/wavparse/gstwavparse.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -69,6 +69,7 @@ struct _GstWavParse {
   GstToc      *toc;
   GList       *cues;
   GList       *labls;
+  GList       *notes;
   GstEvent    *start_segment;
 
   /* WAVE decoding state */
diff --git a/gst/y4m/Makefile.in b/gst/y4m/Makefile.in
index 8cdf7ed04..6058a6371 100644
--- a/gst/y4m/Makefile.in
+++ b/gst/y4m/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/y4m
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -135,10 +161,23 @@ libgsty4menc_la_OBJECTS = $(am_libgsty4menc_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgsty4menc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgsty4menc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgsty4menc_la_CFLAGS) $(CFLAGS) \
 	$(libgsty4menc_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -151,20 +190,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgsty4menc_la_SOURCES)
 DIST_SOURCES = $(libgsty4menc_la_SOURCES)
 am__can_run_installinfo = \
@@ -173,6 +208,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -341,6 +393,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -542,6 +595,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -568,12 +622,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgsty4menc.la: $(libgsty4menc_la_OBJECTS) $(libgsty4menc_la_DEPENDENCIES) $(EXTRA_libgsty4menc_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgsty4menc_la_LINK) -rpath $(plugindir) $(libgsty4menc_la_OBJECTS) $(libgsty4menc_la_LIBADD) $(LIBS)
 
@@ -619,26 +676,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -650,15 +696,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -667,6 +709,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -811,19 +868,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/y4m/gsty4mencode.c b/gst/y4m/gsty4mencode.c
index 8d0641191..4926cb7a6 100644
--- a/gst/y4m/gsty4mencode.c
+++ b/gst/y4m/gsty4mencode.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-y4menc
diff --git a/gst/y4m/gsty4mencode.h b/gst/y4m/gsty4mencode.h
index 9eb820e48..27bd05ec1 100644
--- a/gst/y4m/gsty4mencode.h
+++ b/gst/y4m/gsty4mencode.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ltmain.sh b/ltmain.sh
index 499e473fb..68c6d96ca 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -70,7 +70,7 @@
 #         compiler:		$LTCC
 #         compiler flags:		$LTCFLAGS
 #         linker:		$LD (gnu? $with_gnu_ld)
-#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1.2
+#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1.3
 #         automake:	$automake_version
 #         autoconf:	$autoconf_version
 #
@@ -80,7 +80,7 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1.2"
+VERSION="2.4.2 Debian-2.4.2-1.3"
 TIMESTAMP=""
 package_revision=1.3337
 
diff --git a/m4/Makefile.in b/m4/Makefile.in
index 73903d127..dd4dd4cc0 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,14 +79,13 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = m4
-DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README
 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-gcc-inline-assembly.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 \
@@ -95,12 +121,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -108,6 +140,7 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -274,6 +307,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -510,11 +544,11 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
+
+ctags CTAGS:
 
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -650,15 +684,16 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool 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-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool 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-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in
index ad2035f87..c86d8b55e 100644
--- a/pkgconfig/Makefile.in
+++ b/pkgconfig/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,7 +79,7 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = pkgconfig
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(srcdir)/gstreamer-plugins-good-uninstalled.pc.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -60,7 +87,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-gcc-inline-assembly.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 \
@@ -96,12 +122,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = gstreamer-plugins-good-uninstalled.pc
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -109,6 +141,7 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -275,6 +308,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -499,11 +533,11 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
+
+ctags CTAGS:
 
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -641,16 +675,17 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am all-local check check-am clean clean-generic \
-	clean-libtool distclean distclean-generic distclean-libtool \
-	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-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	uninstall uninstall-am
+	clean-libtool cscopelist-am ctags-am distclean \
+	distclean-generic distclean-libtool 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-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+	uninstall-am
 
 
 ### all-local: $(pcverfiles) $(pcverfiles_uninstalled)
diff --git a/po/LINGUAS b/po/LINGUAS
index c02001913..73d8b85b2 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1 +1 @@
-af az bg ca cs da de el en_GB eo es eu fi fr gl hr hu id it ja lt lv mt nb nl or pl pt_BR ro ru sk sl sq sr sv tr uk vi zh_CN zh_HK zh_TW
+af az bg ca cs da de el en_GB eo es eu fi fr gl hu id it ja lt lv mt nb nl or pl pt_BR ro ru sk sl sq sr sv tr uk vi zh_CN zh_HK zh_TW
diff --git a/po/POTFILES.in b/po/POTFILES.in
index ae3438c30..596eda7e7 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,7 +1,9 @@
-ext/pulse/pulsesink.c
 ext/flac/gstflacdec.c
+ext/jack/gstjackaudiosink.c
+ext/jack/gstjackaudiosrc.c
 ext/jpeg/gstjpegdec.c
 ext/libpng/gstpngdec.c
+ext/pulse/pulsesink.c
 ext/shout2/gstshout2.c
 ext/soup/gstsouphttpsrc.c
 gst/audioparsers/gstwavpackparse.c
@@ -10,13 +12,15 @@ gst/avi/gstavimux.c
 gst/isomp4/qtdemux.c
 gst/rtsp/gstrtspsrc.c
 gst/wavparse/gstwavparse.c
-sys/oss/gstosssink.c
-sys/oss/gstosssrc.c
 sys/oss4/oss4-sink.c
 sys/oss4/oss4-source.c
+sys/oss/gstosssink.c
+sys/oss/gstosssrc.c
+sys/sunaudio/gstsunaudiomixeroptions.c
 sys/sunaudio/gstsunaudiomixertrack.c
 sys/v4l2/gstv4l2bufferpool.c
 sys/v4l2/gstv4l2object.c
 sys/v4l2/gstv4l2radio.c
+sys/v4l2/gstv4l2videooverlay.c
 sys/v4l2/v4l2_calls.c
 sys/ximage/gstximagesrc.c
diff --git a/po/af.gmo b/po/af.gmo
index bc5ad1a3aeeef9c258788eef8b01ae117d2ff390..c8f874f67f9eb67cd82338c7686f6efbe73852fd 100644
GIT binary patch
delta 182
zcmaFMGK;nTo)F7a1|VPsVi_QI0b+I_&H-W&=m26aAnpWWkoXiJHUr{0K+Fcjmw`Bo
zk%8eBkmdwpS0;!$e;{oQ<c9-kkh;l08mNqc1&Cn)C?o>5m>DGEo0(jcUyzZXmpZXv
f4~L<tm8qGwfzf0W#`heV*+uzj`T2R16`6bh_Qx2i

delta 152
zcmbQm`j(~so)F7a1|VPoVi_Q|0b*7ljsap2C;(!1AT9)AGa#-6Vm2V&0K{303=G?W
zG)P{FiGjfyNNWLUkbD}D21+vkDF$XB2AK~AzWI5XCHX}Re)$UdMG6xat>rK>ure^#
PHZYtV&iH<E0FxI0&C?VS

diff --git a/po/af.po b/po/af.po
index c664b22c6..9f435c253 100644
--- 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: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\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"
@@ -16,18 +16,24 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#. TRANSLATORS: 'song title' by 'artist name'
-#, c-format
-msgid "'%s' by '%s'"
+msgid "Jack server not found"
 msgstr ""
 
 msgid "Failed to decode JPEG image"
 msgstr ""
 
+#. TRANSLATORS: 'song title' by 'artist name'
+#, c-format
+msgid "'%s' by '%s'"
+msgstr ""
+
 #, fuzzy
 msgid "Could not connect to server"
 msgstr "Kon nie beheertoestel \"%s\" toemaak nie."
 
+msgid "No URL set."
+msgstr ""
+
 msgid "Server does not support seeking."
 msgstr ""
 
@@ -49,9 +55,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "No URL set."
-msgstr ""
-
 msgid "Internal data stream error."
 msgstr ""
 
@@ -64,6 +67,9 @@ msgstr ""
 msgid "This file is invalid and cannot be played."
 msgstr ""
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr ""
 
@@ -108,6 +114,23 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Kon nie oudio-toestel \"%s\" oopmaak vir skryf nie."
 
+msgid ""
+"Could not open audio device for playback. This version of the Open Sound "
+"System is not supported by this element."
+msgstr ""
+
+msgid "Playback is not supported by this audio device."
+msgstr ""
+
+msgid "Audio playback error."
+msgstr ""
+
+msgid "Recording is not supported by this audio device."
+msgstr ""
+
+msgid "Error recording from audio device."
+msgstr ""
+
 msgid ""
 "Could not open audio device for recording. You don't have permission to open "
 "the device."
@@ -117,21 +140,33 @@ msgstr ""
 msgid "Could not open audio device for recording."
 msgstr "Kon nie CD-toestel oopmaak om te lees nie."
 
-msgid ""
-"Could not open audio device for playback. This version of the Open Sound "
-"System is not supported by this element."
+#, fuzzy
+msgid "Record Source"
+msgstr "Neem op"
+
+msgid "Microphone"
+msgstr "Mikrofoon"
+
+#, fuzzy
+msgid "Line In"
+msgstr "Lyn-in"
+
+msgid "Internal CD"
 msgstr ""
 
-msgid "Playback is not supported by this audio device."
+msgid "SPDIF In"
 msgstr ""
 
-msgid "Audio playback error."
+msgid "AUX 1 In"
 msgstr ""
 
-msgid "Recording is not supported by this audio device."
+msgid "AUX 2 In"
 msgstr ""
 
-msgid "Error recording from audio device."
+msgid "Codec Loopback"
+msgstr ""
+
+msgid "SunVTS Loopback"
 msgstr ""
 
 msgid "Volume"
@@ -232,6 +267,10 @@ msgstr "Kon nie oudio-toestel \"%s\" toemaak nie."
 msgid "Failed to change mute state for device '%s'."
 msgstr "Kon nie buffers vanaf toestel \"%s\" verkry nie."
 
+#, fuzzy, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Kon nie skryf na toestel \"%s\" nie."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -254,10 +293,6 @@ msgstr ""
 msgid "Failed getting controls attributes on device '%s'."
 msgstr ""
 
-#, fuzzy, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Kon nie skryf na toestel \"%s\" nie."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr ""
@@ -339,9 +374,6 @@ msgstr ""
 #~ msgid "Line-in"
 #~ msgstr "Lyn-in"
 
-#~ msgid "Microphone"
-#~ msgstr "Mikrofoon"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -402,10 +434,6 @@ msgstr ""
 #~ msgid "Side"
 #~ msgstr "Video"
 
-#, fuzzy
-#~ msgid "Line In"
-#~ msgstr "Lyn-in"
-
 #, fuzzy
 #~ msgid "Video In"
 #~ msgstr "Video"
@@ -422,10 +450,6 @@ msgstr ""
 #~ msgid "Microphone Boost"
 #~ msgstr "Mikrofoon"
 
-#, fuzzy
-#~ msgid "Record Source"
-#~ msgstr "Neem op"
-
 #, fuzzy
 #~ msgid "Monitor Source"
 #~ msgstr "Monitor"
diff --git a/po/az.gmo b/po/az.gmo
index 7f1477f0c115857580b9a5087139586439e8d198..758ba66e785c503a9c68995b7b654205ef5584f9 100644
GIT binary patch
delta 182
zcmZ3^dYQHUo)F7a1|VPsVi_QI0b+I_&H-W&=m26aAnpWWkoXiJHUr{0K+Fcjmw|XO
zBLl-NAk6{9bxaU-?LgWN$nOWzEI|4kkOnFPvw;*C0EI-r7BhpmzM08I`2`vId8rc%
g_HY=QTA7+@8yIaiVbow`&&)2$Ps`7n9L3}d07QEj-v9sr

delta 153
zcmcc2x}3HCo)F7a1|VPoVi_Q|0b*7ljsap2C;(!1AT9)AGa#-6Vm2V&0K|(K85p($
zX^?z069a=CkWL2DAhQ+$X`nO%kYZp4VvraZ_~z$jmgE;P_~k3)7b#3!w3frjz{<c_
Q+rV&hIHLyR<PIip02x&jfB*mh

diff --git a/po/az.po b/po/az.po
index 3cc78953f..bf3d0b198 100644
--- 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: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\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"
@@ -17,18 +17,24 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.0.2\n"
 
-#. TRANSLATORS: 'song title' by 'artist name'
-#, c-format
-msgid "'%s' by '%s'"
+msgid "Jack server not found"
 msgstr ""
 
 msgid "Failed to decode JPEG image"
 msgstr ""
 
+#. TRANSLATORS: 'song title' by 'artist name'
+#, c-format
+msgid "'%s' by '%s'"
+msgstr ""
+
 #, fuzzy
 msgid "Could not connect to server"
 msgstr "\"%s\" idarə avadanlığı bağlana bilmədi."
 
+msgid "No URL set."
+msgstr ""
+
 msgid "Server does not support seeking."
 msgstr ""
 
@@ -50,9 +56,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "No URL set."
-msgstr ""
-
 msgid "Internal data stream error."
 msgstr ""
 
@@ -65,6 +68,9 @@ msgstr ""
 msgid "This file is invalid and cannot be played."
 msgstr ""
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr ""
 
@@ -109,6 +115,23 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "\"%s\" audio avadanlığı yazma üçün açıla bilmədi."
 
+msgid ""
+"Could not open audio device for playback. This version of the Open Sound "
+"System is not supported by this element."
+msgstr ""
+
+msgid "Playback is not supported by this audio device."
+msgstr ""
+
+msgid "Audio playback error."
+msgstr ""
+
+msgid "Recording is not supported by this audio device."
+msgstr ""
+
+msgid "Error recording from audio device."
+msgstr ""
+
 msgid ""
 "Could not open audio device for recording. You don't have permission to open "
 "the device."
@@ -118,21 +141,33 @@ msgstr ""
 msgid "Could not open audio device for recording."
 msgstr "CD avadanlığı oxuma üçün açıla bilmədi."
 
-msgid ""
-"Could not open audio device for playback. This version of the Open Sound "
-"System is not supported by this element."
+#, fuzzy
+msgid "Record Source"
+msgstr "Qeyd"
+
+msgid "Microphone"
+msgstr "Mikrofon"
+
+#, fuzzy
+msgid "Line In"
+msgstr "Xətd-giriş"
+
+msgid "Internal CD"
 msgstr ""
 
-msgid "Playback is not supported by this audio device."
+msgid "SPDIF In"
 msgstr ""
 
-msgid "Audio playback error."
+msgid "AUX 1 In"
 msgstr ""
 
-msgid "Recording is not supported by this audio device."
+msgid "AUX 2 In"
 msgstr ""
 
-msgid "Error recording from audio device."
+msgid "Codec Loopback"
+msgstr ""
+
+msgid "SunVTS Loopback"
 msgstr ""
 
 msgid "Volume"
@@ -233,6 +268,10 @@ msgstr "\"%s\" audio avadanlığı bağlana bilmədi."
 msgid "Failed to change mute state for device '%s'."
 msgstr "\"%s\" avadanlığından bufferlər alına bilmədi."
 
+#, fuzzy, c-format
+msgid "Cannot identify device '%s'."
+msgstr "\"%s\" avadanlığına yazıla bilmədi."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -255,10 +294,6 @@ msgstr ""
 msgid "Failed getting controls attributes on device '%s'."
 msgstr ""
 
-#, fuzzy, c-format
-msgid "Cannot identify device '%s'."
-msgstr "\"%s\" avadanlığına yazıla bilmədi."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr ""
@@ -340,9 +375,6 @@ msgstr ""
 #~ msgid "Line-in"
 #~ msgstr "Xətd-giriş"
 
-#~ msgid "Microphone"
-#~ msgstr "Mikrofon"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -403,10 +435,6 @@ msgstr ""
 #~ msgid "Side"
 #~ msgstr "Video"
 
-#, fuzzy
-#~ msgid "Line In"
-#~ msgstr "Xətd-giriş"
-
 #, fuzzy
 #~ msgid "Video In"
 #~ msgstr "Video"
@@ -423,10 +451,6 @@ msgstr ""
 #~ msgid "Microphone Boost"
 #~ msgstr "Mikrofon"
 
-#, fuzzy
-#~ msgid "Record Source"
-#~ msgstr "Qeyd"
-
 #, fuzzy
 #~ msgid "Monitor Source"
 #~ msgstr "Monitor"
diff --git a/po/bg.gmo b/po/bg.gmo
index dde8090d41143e3781aafaeaa0b4eeeee43df4d8..9c541f59a9a0e6b7aa7b4929a53bdb1e27be1ec4 100644
GIT binary patch
delta 1859
zcmXxkYfKbZ6u|Mb%gXv-MOjcmT&7a-h03mgidDd+yaI&=K`SlMtScG~C_znpWJMt)
zjcCHg+8C3@`iWFx%eKKZO8cQE)h2aFYGTqvKl%99N0b<2qW^Pexyjkzy|XiO?%aE3
zMz#;_h&|5mToPJ6kxLwMi$w9ZhaXyVsz@4sih525&cqR%g=5L_?d13_W^w!h&cmmu
z_npE3`n@8>7{bLOG3lhUk^|>(IgVlhK1?2ei*1Yx$a(}%;|}}>S78ma*oi&39{)g1
z^bSA7z-*Cx4C5Z`#1(iCmy%!prxW5p)*Le<sl^(`d$AU8U@5-BAQrM5Yq10Mx*^oW
zzoI65i4~abbH=++ClJGBcpXdd9(u?x@8~dD@yrz=hs?!n%t4k&iZKJ5k;RY*^6+vH
znY;8RkH=82A4HvS9KXW**n@l0Mb_b8NJ{arKd~Y@8Fci9VbqB<U>>%ig~w3$^fDIV
zC@#mxSca+dovo<EHH;4>$5&7v<Sw%P@&vEDM4sUS#$Wnb|5J3X`FUy#WI9E&26enO
zIc~%)j5|;hT*Vf=kChl;c9(EBHsBO~f?=|B;xOvozd@~)&lie(gFh`~{cq4|UBqnA
z&2&G*Av}Z6QE#w6M`Rn?*o1!eMH58uZyZCt@dZk~9-pH=SZIk;tT%Chv6spm#34M7
zSuxi61f6g32rjXl3ol|X<FpS%zQ8`bj89M#9bYQajyCSXLMrSe4kEiEDO94Gi7c)x
z!;f$iR^Tx#!q_++-TN1)#q=NQg>O-}z(>iFLvm4zs2pG882*Xh@vd&i6BLAn4^UU&
zU)1Y2uW;^HkGf^;Sc*5XSl|C=bfO$syi%kZ`>+px$2P2A<s`U<I-WxPJ~XZtVb`P=
zT{zte=}=$hY3oqW(G}1ZB=k+<5>wE#_5Gj4KpPV_Z6m*FL=90+@V1x_iYC>@4w$Cz
zbSlA9m=)8f*5)OsFWF42Cs;_c)L>RxW$~Owe)Bb&ffT2>iA;irH?JU=_A$R@1a&4`
z34PCXwMvL>gf?o<e2}!ifv6=cV!CZgc0AJuuvPnEB8AX>p-`oY&_?l_55`*5y{sU#
zu><C{)4tY*HhnF(5c*-siI2?KmsQs#m90Cipw)D=*YrYGT~{I_wZ-cWSH;_XO$#`q
z;Xqf^oX~h6($jr-e|J|jG3q<-@>(t3M|&dCcqo0No692U+3uOalCqN0)kUF1|NMl@
zH5@PV=gtd?Jv=#JPuM?Nnk|&5_P<E?Ojx7{<o}SL{7>w!?Q!Qcv9H><?4Kvk*b|fe
zTz4n&DE~Kip8kK9Lxc7m{oAs~?eEQx{fm8TvM+w6pwTy-sHM58t~&9wpep4(2Ql?-

delta 1555
zcmZY9T}V_x6u|MLtE;B2rk3Ak`E8b~t5%j}T56gJDr%(<_T`HNh81YI8Hp7Z<)Q@@
zQ4u6amYYd05@9b!qHl>5_#*X|5PcW@&)v0`2G0Iw?%g{xcjnB!Tt8H6e;?vCAe3Sv
zhRE?0*^hg@_@O-Z774&7SdJ6uhkj<4p}2~6EC!<uwVz!Whs~ISXE7SbFb!uhMZ_*Y
zsU&kD!N+x@9P4PeV;jE4dMxl2Nyh<fz!zx4NM@r0RbnExVgg>nW*oy*3|}F#4hu0G
z4`Vdr%OI6fE{tLs{=hse_7};*4%~>ts1MGg4s2mrbig7k#1?n^A?gI)U=l82E`|q+
z=%Q94bCPO|WPE9)qDylML$DutIeCD*ygWk2lxL_Ddx?Yi9Z%p@i%2G#f<&xnLml7<
zuEFCNk5^E)Y6SIvuh5=C<qMU3jAH}SaX)Ur^X~R2M$&$V?3R4R`yL{Ha5e3F%=!#I
zM=nWTsLN6;pxuDl-yqiDB<{qBFxFqQ??4y{ho5jC7BI~g>_gqd&!~G|$7pwO1c$LI
zT;vk|LQUG<2oen!P@g}<tc!38t1vLi)qfMt(;kju{k7u@tbaK!puR~4DXd91ggxjH
zOXt{&eHcW>b>J=3Bn@Ys^|_1Kj^=ogChWxPIEOk;+gg!>IE4o=*-lD!Qt3ury5DXs
zWY9L+Yp@U-(TcZ`{FG^A+hq=UL_VPAf<GDg4ZCm}Pm_VQSi%w07rco&&LZko*uPTA
zqf(LLI;ZFGDD819!C1~tHy*({Ttw}#AkEe8N4k)Y7=gj*tQP8IHD|Q2sK&i~)O?`p
z<zhDyj@2*{q!2eR-*U_8`B!YzSYhMMNdfUDJPFc9$SGlWj1SokTrTlccDftukyJ6h
z2YSNv`(q@CQRin9VIp`L<EXHT{}oo+D7uW<gb(3I=ql*<Vk^PPG`@mn+(_t_>2_ui
z?1-^t96HI&;U||^N$45hPH53Bi6ZpA7s1Ig$`*d(9DB^iOjRe_os;GoA4h^^x6$ab
z^m#ZUg0q~}!6BZ$+17lkZM`+i*&5>XFx{9Lcf^OqI2*&>206+S@A`3Jwr6Hy=BYCv
QY0}fNlv3fWNG&q`1t*oH@Bjb+

diff --git a/po/bg.po b/po/bg.po
index 9db72ef67..f457f990c 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2011-04-26 22:35+0300\n"
 "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -18,17 +18,23 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Неуспешно декодиране на изображение, формат JPEG."
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "„%s“ от „%s“"
 
-msgid "Failed to decode JPEG image"
-msgstr "Неуспешно декодиране на изображение, формат JPEG."
-
 msgid "Could not connect to server"
 msgstr "Не може да се осъществи връзка към сървър."
 
+msgid "No URL set."
+msgstr "Не е зададен адрес."
+
 msgid "Server does not support seeking."
 msgstr "Сървърът не поддържа търсене."
 
@@ -48,9 +54,6 @@ msgstr "Възникна мрежова грешка или сървърът н
 msgid "Server sent bad data."
 msgstr "Сървърът изпрати лоши данни."
 
-msgid "No URL set."
-msgstr "Не е зададен адрес."
-
 msgid "Internal data stream error."
 msgstr "Вътрешна грешка на потока от данни."
 
@@ -63,6 +66,9 @@ msgstr "Този файл не съдържа изпълними потоци."
 msgid "This file is invalid and cannot be played."
 msgstr "Този файл е повреден и не може да бъде изпълнен."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Този файл е повреден и не може да бъде изпълнен."
 
@@ -114,15 +120,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Устройството не може да се отвори за изпълнение."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Аудио устройството не може да се отвори за запис, нямате права за това."
-
-msgid "Could not open audio device for recording."
-msgstr "Аудио устройството не може да се отвори за запис."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -142,6 +139,44 @@ msgstr "Това аудио устройство не поддържа запи
 msgid "Error recording from audio device."
 msgstr "Грешка при записа от аудио устройството."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Аудио устройството не може да се отвори за запис, нямате права за това."
+
+msgid "Could not open audio device for recording."
+msgstr "Аудио устройството не може да се отвори за запис."
+
+msgid "Record Source"
+msgstr "Източник за запис"
+
+msgid "Microphone"
+msgstr "Микрофон"
+
+msgid "Line In"
+msgstr "Вход"
+
+msgid "Internal CD"
+msgstr "Вътрешно CD"
+
+msgid "SPDIF In"
+msgstr "Вход SPDIF"
+
+msgid "AUX 1 In"
+msgstr "Вход AUX 1"
+
+msgid "AUX 2 In"
+msgstr "Вход AUX 2"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Обратна връзка"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Обратна връзка"
+
 msgid "Volume"
 msgstr "Сила на звука"
 
@@ -241,6 +276,10 @@ msgstr "Неуспешно задаване на вход %d на устройс
 msgid "Failed to change mute state for device '%s'."
 msgstr "Неуспешно получаване на силата на сигнала на устройство „%s“."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Устройството „%s“ не може да се идентифицира."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -265,10 +304,6 @@ msgstr "Неуспешно запитване за нормата на устр
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Неуспешно получаване на контролните атрибути на устройството „%s“."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Устройството „%s“ не може да се идентифицира."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "„%s“ не е устройство."
@@ -362,9 +397,6 @@ msgstr "Работата без часовник е невъзможна."
 #~ msgid "Line-in"
 #~ msgstr "Вход"
 
-#~ msgid "Microphone"
-#~ msgstr "Микрофон"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -463,21 +495,9 @@ msgstr "Работата без часовник е невъзможна."
 #~ msgid "Telephone"
 #~ msgstr "Телефон"
 
-#~ msgid "Line In"
-#~ msgstr "Вход"
-
-#~ msgid "Internal CD"
-#~ msgstr "Вътрешно CD"
-
 #~ msgid "Video In"
 #~ msgstr "Видео вход"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "Вход AUX 1"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "Вход AUX 2"
-
 #~ msgid "AUX In"
 #~ msgstr "Вход AUX"
 
@@ -490,9 +510,6 @@ msgstr "Работата без часовник е невъзможна."
 #~ msgid "Microphone Boost"
 #~ msgstr "Усилване на микрофона"
 
-#~ msgid "Loopback"
-#~ msgstr "Обратна връзка"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Диагностика"
 
@@ -505,9 +522,6 @@ msgstr "Работата без часовник е невъзможна."
 #~ msgid "Input"
 #~ msgstr "Вход"
 
-#~ msgid "Record Source"
-#~ msgstr "Източник за запис"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Източник за звуков монитор"
 
@@ -547,9 +561,6 @@ msgstr "Работата без часовник е невъзможна."
 #~ msgid "Input Mix"
 #~ msgstr "Смесител на входа"
 
-#~ msgid "SPDIF In"
-#~ msgstr "Вход SPDIF"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Микрофон 1"
 
diff --git a/po/ca.gmo b/po/ca.gmo
index ef7dc5de6373d8a9193a2ac223cfed1b364e5be7..fca0bad0d614b96db020635b62a4886a404b5bc3 100644
GIT binary patch
delta 1882
zcmYk+Z){Ul7{~FawQP(z<~ldFBHI-Q6Nb2z4FLgHx_`wnM&@8qL#%6=RlL>Gkr*{4
z(V#{#(MFBNKvXcnu!PWeh8UBD7hs|<)M!kEXyTvv#>60R)Zq7b@15~v=YGyP>%Hfk
z=REg*GjMXabU7M%!zeqcw@?p;&9Znt!i6$kWp*R(LH%YwF2>VXgXe<&`JjIRn;8EB
zZ^EBY&%K6i*jR1Wi*a0TR<aoyYZ!PAJ8=$I<JZCX-?*3lYG!>BpT&LnJFdlHRxyPI
z+<>2<Cc2It*tW#%HcVm~XYh8sh%1@j{-6<OpsChdk&WOm{S1!a8Qh3}Vh^q(9P4pE
z>b_&Bi9bb6coqAxwa)L~k6J(pSK$ZPhZixz{C1rNi?zs7Gv=_R*orYEMAnN@97lp-
z)5zxSF=Xvl48}{S`(HpUxQuV&B`jdN-t12N3YpR(oKLBnMwEsgm_#jP6x(qxI(Qg$
zrf*?4&S58B#w}RY;2%W-@1TD$=)Z&7$OYv1?FzmfGW!|%vm=eff0D-QjsA*$4ZIc@
zx!E6&q8{v^A~A+tn8uZO43l^k73!;~g|@Kjt(Za`=~3K)pW|U{XeR!z(Ri_$aAItk
z|DdDj(!Yd5xVgoj@Cf$NKNI*PzC^!;Z4Ti3sD=E3DeQ{*$u^4*(?5>W7~))~Fk7N=
zAB|5?$=1lbq8lGXjem%P_!sH{i4|s>@FZ@=?*o^S^1JBo!9{oil^dr}M|u`@_8$lS
zhKgJ%#zAw8wheVAW2hS*LM7Xy$R@3T3gOFm3co}}?kUHQNbRkDjwDdYw-1$MuLi!0
zTEIuBiN8Z$^OF5T;~oY&7+sGUycf%;*Xs%@<WUY*{Sjoyo<{BTIEHYctfQfgY^5ra
zT0H6Gl^(9jALR}yK!i&EZfScNEfro~VQ;ru7;lUBLD5G^h4p%cdA+ReMMZF@H|j@?
zw6VLX8>spwC>d4smZ_}r(f<7e(N4%g3sXs6?~B-u3uTaoUNzFhwo_}VN=!v&2UUd>
z@gk)5T~y_hLtQA!7nO*Qcb(KVNxgxpb0eR;Oa|}W)tTv7_=Z?NRb?$T;kEpuP*bnx
zHmc4%RzAJxKvT-K#N?FI<LsU-dabyVax2lQiRy52p!`7H?q+^5nsc+>4|e6I3;8D=
z$-CLgT-__7YG)!pTbRz4<Mo@u+%{d`8eZJfx211mS9iSfe8V%LHG^)kkj|tXZxWlx
z7mB(6djJ1lyi(VAVo6PMz{$DAY{4zRx4fl1zoOXDnf0Gwqw{laF70Hp&LRIPrq#@!
yJCJuP{cYcdnuhXj(aG@pLUty1h-n|^*76VSo#pLLL*2q;6XOG^p~{$36aE)mAlZHZ

delta 1569
zcmY+^$xl;J6u{wAK%@+1Xr&-i5di^(mI5k*GK!!CClnG{FsLya3|Lthw1%)DQ6n@M
zr#M9tVu%9`E?gL6#D&HMD>Nz#{Rea-QKIp8UaQfY-1pu4;Jy3qIp_9n!+f20At7vB
zXtnfIdP#^#JMIYMLVLJOBpM%K6Fx;Vn!^KHaRu`<j6*l-d+IP9JFx`MVhYY+9?oH|
zh*y>v<ZvTvdEgICxR1F9`|vgH$I1wid>qF%e1>jJ=4*7JW?YTOFbhYq6K8M@+9O3)
zVHFl*H>R+@Tw>6`jcMG5Kd=mIqeNVI3JY-x^}+Y33tI?_E?9$AcsMwpME!s_n2let
z6zwr08q{Xwn`Ad8v%VZ)prIMS1RO&)Clko#<vy~eJVyPn=XeRfV?SQBh!kOHtcVlc
zs0;L92KJ%@FQBIC0qXzFqBobpHwNXHP6G3>9oOM-a6XO6%s(R8l102?68VMk%rEoR
zt#}XlCJ}2u3+j7PQ8(6v1=xX_iV-XE*TS3PhKB45I?-kmsla;F)C^$_zQO^FVH=}3
zj7KpsF;Kum*vtGSZpBi2V8KBwWj+~n0Y{kIl8ApDgBwYK7ktJ>=DBQFi>42|@G5rW
zPt@Y;Tq&{_pP<%EEcw&t+EDM`!FpUoeZG<-u>o)4Mtm34>P@2{xY3N9EV+i%pWMbG
zoC^8@HDuA0x`w<6wKl4eZ<a>XNOj=^-b0PhP6|MG{t3%4$q`6R3+ns59Srov=TVR0
zL)?P%s8w&z6xohju^7itUpO0_FQGnP$VE4>3r(nLBv?ix2*yWhjaAaM=7P;@6ddm`
z3Z)7)O#e1c&)?=|#72aI7gB627=o0A)|?O|qn>mFf0~0qb#S7^N9v8#>Iu`|AEU60
zF_-o9P<kGn+A_{J{MWQlwNd;=L^KU%x<=1M-$d6_K#GmiqEXb8R?yedv*{W!4xJR0
zaM5sTPNV3X>Dn|`)RytnsXrQee6(rtr287f4~4dz^!Q(d?^*84veX-sGnR8EUs9aQ
zzdJ4=B%;_^?sOM8UH)SUgQl20$NN1;dO97|t!)mMKi+mT(l=(c`{vR;=7WwCfj|0>
VWV|)`qB3)Qr!(XI*E1tRegkATnX~`^

diff --git a/po/ca.po b/po/ca.po
index 7b7199dd5..015c2ae83 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\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"
@@ -19,17 +19,23 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Ha fallat en descodificar la imatge JPEG"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "«%s» per «%s»"
 
-msgid "Failed to decode JPEG image"
-msgstr "Ha fallat en descodificar la imatge JPEG"
-
 msgid "Could not connect to server"
 msgstr "No s'ha pogut connectar al servidor"
 
+msgid "No URL set."
+msgstr "No s'ha indicat cap URL."
+
 msgid "Server does not support seeking."
 msgstr "El servidor no ademet les cerques."
 
@@ -51,9 +57,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr "El servidor ha enviat dades errònies."
 
-msgid "No URL set."
-msgstr "No s'ha indicat cap URL."
-
 msgid "Internal data stream error."
 msgstr "S'ha produït un error intern de flux de dades."
 
@@ -66,6 +69,9 @@ msgstr "Aquest fitxer no conté cap flux reproduïble."
 msgid "This file is invalid and cannot be played."
 msgstr "Aquest fitxer no és vàlid i no es pot reproduir."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Aquest fitxer està malmès i no es pot reproduir."
 
@@ -119,16 +125,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "No s'ha pogut obrir el dispositiu d'àudio per a la reproducció."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"No s'ha pogut obrir el dispositiu d'àudio per a l'enregistrament. No teniu "
-"permís per obrir el dispositiu."
-
-msgid "Could not open audio device for recording."
-msgstr "No s'ha pogut obrir el dispositiu d'àudio per a l'enregistrament."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -148,6 +144,45 @@ msgstr "Aquest dispositiu d'àudio no permet l'enregistrament."
 msgid "Error recording from audio device."
 msgstr "S'ha produït un error a l'enregistrar des del dispositiu d'àudio."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"No s'ha pogut obrir el dispositiu d'àudio per a l'enregistrament. No teniu "
+"permís per obrir el dispositiu."
+
+msgid "Could not open audio device for recording."
+msgstr "No s'ha pogut obrir el dispositiu d'àudio per a l'enregistrament."
+
+msgid "Record Source"
+msgstr "Font d'enregistrament"
+
+msgid "Microphone"
+msgstr "Micròfon"
+
+msgid "Line In"
+msgstr "Línia d'entrada"
+
+msgid "Internal CD"
+msgstr "CD intern"
+
+msgid "SPDIF In"
+msgstr "Entrada SPDIF"
+
+msgid "AUX 1 In"
+msgstr "Entrada AUX 1"
+
+msgid "AUX 2 In"
+msgstr "Entrada AUX 2"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Bucle local"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Bucle local"
+
 msgid "Volume"
 msgstr "Volum"
 
@@ -254,6 +289,10 @@ msgstr "No s'ha pogut establir l'entrada %d en el dispositiu %s."
 msgid "Failed to change mute state for device '%s'."
 msgstr "No s'ha pogut obtenir la intensitat del senyal per al dispositiu «%s»."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "No es pot identificar el dispositiu «%s»."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -283,10 +322,6 @@ msgid "Failed getting controls attributes on device '%s'."
 msgstr ""
 "No s'ha pogut obtenir els atributs dels controls en el dispositiu «%s»."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "No es pot identificar el dispositiu «%s»."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Això no és un dispositiu «%s»."
@@ -386,9 +421,6 @@ msgstr "No es pot operar sense un rellotge"
 #~ msgid "Line-in"
 #~ msgstr "Línia d'entrada"
 
-#~ msgid "Microphone"
-#~ msgstr "Micròfon"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -489,21 +521,9 @@ msgstr "No es pot operar sense un rellotge"
 #~ msgid "Telephone"
 #~ msgstr "Telèfon"
 
-#~ msgid "Line In"
-#~ msgstr "Línia d'entrada"
-
-#~ msgid "Internal CD"
-#~ msgstr "CD intern"
-
 #~ msgid "Video In"
 #~ msgstr "Entrada de vídeo"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "Entrada AUX 1"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "Entrada AUX 2"
-
 #~ msgid "AUX In"
 #~ msgstr "Entrada AUX"
 
@@ -516,9 +536,6 @@ msgstr "No es pot operar sense un rellotge"
 #~ msgid "Microphone Boost"
 #~ msgstr "Amplificació del micròfon"
 
-#~ msgid "Loopback"
-#~ msgstr "Bucle local"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Diagnòstic"
 
@@ -531,9 +548,6 @@ msgstr "No es pot operar sense un rellotge"
 #~ msgid "Input"
 #~ msgstr "Entrada"
 
-#~ msgid "Record Source"
-#~ msgstr "Font d'enregistrament"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Font del monitor"
 
@@ -573,9 +587,6 @@ msgstr "No es pot operar sense un rellotge"
 #~ msgid "Input Mix"
 #~ msgstr "Mescla d'entrada"
 
-#~ msgid "SPDIF In"
-#~ msgstr "Entrada SPDIF"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Micròfon 1"
 
diff --git a/po/cs.gmo b/po/cs.gmo
index 701540911cf64811f503ccd90a17253345fd0cfa..25dacda0b33e1df7155c39afb909a8027754e146 100644
GIT binary patch
delta 1827
zcmX}sZ){Ul7{~Fawd(-gCaoK8!gd`Bjv-siHs*A=f3S67P?!vuk+_t?#%2p;;{^$6
z;*2g)N3>DIm>A<L68FZc_yQA?WiQaEF#%&tz?i7<9mzmnnc(+#@0}-k`Z?#O_ndQ|
z^W6J$&wIP_w<4i;j5bKDC#HgCX}lWZhn5VRJ%IaB|2c}Q@G`E(PyO*#f4qd1T>k+d
z#6M8;{)4p`Ej4SwI6h*Qw-a<4xG;;GaRE2s4gdPTIKp@ntDeU5cnELf7VKvihcSoS
z@mthF_wX^SU1PQpdvOd;;1hTa>sjBH>BPBEdB3|O8^C_X$8Z2Y!8ZIGW4M)cY{R3d
z``$z?{55L9yV!-*W!`ucwShc7jvr$yUc(UU+dVpL)<WfGtYPI?jWtM$tOX;OM3P}C
z<l$`+*}F~q*Yl|RUqfxUfbZfrn8UFOvnITbENLOmC*MpbLPrz!qBgPz>u>}eJc~Nh
zi`a|{xEXI@2Zq;rN70Q>GM@6s@1q`M2|0fI75@wnNRsTkDEU{4e~EfK-}sQXvnJG&
zbo%22Dieor9iG8Q@pW`?0e9f{SdU?Lt0!&1c07VT_%`YRZeR+-Rpft;&dDmT>hE9+
z<0Gu1Kg^>hSVo;)<HKGJ>_<&Biyz=;E7y5k)x<3B#V@b{OKK=QY{GH8hzYbjkJX8T
z_zccr5|^+St9W;GmZNw8-@>QxcZ^}}2Jgv}_#ERoR88FU{R@@qJE$YotD(#}$Q~@;
zLx=jX7m(w$DO4?-M-|(v{`Gn6X8a*u!Qb!_USifR-0pbuOrze0S=13;K^5B~*5i-J
zUhFRN40(&NomMV1p;DE`A-sS}@lDi|mUFkpUC51g8da?G7{Habl@9ggW>YEVWQ_81
zo92lSjRYk?rZ|61qNa*gYbTVle&Shzx5fRS=%b{@e%z*aT2-xjQRW5-HD!%*v8M@T
zLf-^!Tuqr(Q!TlT_1&*g2~v9&Bq(Ax6J+-Pwu@c|L0Q;NLaE(ND04l8nzEweQ`<od
z5Du}@R5xn=m)-3j)UOKdK0<}2v*{z$C|>t9+J>r;E<$Y!(e3uUGgVjbeJ7!_t|?qD
zIbNB_SoguhPR!XiGwt@`P9jr`gojImy?uq}%l1|Ak3AEawEKsliBv9oYCM}s7Z=Lj
z2$VX**_m7_U5Hn-2e~a(Q5{?rYwc)lYiy1eUs?NQps+K#t}JFFXQpRPIa(-Q9Eg6t
zT5~V2AFtJA%|4kuyZDtuxEF>dCUe>2*-Y`p4Yvd3qsMaDlg_!tkIrSrUYaTFt!rE3
Q&NiIvOYAPbT=!GpKiksBN&o-=

delta 1568
zcmY+^OGs2v7{Kvw)W%0OnVO@O)2+!&EuC@HURpkqRPvEoYScoktcYHYEnGB#1wvuz
zpcNFYf)+g;wH6gox{8FNAP8Gkw38Hy3Znma=ep>?ncq40G3T7`eCJ-R_)r%3ln^x_
zlyd4)YJP-B3vQ3%hw@;K$UJ<A)%Xl!G1eY75f{-<!+7+e{?Ar)VJqh2SzLl6n2B#N
zLnI)7XsqIbJ34%$8h6w8<4JslO;{Wwl7$1<jL*@Bsmw+Ps=<|b6y4Z|tvG_K(HSSQ
z0!uIt+i(fv%OH(yTo}Si{EdZJK3BwxU6_M+P+$CrI<SMV=zwKdg6&rSHtGakV>*7v
z0(8z7(V*5KbCL#3WqjF7Lql^K6R;myoZLbdFZYl!WfXN{FK`fl;VHcA5Xr^J1tK2w
zp$@Pgm*Fuquorc!?xQ|8j)4psKWJ=37aN#`Ew~oXS^XhQr9X-6mi)x8Hj%%`;^Ygn
z*2qmGbCOMoVXIIV)`U*%z~y)W4ZNF3{MXT#;DYXrJt@4BOk7XD1<SA>J@_8m^f{K%
zgGcZH&R{;aB!}<!qP{<kx&_&cu3NbS^?$nYIu1LDzj-4iytmz0%Z*XY#5pXx9dq#z
zUcoAq#UvzDV-faXJ&vQEq-2&|h<mUB`)~t(Mjg+^5z&R$2WT|X=t1&MCN00A?%fP(
z$P&}cF{J>By40iQMyu67jHUFu@DV=2Yv|`_l%Rt@^I;w87ImXWJkUpjXJr@}OWtAu
zPN7C1-5_JJ4mET)P**Tv^>udoo)<OgYSD)JEWt7hixvWE=2$Um&RHd3CLHgW30H#a
ztvj=5g3T6P0rL_PUf5dUTO<)w(n3ffb0Hf3E!5d!&?vP!*~r$L-vd2i`u#Bz%xv?c
zdlE_2m6KEE`G)_B+v@2y<WY4SbmjUH)5vV1YKS!|dRlU*y0t~rHB?PV4LyfWay4r;
z+zY9C#y3;7X!4LtW>)J*gOg<zO(IvY%6>4iuG1eHv+s-!x*Zi}=Zxc`EtnGT4K>6k
zM8xEIHhO&79&hMq!eiUKmrpzVohOXaUCo9!RGBmq8;o=9vxl#S&by{;_QvD><3?BT
Qk~2AY(?|`C8SiZW0ByCKH2?qr

diff --git a/po/cs.po b/po/cs.po
index ee288ef5b..0914d71c9 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2011-01-12 23:07+0100\n"
 "Last-Translator: Petr Kovar <pknbe@volny.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -19,17 +19,23 @@ msgstr ""
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 "X-Generator: Lokalize 1.1\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Nezdařilo se dekódování obrázku JPEG"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "\"%s\" od \"%s\""
 
-msgid "Failed to decode JPEG image"
-msgstr "Nezdařilo se dekódování obrázku JPEG"
-
 msgid "Could not connect to server"
 msgstr "Nezdařilo se spojení se serverem"
 
+msgid "No URL set."
+msgstr "Nenastaveno URL."
+
 msgid "Server does not support seeking."
 msgstr "Server nepodporuje hledání."
 
@@ -49,9 +55,6 @@ msgstr "Došlo k síťové chybě, nebo server neočekávaně ukončil spojení.
 msgid "Server sent bad data."
 msgstr "Server odeslal chybná data."
 
-msgid "No URL set."
-msgstr "Nenastaveno URL."
-
 msgid "Internal data stream error."
 msgstr "Vnitřní chyba datového proudu."
 
@@ -64,6 +67,9 @@ msgstr "Tento soubor neobsahuje hratelné proudy."
 msgid "This file is invalid and cannot be played."
 msgstr "Tento soubor je neplatný a nelze jej přehrát."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Tento soubor je poškozen a nelze jej přehrát."
 
@@ -116,16 +122,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Zvukové zařízení nelze otevřít ke čtení."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Zvukové zařízení nelze otevřít k nahrávání. Nemáte oprávnění k otevření "
-"zařízení."
-
-msgid "Could not open audio device for recording."
-msgstr "Zvukové zařízení nelze otevřít k nahrávání."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -145,6 +141,45 @@ msgstr "Toto zvukové zařízení nepodporuje nahrávání."
 msgid "Error recording from audio device."
 msgstr "Chyba při nahrávání ze zvukového zařízení."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Zvukové zařízení nelze otevřít k nahrávání. Nemáte oprávnění k otevření "
+"zařízení."
+
+msgid "Could not open audio device for recording."
+msgstr "Zvukové zařízení nelze otevřít k nahrávání."
+
+msgid "Record Source"
+msgstr "Zdroj záznamu"
+
+msgid "Microphone"
+msgstr "Mikrofon"
+
+msgid "Line In"
+msgstr "Linkový vstup"
+
+msgid "Internal CD"
+msgstr "Vnitřní CD"
+
+msgid "SPDIF In"
+msgstr "Vstup SPDIF"
+
+msgid "AUX 1 In"
+msgstr "Vstup AUX 1"
+
+msgid "AUX 2 In"
+msgstr "Vstup AUX 2"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Zpětná smyčka"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Zpětná smyčka"
+
 msgid "Volume"
 msgstr "Hlasitost"
 
@@ -243,6 +278,10 @@ msgstr "Nezdařilo se nastavení vstupu \"%d\" na zařízení \"%s\"."
 msgid "Failed to change mute state for device '%s'."
 msgstr "Nezdařilo se zjištění síly signálu u zařízení \"%s\"."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Nelze rozpoznat zařízení \"%s\"."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -267,10 +306,6 @@ msgstr "Nezdařilo se dotázání na norm na zařízení \"%s\"."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Nezdařilo se zjištění vlastností ovládacích prvků na zařízení \"%s\"."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Nelze rozpoznat zařízení \"%s\"."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Toto není zařízení \"%s\"."
@@ -365,9 +400,6 @@ msgstr "Není možné fungovat bez hodin"
 #~ msgid "Line-in"
 #~ msgstr "Linkový vstup"
 
-#~ msgid "Microphone"
-#~ msgstr "Mikrofon"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -466,21 +498,9 @@ msgstr "Není možné fungovat bez hodin"
 #~ msgid "Telephone"
 #~ msgstr "Telefon"
 
-#~ msgid "Line In"
-#~ msgstr "Linkový vstup"
-
-#~ msgid "Internal CD"
-#~ msgstr "Vnitřní CD"
-
 #~ msgid "Video In"
 #~ msgstr "Vstup videa"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "Vstup AUX 1"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "Vstup AUX 2"
-
 #~ msgid "AUX In"
 #~ msgstr "Vstup AUX"
 
@@ -493,9 +513,6 @@ msgstr "Není možné fungovat bez hodin"
 #~ msgid "Microphone Boost"
 #~ msgstr "Zesílení mikrofonu"
 
-#~ msgid "Loopback"
-#~ msgstr "Zpětná smyčka"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Diagnostika"
 
@@ -508,9 +525,6 @@ msgstr "Není možné fungovat bez hodin"
 #~ msgid "Input"
 #~ msgstr "Vstup"
 
-#~ msgid "Record Source"
-#~ msgstr "Zdroj záznamu"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Zdroj monitoru"
 
@@ -550,9 +564,6 @@ msgstr "Není možné fungovat bez hodin"
 #~ msgid "Input Mix"
 #~ msgstr "Směšovač vstupu"
 
-#~ msgid "SPDIF In"
-#~ msgstr "Vstup SPDIF"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Mikrofon 1"
 
diff --git a/po/da.gmo b/po/da.gmo
index c997d7fb35c8b19a2359a44d34db06a8443373b4..d3508f5a428a8a9c9ec86c296a4b3a167455bb92 100644
GIT binary patch
delta 1937
zcmX}sUrbw79Ki9@(!uyEwiJaib_E<VMt56ix7BUf6@?-Urm`^~=8%?o2ezy$BqW+@
z%wp!|izjOIVJ~};=@PXuzU*OS?qQ(eg*}nY_%MAi(PY_XOpN&b-ClRXub*>nxaXYv
zJHLAu2UmLYcf6jD6>X4cB4*r5rSPhUAKGZCQdM{u<$sRjW?aN_{MH#?b;dW)&-GQT
z#k(l;KE!79l_}MOA>5)=UY(@V!G-s*9k1YayyaZ~2ahn`&Z?*JZ9Iy9;tuR*7vq@4
zZd^fGXan1@xk9N{jN=5J#Aom(wy?gsM<>Juf2F-6HGut$lQ@81VFVvw5O<P}03JuV
z??aS@uc0h>AD_d9>f-oSlnvzZX}pACyonyxR~vNLtn$<-#Tu#x8?X^ck?KJ&jv~oW
zlgPuXX=Lvz=UmUD-2XnxhBbbI%b3N9$CTQIYsiwy!};V*I$k<5VH{;6L%0o(pn>x!
zXZk6ccm><>4o0!`@#0a$u#54GGyWXqL2e+&uYSe_mr}nXNm3_#<Uc{@O<!^0?@>0g
z<cyb{@ftqC_1nmwdce<9SYB7mP$$M1_oJNsIg}du0y}UOWn+Ik*V}oT5ypr7<UdE}
zA{WNcS6?g+3twUU5pKobP$u5QE?Th7u^(p{pTeEEjs|XivUmg?C^c~cWx=y}2ydZe
zt}Rb~4$yfGWrr6rj6dRDbT<|!-iI$Rwr~f2jdGUjC{I{Pp+qr^QUkLnDSiv(NY5dA
zQ`+%M$NY8YAJ$P)f7kI3lw$h}d3d#fve9~8=F2#S@1Ufo8{S1(_&b!hVhLs8`zZ7N
zi}HYFq*306Ffv769it;R%%eQnBJRgEl$3g@#31%Mo<`<Umrxd1LTc(!lY6KywU0;;
zWZJG7u;-CCsgvNud3*B3N$A@ZE$$&Cb@C19C3suxvzLOBCWR+Wo<gd+hu}r9zm8yM
zO;Y_VA(@f$HwkHy32E{jup8^!U!zSZY3A#zC{p`Od9X+Ad3tiboPvD}l4_|3sg;9-
zG}38jQu@1z0m2~uZ&FXvJVor^WAYm(N{9#{sqG`AQG<4o1(0uu{Z#||m}1hQ$=e`J
z&Q^}CnxH1BwA-bx`x9vu8yh!*#>iaG?uCp*x^S>;sze{C+^?@!{;t=nn)FZAReGTM
zn(nUYE__yV+2xM+>Akfh_1r#WrBn9Z!`5UrGy6s+ohqEKz2GV{Ue3&ACsVrCyT_eK
z>zH?{(CXXe(%;l|mYac~83;uJA^l6;XnQam4M#f7kZD$oj&!}0nzznanRHj*L@pII
zLS``7W%9SXFzyez{8l>YY<aHO2^m(paK8R%iT<E5rnhZ*s1G-pdZlSqFK_KF3^w0$
zxhIo)$Y{{RM#R3IEuTsm+&*kgXERfobm6S=gR9h-wq}wk9dC)2u!x>-StwYoFS;s*
N7LsRj3)$(E`VX3S<y8Ox

delta 3087
zcma*nTWlQF8Nl(gN$e2E3APhAHg@8Z1QWo{#$E>~=8~I}5R;G#0r!D68t<Hqhuxi7
z=3*yMSR^1+Efml|kPt#t4Ty^rp)L|sRS}ATN(HGZ59Nu7v{bFC0+p&(2wwPqGrJ*9
zgv3dXe{(yx?|f(9-}Lf$^>oLArxayBwU>Hgo>FBTY~l~)lV+t_@eGdR=eP*3U6{HJ
zJGtM3ZJ0;tC&X3w1a8FFum}H+S77EMrPe7`RRdgH#)Df?Ufhkh;|aVAzs3nHGwPN2
zF8&DrgCn@BB^~HqT+98ln8Ua6O8hS_!&Qrwx)gIL-%Vf-<EwkP7~sLvXyGhgj{Piq
z4c>y%;axb0Cs0=MXB@-Na3|)LD0LIwjaTC=$^^c`VeDU;_A`N5?td=#jIVyng{<V?
zC^OU-E43N7qud`unenUGkAK3e@PD`f2Z%etP(#>_qbL(Rh#go#f~X!qqOTr7)~KGu
zs?79xE{@|z=%d@N)CN3*L)cC)GQd{s!`-N{gtGUK;wJnxUWb1}Y1c>G*<-a2NAU<s
zL~6JmPcI|>@}PBjI`eB#?)T#e{uIeK^%_PQrQSfIt=9j5eaBIhl|5MZQCz|Oabyg2
z5?A9Xl!$zaTTnid<lMS~_)GFxJh%dXhBC9?pgjKs_u|4XG8!lFHv9l3N7fMUgLpHp
z#OF~uehcOO$0!SFz9fyvDDp@ZQF7~{YW?CRl!ou)M*J66u#agE;^V0C_jom)#_O<?
zvnDyRA0;BwC=-4gZ^1TZHHwE&w)7di5&wvrvAT#+WyRwtNp%FT#gixl{}Xp$CmSzY
za|cRC52Hlv4U_@Spd?kVPPgcCBzWqox_jyxlr6g#Nye%=#s%A=eu+2Y3-}6tiudDV
zY@md&jd<m745fn^l!@Puaym{Ti&h_^^z#ME#In4Ub`Ht{p2ZvR4>&02zlr$C`OMX|
zk?5%7C<DBX*W+Jt5%zHgGbsBjIkKNBMYe4#^@nmp*_V<WIf=|Xs!Tw(MfxGIvi@}c
zmY}S1j4EY0Ricum$`M;Yl_DYEPG#~*CQBrCQ)NYsGR_6*k(4(6?xIR$=2K-$W%~$D
zQmS%JTd9&vvT6xg6ICK2``0L!G%k?esU#VjaZmku3+|*!=n2r-BB7VOlALN3cC=CM
zOwK8%DJgsTdlOZDGzO>_QzhHaEwUxoP;aKnwrrxxk&+~p!f%$^EEg1hhmt~Ws%`O}
z=E?bcqp<c)b76ipZ@I1)>bzA6Bj0E%)cy96ep`*1X(w;=y8d7tFXw#YxH_CNI;fbu
zQ*ex}3!Y!L!Z}TB&jeaJ4x&oM^FuxD*v4xN^X;cCbngUuG765yD_h3nZ7rQmVdNS=
zHZ6nH&)V}-mV4OfauhOTXoV(zVo7g&U~%uLaig;Fd7>*`5IB=1Qy(RrPoV9&YtS>E
zU(_>BI2Gp?f7I(+w&Q8Xtwf>r+;cz9>Uf}a>p~NTj(a$$ZE5{WCSJRAdlIz!mOhe+
zyV{2118s+@w(m?EUwegfTk8wfZn;Nw(e-9ry=$*7n{djrv+5ur{GRP4+Gks`KS^5x
zT6?{1Fmp!|*!oiQUR1J^xaWN%k(rDN1!h?Byi!)(e(tBXlYVIB^QIDN*UadGZ<UQs
zA{wNNk3VkDHVtQovLo^Gj(r#9hDL`*28M>?Qb*Uq-1=eukJNtAk;`PF+K0;~=2wlY
zPyMbxIQ6P7TCR4AMWek+XvzMOCuwGFcc+Z~-5)x{GSuw3Gwqs2YMs|6a&6-W;q04X
z$l{V=lKfhm4ps_`I<JN7QZkV+Ub|xFf#hvts*Ns~Q<8dFwZq(5(#art%DACR8fdG)
znkrV_35^U&j%gz+srM33t@tv2u6yx@*%w`#gA_U?veiuvhYopI+z^z=v<uq(q$_tl
ziA*N*k2Ehihto7pvzVa*uRLd{B({Z!Qy~rF)!lvZue#ofKj>~>ndG$N+O`#17Y_B~
z?k(}5?&0Qii{eaAXYJ+ge`MlkdUno>?Arf(-pR!8t=t$dSmjs8lGK)vIHkFxpBH?l
z;p(Ds?T{Q@Pj-8@$*S+&TvFt0J6DoB$<o?At9E3f<T8zNF>*<VdPezVr=(P=WXdJ7
v%P-EpSx@ieYi5+DH4(DwtvG`OCSW-w*-qJqNv@48`JPp~kMi!QUo`3)#GrKs

diff --git a/po/da.po b/po/da.po
index bdf5dfa37..20279084c 100644
--- a/po/da.po
+++ b/po/da.po
@@ -3,17 +3,17 @@
 # This file is distributed under the same license as the gst-plugins-good package.
 #
 # Mogens Jaeger <mogens@jaeger.tf>, 2007.
-# Joe Hansen <joedalton2@yahoo.dk>, 2008, 2009, 2010, 2011, 2012.
+# Joe Hansen <joedalton2@yahoo.dk>, 2008, 2009, 2010, 2011.
 #
 # gain -> forhøjelse
 # boost -> øgning?
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good-1.0.3\n"
+"Project-Id-Version: gst-plugins-good-0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
-"PO-Revision-Date: 2012-12-13 23:54+0200\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
+"PO-Revision-Date: 2011-01-07 23:54+0200\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
 "Language: da\n"
@@ -21,17 +21,23 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Mislykkedes i at afkode JPEG-billede"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "'%s' af '%s'"
 
-msgid "Failed to decode JPEG image"
-msgstr "Mislykkedes i at afkode JPEG-billede"
-
 msgid "Could not connect to server"
 msgstr "Kunne ikke forbinde til server"
 
+msgid "No URL set."
+msgstr "Ingen adresse angivet."
+
 msgid "Server does not support seeking."
 msgstr "Server understøtter ikke søgning."
 
@@ -52,9 +58,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr "Server sendte ugyldige data."
 
-msgid "No URL set."
-msgstr "Ingen adresse angivet."
-
 msgid "Internal data stream error."
 msgstr "Intern datastrømsfejl."
 
@@ -67,6 +70,9 @@ msgstr "Denne fil indeholder ingen spilbar strøm."
 msgid "This file is invalid and cannot be played."
 msgstr "Denne fil er ufuldstændig og kan ikke afspilles."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Denne fil er ødelagt og kan ikke afspilles."
 
@@ -122,16 +128,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Kunne ikke åbne enhed til afspilning."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Kunne ikke åbne lydenhed til optagelse. Du har ikke rettighed til at åbne "
-"enheden."
-
-msgid "Could not open audio device for recording."
-msgstr "Kunne ikke åbne lydenhed til optagelse."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -151,6 +147,45 @@ msgstr "Optagelse er ikke understøttet af denne lydenhed."
 msgid "Error recording from audio device."
 msgstr "Fejl ved optagelse fra lydenhed."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Kunne ikke åbne lydenhed til optagelse. Du har ikke rettighed til at åbne "
+"enheden."
+
+msgid "Could not open audio device for recording."
+msgstr "Kunne ikke åbne lydenhed til optagelse."
+
+msgid "Record Source"
+msgstr "Optag kilde"
+
+msgid "Microphone"
+msgstr "Mikrofon"
+
+msgid "Line In"
+msgstr "Linje ind"
+
+msgid "Internal CD"
+msgstr "Intern cd"
+
+msgid "SPDIF In"
+msgstr "SPDIF ind"
+
+msgid "AUX 1 In"
+msgstr "AUX 1 ind"
+
+msgid "AUX 2 In"
+msgstr "AUX 2 ind"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Loopback"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Loopback"
+
 msgid "Volume"
 msgstr "Lydstyrke"
 
@@ -185,69 +220,74 @@ msgstr "Fejl ved læsning af %d byte på enhed '%s'."
 #, c-format
 msgid "Failed to enumerate possible video formats device '%s' can work with"
 msgstr ""
-"Kunne ikke nummerere mulig videoformater som enhed »%s« kan fungere med"
 
 #, c-format
 msgid "Could not map buffers from device '%s'"
 msgstr "Kunne ikke afbilde mellemlager fra enhed '%s'"
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
-msgstr "Driveren til enhed »%s« understøtter ikke IO-metoden %d"
+msgstr "Driveren til enhed '%s' understøtter ingen kendt optagemetode."
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support any known IO method."
-msgstr "Driveren til enhed »%s« understøtter ingen kendt IO-metode."
+msgstr "Driveren til enhed '%s' understøtter ingen kendt optagemetode."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' does not support video capture"
-msgstr "Enheden »%s« understøtter ikke videooptagelse"
+msgstr "Enhed '%s' er ikke en uddataenhed."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is busy"
-msgstr "Enheden »%s« er optaget"
+msgstr "Enhed '%s' er ikke en uddataenhed."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' cannot capture at %dx%d"
-msgstr "Enheden »%s« kan ikke optage med %dx%d"
+msgstr "Enhed '%s' er ikke en optageenhed."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' cannot capture in the specified format"
-msgstr "Enheden »%s« kan ikke optage i det angivne format"
+msgstr "Enhed '%s' er ikke en optageenhed."
 
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Kunne ikke hente parametre fra enhed '%s'"
 
+#, fuzzy
 msgid "Video device did not accept new frame rate setting."
-msgstr "Videoenheden accepterede ikke ny indstilling for billedrate."
+msgstr ""
+"Enheden til videoinddata accepterede ikke ny indstilling for billedrate."
 
 msgid "Video device could not create buffer pool."
-msgstr "Videoenhed kunne ikke oprette mellemlagerkø."
+msgstr ""
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get settings of tuner %d on device '%s'."
-msgstr "Hentning af indstillinger for tuner %d på enhed »%s« fejlede."
+msgstr "Hentning af indstillinger for tuner %d på enhed '%s' fejlede."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Error getting capabilities for device '%s'."
-msgstr "Fejl under hentning af kapaciteter for enhed »%s«."
+msgstr "Fejl ved læsning af %d byte på enhed '%s'."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is not a tuner."
-msgstr "Enhed »%s« er ikke en tuner."
+msgstr "Enhed '%s' er ikke en uddataenhed."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get radio input on device '%s'. "
-msgstr "Kunne ikke hente radioinddata for enhed »%s«."
+msgstr "Kunne ikke sætte inddata %d for enhed %s."
 
 #, c-format
 msgid "Failed to set input %d on device %s."
 msgstr "Kunne ikke sætte inddata %d for enhed %s."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to change mute state for device '%s'."
-msgstr "Kunne ikke ændre tilstand for tænk/slut for enhed »%s«."
+msgstr "Kunne ikke hente signalstyrke for enhed '%s'."
+
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Kan ikke identificere enhed '%s'."
 
 #, c-format
 msgid ""
@@ -273,10 +313,6 @@ msgstr "Listning af standard på enhed '%s' fejlede."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Hentning af kontrolattributter for enhed '%s' fejlede."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Kan ikke identificere enhed '%s'."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Dette er ikke en enheds '%s'."
@@ -337,3 +373,354 @@ msgstr "Ændring af opløsning under kørsel er endnu ikke understøttet."
 
 msgid "Cannot operate without a clock"
 msgstr "Kan ikke fungere uden et ur"
+
+# Er rammestørrelse ikke mere passende? Jeg er dog ikke helt sikker på
+# konteksten her. 
+#~ msgid "Got unexpected frame size of %u instead of %u."
+#~ msgstr "Fik uventet billedstørrelse på %u i steden for %u."
+
+#~ msgid "Failed trying to get video frames from device '%s'."
+#~ msgstr "Forsøg på at hente videorammer fra enhed '%s' mislykkedes."
+
+#~ msgid "Failed after %d tries. device %s. system error: %s"
+#~ msgstr "Fejlede efter %d forsøg. enhed %s. systemfejl: %s"
+
+#~ msgid "Bass"
+#~ msgstr "Bas"
+
+#~ msgid "Treble"
+#~ msgstr "Diskant"
+
+#~ msgid "Synth"
+#~ msgstr "Synth"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Speaker"
+#~ msgstr "Højtaler"
+
+#~ msgid "Line-in"
+#~ msgstr "Linje-ind"
+
+#~ msgid "CD"
+#~ msgstr "Cd"
+
+#~ msgid "Mixer"
+#~ msgstr "Mikser"
+
+#~ msgid "PCM-2"
+#~ msgstr "PCM-2"
+
+#~ msgid "Record"
+#~ msgstr "Optag"
+
+#~ msgid "In-gain"
+#~ msgstr "Ind-forhøjelse"
+
+#~ msgid "Out-gain"
+#~ msgstr "Ud-forhøjelse"
+
+#~ msgid "Line-1"
+#~ msgstr "Linje-1"
+
+#~ msgid "Line-2"
+#~ msgstr "Linje-2"
+
+#~ msgid "Line-3"
+#~ msgstr "Linje-3"
+
+#~ msgid "Digital-1"
+#~ msgstr "Digital-1"
+
+#~ msgid "Digital-2"
+#~ msgstr "Digital-2"
+
+#~ msgid "Digital-3"
+#~ msgstr "Digital-3"
+
+# Eller Phono-ind 
+#~ msgid "Phone-in"
+#~ msgstr "Lyd-ind"
+
+# Eller Phono-ud
+#~ msgid "Phone-out"
+#~ msgstr "Lyd-ud"
+
+#~ msgid "Video"
+#~ msgstr "Video"
+
+#~ msgid "Radio"
+#~ msgstr "Radio"
+
+#~ msgid "Could not open audio device for mixer control handling."
+#~ msgstr "Kunne ikke åbne lydenhed til håndtering af mikserkontrol."
+
+#~ msgid ""
+#~ "Could not open audio device for mixer control handling. This version of "
+#~ "the Open Sound System is not supported by this element."
+#~ msgstr ""
+#~ "Kunne ikke åbne lydenhed til håndtering af mikserkontrol. Denne version "
+#~ "af Open Sound System er ikke understøttet af dette element."
+
+#~ msgid "Master"
+#~ msgstr "Master"
+
+#~ msgid "Front"
+#~ msgstr "Front"
+
+#~ msgid "Rear"
+#~ msgstr "Bagende"
+
+#~ msgid "Headphones"
+#~ msgstr "Hovedtelefoner"
+
+#~ msgid "Center"
+#~ msgstr "Centrum"
+
+# Low-frequency effect
+#~ msgid "LFE"
+#~ msgstr "LFE"
+
+#~ msgid "Surround"
+#~ msgstr "Surround"
+
+#~ msgid "Side"
+#~ msgstr "Side"
+
+#~ msgid "AUX Out"
+#~ msgstr "AUX ud"
+
+#~ msgid "3D Depth"
+#~ msgstr "3D-dybde"
+
+#~ msgid "3D Center"
+#~ msgstr "3D-centrum"
+
+#~ msgid "3D Enhance"
+#~ msgstr "3D-forstærkning"
+
+#~ msgid "Telephone"
+#~ msgstr "Telefon"
+
+#~ msgid "Video In"
+#~ msgstr "Video ind"
+
+#~ msgid "AUX In"
+#~ msgstr "AUX ind"
+
+#~ msgid "Record Gain"
+#~ msgstr "Optag - forhøjelse"
+
+#~ msgid "Output Gain"
+#~ msgstr "Uddata - forhøjelse"
+
+#~ msgid "Microphone Boost"
+#~ msgstr "Mikrofonøgning"
+
+#~ msgid "Diagnostic"
+#~ msgstr "Diagnostik"
+
+#~ msgid "Bass Boost"
+#~ msgstr "Bas-øgning"
+
+#~ msgid "Playback Ports"
+#~ msgstr "Afspilningsporte"
+
+#~ msgid "Input"
+#~ msgstr "Inddata"
+
+#~ msgid "Monitor Source"
+#~ msgstr "Skærmkilde"
+
+#~ msgid "Keyboard Beep"
+#~ msgstr "Tastaturbeep"
+
+#~ msgid "Simulate Stereo"
+#~ msgstr "Simuler stereo"
+
+#~ msgid "Stereo"
+#~ msgstr "Stereo"
+
+#~ msgid "Surround Sound"
+#~ msgstr "Surroundlyd"
+
+#~ msgid "Microphone Gain"
+#~ msgstr "Mikrofonforhøjelse"
+
+#~ msgid "Speaker Source"
+#~ msgstr "Højtalerkilde"
+
+#~ msgid "Microphone Source"
+#~ msgstr "Mikrofonkilde"
+
+#~ msgid "Jack"
+#~ msgstr "Jack"
+
+#~ msgid "Center / LFE"
+#~ msgstr "Center / LFE"
+
+#~ msgid "Stereo Mix"
+#~ msgstr "Stereomiks"
+
+#~ msgid "Mono Mix"
+#~ msgstr "Monomiks"
+
+#~ msgid "Input Mix"
+#~ msgstr "Inddatamiks"
+
+#~ msgid "Microphone 1"
+#~ msgstr "Mikrofon 1"
+
+#~ msgid "Microphone 2"
+#~ msgstr "Mikrofon 2"
+
+#~ msgid "Digital Out"
+#~ msgstr "Digital ud"
+
+#~ msgid "Digital In"
+#~ msgstr "Digital ind"
+
+#~ msgid "HDMI"
+#~ msgstr "HDMI"
+
+#~ msgid "Modem"
+#~ msgstr "Modem"
+
+#~ msgid "Handset"
+#~ msgstr "Håndsæt"
+
+#~ msgid "Other"
+#~ msgstr "Andet"
+
+#~ msgid "None"
+#~ msgstr "Ingen"
+
+#~ msgid "On"
+#~ msgstr "Tænd"
+
+#~ msgid "Off"
+#~ msgstr "Sluk"
+
+#~ msgid "Mute"
+#~ msgstr "Slukket"
+
+#~ msgid "Fast"
+#~ msgstr "Hurtig"
+
+#~ msgid "Very Low"
+#~ msgstr "Meget lav"
+
+#~ msgid "Low"
+#~ msgstr "Lav"
+
+#~ msgid "Medium"
+#~ msgstr "Mellem"
+
+#~ msgid "High"
+#~ msgstr "Høj"
+
+#~ msgid "Very High"
+#~ msgstr "Meget høj"
+
+#~ msgid "Production"
+#~ msgstr "Produktion"
+
+#~ msgid "Front Panel Microphone"
+#~ msgstr "Frontpanelmikrofon"
+
+#~ msgid "Front Panel Line In"
+#~ msgstr "Frontpanels linje ind"
+
+#~ msgid "Front Panel Headphones"
+#~ msgstr "Frontpanels hovedtelefoner"
+
+#~ msgid "Front Panel Line Out"
+#~ msgstr "Frontpanels linje ud"
+
+#~ msgid "Green Connector"
+#~ msgstr "Grøn forbindelse "
+
+#~ msgid "Pink Connector"
+#~ msgstr "Lyserød forbindelse"
+
+#~ msgid "Blue Connector"
+#~ msgstr "Blå forbindelse"
+
+#~ msgid "White Connector"
+#~ msgstr "Hvid forbindelse"
+
+#~ msgid "Black Connector"
+#~ msgstr "Sort forbindelse"
+
+#~ msgid "Gray Connector"
+#~ msgstr "Grå forbindelse"
+
+#~ msgid "Orange Connector"
+#~ msgstr "Orange forbindelse"
+
+#~ msgid "Red Connector"
+#~ msgstr "Rød forbindelse"
+
+#~ msgid "Yellow Connector"
+#~ msgstr "Gul forbindelse"
+
+#~ msgid "Green Front Panel Connector"
+#~ msgstr "Grøn frontpanelforbindelse"
+
+#~ msgid "Pink Front Panel Connector"
+#~ msgstr "Lyserød frontpanelforbindelse"
+
+#~ msgid "Blue Front Panel Connector"
+#~ msgstr "Blå frontpanelforbindelse"
+
+#~ msgid "White Front Panel Connector"
+#~ msgstr "Hvid frontpanelforbindelse"
+
+#~ msgid "Black Front Panel Connector"
+#~ msgstr "Sort frontpanelforbindelse"
+
+#~ msgid "Gray Front Panel Connector"
+#~ msgstr "Grå frontpanelforbindelse"
+
+#~ msgid "Orange Front Panel Connector"
+#~ msgstr "Orange frontpanelforbindelse"
+
+#~ msgid "Red Front Panel Connector"
+#~ msgstr "Rød frontpanelforbindelse"
+
+#~ msgid "Yellow Front Panel Connector"
+#~ msgstr "Gul frontpanelforbindelse"
+
+#~ msgid "Spread Output"
+#~ msgstr "Spred uddata"
+
+#~ msgid "Downmix"
+#~ msgstr "Downmix"
+
+#~ msgid "Virtual Mixer Input"
+#~ msgstr "Virtuel mikserinddata"
+
+#~ msgid "Virtual Mixer Output"
+#~ msgstr "Virtuel mikseruddata"
+
+#~ msgid "Virtual Mixer Channels"
+#~ msgstr "Virtuel mikserkanaler"
+
+#~ msgid "%s %d Function"
+#~ msgstr "%s %d funktion"
+
+#~ msgid "%s Function"
+#~ msgstr "%s funktion"
+
+#~ msgid "Error reading %d bytes on device '%s'."
+#~ msgstr "Fejl ved læsning af %d byte på enhed '%s'."
+
+#~ msgid "Could not enqueue buffers in device '%s'."
+#~ msgstr "Kunne ikke sætte mellemlager fra enhed '%s' i kø."
+
+#~ msgid "Could not establish connection to sound server"
+#~ msgstr "Kunne ikke skabe kontakt til lyd-serveren"
+
+#~ msgid "Failed to query sound server capabilities"
+#~ msgstr "Listning af lydservers egenskaber fejlede"
diff --git a/po/de.gmo b/po/de.gmo
index 8de2d4f82b378f4a158c3fb57137ba0ce8327375..92c5642c2f6e1b7bf146698b019d835c44b33cfc 100644
GIT binary patch
delta 2049
zcmYk+Urbw79Ki9@@~0axhKy4GjBy$3n6Q@iLd&1YpEB5hK_CzjVpvkK!wP8`rJCVG
zo$<lR9*mbQA<LW(#F+ib)ElGO;)B_P+rt(&A0#fC%tVvTY5W(Lm>B*3ZZBphIsKe-
z+TQa!=lssSK61G~^Id7~2}K#CZl%8NRB9UU=kh^$BVVZ^Jcj*v5;x!-+=%z={-1XL
zA9OSBaw%1U6)4a3<2F2ijrbxyp;Shlq46XGm$3$az@4~>S!BEs$M7H?#*gtCtYP+A
z%-}el#RkkN$WGLR)%3?u$3@(M7wqv{7-fF-7mZzfF<z+Dc07vmhgBp(^)+_mAGjZz
z*^XX(6~lN9gQzyKO3+dMA4Lgh8D-+D*oi;eeSa|lGQS$7;l-CRgr`w<|0`rsY7LoN
zeUFdfFDQX+*sN43?m#w8H6fd$I*>J~UVD5L<^Rv31U!u=@g2;}(+F`;_4qy#oLa*G
z{)qBG&m-ADG_0gwiyHQ$ob?RK?~kG!;YZkt-(W4eiPDFiDE$P=LRL!IfAU3{4E*a*
z>Jo0Df2k~c<~L9R@-mCqU>mU=LP@Sk^xz`;@ofy@=h%Y}?0#FhQZ4jTxCbwkv;We#
z%RmQuc}f~%xQw^)6`XrisW!ZiN3fRg<-w~cE4qiW1MbJOxv~#sr<Sk^&*2hY#~@B{
zezH?b85&Q~Fj2DpR~$nR%bLOjM)4L(5;j&SHH1e{`q!`@i@948&;&{#XK)z5M0tJ{
z(a6LHQ5NzRj$q~njXe2*mQ9)(TOA2jwb_m%i&rU>_rY=76_gx#4<!jNBAcN;K?&$4
zet;gf;S^rQJ@`CVjXch%cWJaRa1rH<@7g{<SxFw3csGVoc4!Ls;hQMm-^5{ba>qJx
z6!+pXw&NN~Zg{-eTTqV<`cg{d{#yw~r;FN2&85n1ASJ9az^ANG5=)Alw-gqlB2*_e
zhbpBhi#mW3gzOaYS?`q&l!b8XtRn$c!~E7;PC62$tW35?$}Xy`m`h;YXL%R2QhTWn
z7gFQ@B1b9t&`g!%(y45-Rpe!)QAshYa4A%V<F~fI8)dtskTX^pv<+b&RbC=>RBox2
z8(^KeBoujQC0M=;+9iy>^$s>tc_moKwm&;AkIKFt<=#u;^cdgfKj-dCsL0dfT2LEG
zFIX*I>r0qjuFrCe_QE#fO5soD?INGUXee$lSBlR%oO`>CmXe`z{x=X$#H_y!#;4|!
zb1x(lF>|TpxWlE5Ce!m%F{7lk+1ZycBBh7S>MivS<HNGLjRAi!;Mc=`-MCXWygL|b
z4Tb9hdLU3RJmedRy%bNylL=pUbRpKN>49L-7YO?Fpr-4s4aTIqJujJ@o{gEO+^;#j
zJ@LeJG%>9OC2U_LoqDLZ{+({@^n}exk1NkOzqQNgs|Y$`#$v^9=IXX%4r8#Y&`4<`
zMtx<0Sy?sV%+XlfT=npFS((p%hPBM~$E(5k%zW}tGGTsE{kJ3ka5^?S8#6xjMqKu<
ajo-Z|%*{2cj-r8RdLgxNWp#cgrv3wVNC9L3

delta 2876
zcma*nduSX*9Ki9prb%j=N7I;Eo2DJ3v1)T?a(&oVtxelBO>NpV)>c8#&D|tf?rtyL
zM{A?yL`zVqf~+rmfMC!+>Z5XkiVBh-2r5<)#6K(+5k<5pzQFhQw|9*d{lkG@KD(Qp
zotfYK=3d?Q?qK1>{MipE+Ad--F*!@A9ClRlhxTceQnh#zx8W%~3)fbc+=R{C_v1WF
zp?t^3C3qjM#ADckpX0?Co1@e+r3z{}7Z>v28kB#G;~t#EefTTx#T=tvf^Xt=_${u$
zzM9fNhwyyvAHyWRftTR-*n~^wDs=%SQQq5&EsU>j;bJ)t9zqMJ@gi(z*=@K3<%9dM
z11C{d@;+|HZ?G4WbxLi;aa@hlC=>VvyRf~!^qsw!;Qns8XMFVv7qXJCQD&$cl-htj
zDEAX6Gd_y#_#UppA8|G=C+{Rfb>g|W4rPM7aXyYANmO?r*;hx9HLCluATxb}iwE%|
zbkS*4>QX$3o!H1%WPpvh6t|<sEXv;BgID2`csYKC(r+nwXOGnYuEU#AGE&4io@gTf
z@}TzY(#$VIx!;8=@K&VW)G_=irqoMFU-jIAQjJU@*;VJBQ*s$f@vXvzIEa$!3`)ix
z!5%zbzF)AA{IBJ~cHWkmPn4ZPS<xRD;Ck|UKfZ{!VBaF8uEaO-AXboX`S2l>1x%x4
z;1o)YEM-<Qku>s26{2MFnF1H*aq$lFt~!P5v8I&*!9JAY`4A<QRh+3SFoA0@gK~N%
zaSy(YDQx5GQp^)56ZjHk3*uU-oj6*y@G=+j!W?F?4f|16@-WH@PT&AGa1><Vn@}e7
zI7$ZI!$GX0LM!F}ScAhza@4-EM^IM&G)fV^QL>=k;)1NI<0u1vg~zb-0;L|slXy8E
zYA<coD=2&ZJ<0@QEWZPjD4DpCKeC_++=y@E7OW?I^8U3b3!1<Ua{fQ!ViOM*a_HCN
z4M=^cM^TEfh}Yv6D95JzVg^NSqXBoJw3UPmDBB`U29Z`xNWWQx)W!}%P7^yNzkj7O
zE-RA3WaiQ+bVYGTMI%RSHX)6%qb!jm)lJMHwiB`yr<-h})RMG$L?1y}sR}|eB}coB
zkXDeC)Dn_nYAh;}N|Zg8ESzq#m!})QQ%Vz6L_Z--_Pm#n46-vbEy<M}y|pt>N(EoO
zEkx&83PYMy=2n6oiGGqBa5Zsei*s`saWx?Yc@-h`BYP~Zk=P&?G=7JoM)5~mtd_NV
z%k<DeEvjzqnDCLR{)(M}U;M4=^@?OVZ#?bfeeDHfV|mxt`|Y&J>y$O-2d+_@&3-#&
zqR!g(^ibd(4BxL=5Kh&s3_qx8uJi-PxZw{q9mF?{sZq-rF*+CcMti>Hn{a2{;^N7<
z@mQs6rR{v!UwcmYXYIzYp{}aN)A?at>VI3^lHwJ0&&R@_>wBW94K^H!RoKo*cx>K9
zp>8yVv}^A-uJlNsF{6J?-f|A=jFUg$=)RpgXZ+E8I-z!t8vQ@}`@A~SQ@5w1zGS3$
zXJbd~hA1=T@l*LAn~oBfat$jbHN(Tqa4etCCe)rYUrpPk7p+vvjQQ-q0X^(mIip?a
z=NaFZmA)`PQQ4K~OsojMoIfxp*}1NB#q!Rsa6{9=+GM<|E1q1VyVkB-6{efk7oTpr
zJ$6=i;Ej-O-4*U=ULA9bhnuS_dwY#LJ?ZPISKGa*qdIVW<9hz|YyP;eGsbp|j%H>B
z!;UqYGwPqO+n%q7OxBF};oXZi^_D*(Po=N!$&C$9PqM*oLTxdlSynq_?40g#bGGlB
zti#^8dQ0GBd^_)WIpbz>R@Q_ET6FmFqW195Mc=hfA9i?2-t_b}evr$J2Na5v_VoU|
z6F%FzxcF_$U9lD!N=nJmGHEaRsArEjR@MuT^SSyZbHl@}gW*JLeKQ@;n3^m-J#}>E
ztxp!$7C&vhepa|yZ>=t;toWS%B^JKawkG_&?cM@&-t8KD2<21%Ov!&_aL8mVhs5fh
z?s$JxVscFW_eUH%HR|iMeY$@&HEJle;$7!I6)SAEywVntW!cC~J{l_8J4X*hH5MPB
z#<Xm#$!3kCX8Oc?C?sphl>1tlaq7)BE_3~RRL2AiZ97r#fchB^T)olGrVrRA-D2F)
Ve3qx4)Mi3$w*sH~nRGKo{RLS*Fp~fP

diff --git a/po/de.po b/po/de.po
index 99e4d5c22..fa77af83d 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,4 +1,4 @@
-# German translations for gst-plugins-good 1.0.3
+# German translations for gst-plugins-bad
 # Copyright (C) 2007 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gst-plugins-good package.
 #
@@ -8,15 +8,15 @@
 # Pipeline = Weiterleitung
 # Stream = Strom
 # mixer  =
-# Christian Kirbach <christian.kirbach@gmail.com>, 2010, 2011, 2012.
+# Christian Kirbach <christian.kirbach@googlemail.com>, 2010, 2011.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good 1.0.3\n"
+"Project-Id-Version: gst-plugins-good 0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
-"PO-Revision-Date: 2012-11-28 19:56+0100\n"
-"Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
+"PO-Revision-Date: 2011-01-21 22:36+0100\n"
+"Last-Translator: Christian Kirbach <christian.kirbach@googlemail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
@@ -26,17 +26,23 @@ msgstr ""
 "X-Poedit-Country: GERMANY\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Dekodieren des JPEG-Bildes schlug fehl"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "»%s« durch »%s«"
 
-msgid "Failed to decode JPEG image"
-msgstr "Dekodieren des JPEG-Bildes schlug fehl"
-
 msgid "Could not connect to server"
 msgstr "Verbindung zum Server konnte nicht hergestellt werden"
 
+msgid "No URL set."
+msgstr "Keine Adresse festgelegt."
+
 msgid "Server does not support seeking."
 msgstr "Suchlauf wird nicht vom Server unterstützt."
 
@@ -58,9 +64,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr "Server gab unerwartete Daten zurück."
 
-msgid "No URL set."
-msgstr "Keine Adresse festgelegt."
-
 msgid "Internal data stream error."
 msgstr "Interner Datenstromfehler."
 
@@ -73,6 +76,9 @@ msgstr "Diese Datei enthält keine abspielbaren Ströme."
 msgid "This file is invalid and cannot be played."
 msgstr "Diese Datei ist ungültig und kann nicht wiedergegeben werden."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Diese Datei ist beschädigt und kann nicht wiedergegeben werden."
 
@@ -127,16 +133,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Das Audio-Gerät konnte nicht zur Wiedergabe geöffnet werden. "
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Das Audio-Gerät konnte nicht zur Aufnahme geöffnet werden. Sie haben nicht "
-"die Berechtigungen zum Öffnen des Gerätes."
-
-msgid "Could not open audio device for recording."
-msgstr "Das Audio-Gerät konnte nicht zur Aufnahme geöffnet werden. "
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -156,6 +152,45 @@ msgstr "Aufnahme wird von diesem Audio-Gerät nicht unterstützt."
 msgid "Error recording from audio device."
 msgstr "Fehler beim Aufnehmen vom Audio-Gerät."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Das Audio-Gerät konnte nicht zur Aufnahme geöffnet werden. Sie haben nicht "
+"die Berechtigungen zum Öffnen des Gerätes."
+
+msgid "Could not open audio device for recording."
+msgstr "Das Audio-Gerät konnte nicht zur Aufnahme geöffnet werden. "
+
+msgid "Record Source"
+msgstr "Aufnahmequelle"
+
+msgid "Microphone"
+msgstr "Mikrofon"
+
+msgid "Line In"
+msgstr "Line-Eingang"
+
+msgid "Internal CD"
+msgstr "Interne CD"
+
+msgid "SPDIF In"
+msgstr "SPDIF-Eingang"
+
+msgid "AUX 1 In"
+msgstr "AUX-Eingang 1"
+
+msgid "AUX 2 In"
+msgstr "AUX-Eingang 2"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Schleife"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Schleife"
+
 msgid "Volume"
 msgstr "Lautstärke"
 
@@ -166,14 +201,14 @@ msgid "Monitor"
 msgstr "Monitor"
 
 msgid "Built-in Speaker"
-msgstr "Eingebauter Lautsprecher"
+msgstr "Eingebaute Lautsprecher"
 
 msgid "Headphone"
 msgstr "Kopfhörer"
 
 # Hier ist mir noch nichts Besseres eingefallen.
 msgid "Line Out"
-msgstr "Ausgang"
+msgstr "Line-Ausgang"
 
 msgid "SPDIF Out"
 msgstr "SPDIF-Ausgang"
@@ -199,21 +234,23 @@ msgstr ""
 msgid "Could not map buffers from device '%s'"
 msgstr "Die Puffer des Gerätes »%s« konnten nicht geholt werden."
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
-msgstr "Der Treiber von Gerät »%s« unterstützt nicht die EA-Methode %d"
+msgstr ""
+"Der Treiber von Gerät »%s« unterstützt keine der bekannten Aufnahmemethoden."
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support any known IO method."
-msgstr "Der Treiber von Gerät »%s« unterstützt keine bekannte EA-Methode"
+msgstr ""
+"Der Treiber von Gerät »%s« unterstützt keine der bekannten Aufnahmemethoden."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' does not support video capture"
-msgstr "Gerät »%s« unterstützt keine Videoaufnahme"
+msgstr "»%s« ist kein Wiedergabegerät."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is busy"
-msgstr "Gerät »%s« ist belegt"
+msgstr "»%s« ist kein Wiedergabegerät."
 
 #, c-format
 msgid "Device '%s' cannot capture at %dx%d"
@@ -227,45 +264,50 @@ msgstr "Das angegebene Format kann nicht vom Gerät »%s« ausgelesen werden"
 msgid "Could not get parameters on device '%s'"
 msgstr "Parameter konnten nicht von Gerät »%s« ausgelesen werden"
 
+#, fuzzy
 msgid "Video device did not accept new frame rate setting."
 msgstr ""
-"Das Video-Eingabegerät akzeptierte nicht die neue Einstellung zur "
-"Bildwiederholungsrate."
+"Vom Video-Eingabegerät wurde die Einstellung zur Bildwiederholungsrate nicht "
+"akzeptiert."
 
 msgid "Video device could not create buffer pool."
-msgstr "Das Videogerät konnte keinen Puffer-Pool erstellen"
+msgstr ""
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get settings of tuner %d on device '%s'."
 msgstr ""
-"Auslesen der Einstellungen von Empfänger »%d« auf Gerät »%s« schlug fehl."
+"Auslesen der Einstellungen der Senderwahl »%d« auf Gerät »%s« schlug fehl."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Error getting capabilities for device '%s'."
-msgstr "Fehler beim Ermitteln der Funktionsmerkmale von Gerät »%s«."
+msgstr "Fehler beim Lesen von %d Bytes von Gerät »%s«."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is not a tuner."
-msgstr "»%s« ist kein Empfänger."
+msgstr "»%s« ist kein Wiedergabegerät."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get radio input on device '%s'. "
-msgstr "Empfangen eines Funksignals auf Gerät »%s« schlug fehl."
+msgstr "Festlegen der Eingabe »%d« des Geräts »%s« schlug fehl."
 
 #, c-format
 msgid "Failed to set input %d on device %s."
 msgstr "Festlegen der Eingabe »%d« des Geräts »%s« schlug fehl."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to change mute state for device '%s'."
-msgstr "Ändern des Stummzustands von Gerät »%s« schlug fehl."
+msgstr "Auslesen der aktuellen Signalstärke des Geräts »%s« schlug fehl."
+
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Gerät »%s« kann nicht identifiziert werden."
 
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
 "it is a v4l1 driver."
 msgstr ""
-"Fehler beim Bestimmen der Fähigkeiten des Geräts »%s«: Es ist kein »v4l2«-"
+"Fehler beim Bestimmen der Fähigkeiten des Gerätes »%s«: Es ist kein »v4l2«-"
 "Treiber. Überprüfen Sie, ob es ein »v4l1«-Treiber ist."
 
 #, c-format
@@ -285,10 +327,6 @@ msgstr "Abfragen der Norm auf Gerät »%s« schlug fehl."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Abfrage der Kontrollattribute auf Gerät »%s« schlug fehl."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Gerät »%s« kann nicht identifiziert werden."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "»%s« ist kein Gerät."
@@ -331,12 +369,14 @@ msgid "Failed to set value %d for control %d on device '%s'."
 msgstr ""
 "Festlegen des Wertes »%d« der Einstellung »%d« des Geräts »%s« schlug fehl."
 
+# Sendegerät sicherlich nicht, eben eher ein Radio. Warum diese Fehlermeldung beie einem Radiogerät kommen könnte, weiß ich allerdings auch nicht.
 #, c-format
 msgid "Failed to get current input on device '%s'. May be it is a radio device"
 msgstr ""
 "Auslesen der aktuellen Eingabe auf dem Gerät »%s« schlug fehl. Vielleicht "
 "ist es ein Funkgerät."
 
+# Sendegerät sicherlich nicht, eben eher ein Radio. Warum diese Fehlermeldung beie einem Radiogerät kommen könnte, weiß ich allerdings auch nicht.
 #, c-format
 msgid ""
 "Failed to get current output on device '%s'. May be it is a radio device"
@@ -355,11 +395,15 @@ msgstr "Ein Wechsel der Auflösung zur Laufzeit wird noch nicht unterstützt."
 msgid "Cannot operate without a clock"
 msgstr "Es kann nicht ohne einen Taktgeber gearbeitet werden."
 
-#~ msgid "Could not establish connection to sound server"
-#~ msgstr "Es konnte keine Verbindung zum Audio-Server hergestellt werden"
+# »Frame« sollten wir im Zusammenhang mit Videos vielleicht besser so belassen. Habe ich in gnome-subtitles auch so gemacht.
+#~ msgid "Got unexpected frame size of %u instead of %u."
+#~ msgstr "Unerwartete Frame-Größe von %u anstatt %u wurde erhalten."
 
-#~ msgid "Failed to query sound server capabilities"
-#~ msgstr "Abfrage der Fähigkeiten des Audio-Servers ist fehlgeschlagen"
+#~ msgid "Failed trying to get video frames from device '%s'."
+#~ msgstr "Der Versuch Videobilder von Gerät »%s« auszulesen schlug fehl."
+
+#~ msgid "Failed after %d tries. device %s. system error: %s"
+#~ msgstr "%d Versuche sind fehlgeschlagen. Gerät »%s«. Systemfehler: %s"
 
 #~ msgid "Bass"
 #~ msgstr "Bass"
@@ -379,9 +423,6 @@ msgstr "Es kann nicht ohne einen Taktgeber gearbeitet werden."
 #~ msgid "Line-in"
 #~ msgstr "Line-Eingang"
 
-#~ msgid "Microphone"
-#~ msgstr "Mikrofon"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -481,21 +522,9 @@ msgstr "Es kann nicht ohne einen Taktgeber gearbeitet werden."
 #~ msgid "Telephone"
 #~ msgstr "Telefon"
 
-#~ msgid "Line In"
-#~ msgstr "Line-Eingang"
-
-#~ msgid "Internal CD"
-#~ msgstr "Interne CD"
-
 #~ msgid "Video In"
 #~ msgstr "Video-Eingang"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "AUX-Eingang 1"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "AUX-Eingang 2"
-
 #~ msgid "AUX In"
 #~ msgstr "AUX-Eingang"
 
@@ -508,9 +537,6 @@ msgstr "Es kann nicht ohne einen Taktgeber gearbeitet werden."
 #~ msgid "Microphone Boost"
 #~ msgstr "Mikrofonverstärkung"
 
-#~ msgid "Loopback"
-#~ msgstr "Schleife"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Zur Diagnose"
 
@@ -523,9 +549,6 @@ msgstr "Es kann nicht ohne einen Taktgeber gearbeitet werden."
 #~ msgid "Input"
 #~ msgstr "Eingang"
 
-#~ msgid "Record Source"
-#~ msgstr "Aufnahmequelle"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Ãœberwachungsquelle"
 
@@ -565,9 +588,6 @@ msgstr "Es kann nicht ohne einen Taktgeber gearbeitet werden."
 #~ msgid "Input Mix"
 #~ msgstr "Eingangs-Mischpult"
 
-#~ msgid "SPDIF In"
-#~ msgstr "SPDIF-Eingang"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Mikrofon 1"
 
@@ -712,21 +732,17 @@ msgstr "Es kann nicht ohne einen Taktgeber gearbeitet werden."
 #~ msgid "%s Function"
 #~ msgstr "%s-Funktion"
 
-# »Frame« sollten wir im Zusammenhang mit Videos vielleicht besser so belassen. Habe ich in gnome-subtitles auch so gemacht.
-#~ msgid "Got unexpected frame size of %u instead of %u."
-#~ msgstr "Unerwartete Frame-Größe von %u anstatt %u wurde erhalten."
-
 #~ msgid "Error reading %d bytes on device '%s'."
 #~ msgstr "Fehler beim Lesen von %d Bytes auf Gerät »%s«."
 
 #~ msgid "Could not enqueue buffers in device '%s'."
 #~ msgstr "Auf Gerät »%s« konnten keine Puffer eingereiht werden."
 
-#~ msgid "Failed trying to get video frames from device '%s'."
-#~ msgstr "Der Versuch Videobilder von Gerät »%s« auszulesen schlug fehl."
+#~ msgid "Could not establish connection to sound server"
+#~ msgstr "Es konnte keine Verbindung zum Audio-Server hergestellt werden"
 
-#~ msgid "Failed after %d tries. device %s. system error: %s"
-#~ msgstr "%d Versuche sind fehlgeschlagen. Gerät »%s«. Systemfehler: %s"
+#~ msgid "Failed to query sound server capabilities"
+#~ msgstr "Abfrage der Fähigkeiten des Audio-Servers ist fehlgeschlagen"
 
 #~ msgid ""
 #~ "The buffer type is not supported, or the index is out of bounds, or no "
@@ -758,3 +774,108 @@ msgstr "Es kann nicht ohne einen Taktgeber gearbeitet werden."
 
 #~ msgid "Could not get enough buffers from device '%s'."
 #~ msgstr "Es konnten nicht genug Puffer von Gerät »%s« ausgelesen werden."
+
+# »Stromaufnahme« klingt nach Energieverbrauch.
+#~ msgid "Error starting streaming capture from device '%s'."
+#~ msgstr "Fehler beim Start der Aufzeichnung des Stroms von Gerät »%s«."
+
+#~ msgid "Error stopping streaming capture from device '%s'."
+#~ msgstr "Fehler beim Stoppen der Aufzeichnung des Stroms von Gerät »%s«."
+
+#~ msgid "Describes the selected input element."
+#~ msgstr "Beschreibt das ausgewählte Eingabeelement."
+
+#~ msgid "Describes the selected output element for Audio/Video Conferencing."
+#~ msgstr ""
+#~ "Beschreibt das ausgewählte Ausgabeelement für Audio/Video-Konferenzen."
+
+#~ msgid "Describes the selected output element for Music and Movies."
+#~ msgstr "Beschreibt das ausgewählte Ausgabeelement für Musik und Videos."
+
+#~ msgid "Describes the selected output element."
+#~ msgstr "Beschreibt das ausgewählte Ausgabeelement."
+
+# »sink« hatte ich z.B. in Conduit auch mit Ziel übersetzt.
+#~ msgid "GStreamer audiosink for Audio/Video Conferencing"
+#~ msgstr "Gstreamer-Audioziel für Audio/Video-Konferenzen."
+
+#~ msgid "GStreamer audiosink for Music and Movies"
+#~ msgstr "Gstreamer-Audioziel für Musik und Videos"
+
+#~ msgid ""
+#~ "GStreamer can play audio using any number of output elements. Some "
+#~ "possible choices are osssink, esdsink and alsasink. The audiosink can be "
+#~ "a partial pipeline instead of just one element."
+#~ msgstr ""
+#~ "GStreamer kann Klänge mittels einer beliebigen Anzahl von "
+#~ "Ausgabeelementen wiedergeben. Einige mögliche Werte sind osssink, esdsink "
+#~ "und alsasink. Das Audioziel kann eine teilweise Weiterleitung anstelle "
+#~ "eines Elementes sein."
+
+#~ msgid ""
+#~ "GStreamer can play video using any number of output elements. Some "
+#~ "possible choices are xvimagesink, ximagesink, sdlvideosink and aasink. "
+#~ "The videosink can be a partial pipeline instead of just one element."
+#~ msgstr ""
+#~ "GStreamer kann Videos mittels einer beliebigen Anzahl von "
+#~ "Ausgabeelementen wiedergeben. Einige mögliche Werte sind xvimagesink, "
+#~ "ximagesink, sdlvideosink und aasink. Das Videoziel kann eine teilweise "
+#~ "Weiterleitung anstelle eines Elementes sein."
+
+#~ msgid ""
+#~ "GStreamer can put visualization plugins in a pipeline to transform audio "
+#~ "stream in video frames. Default is goom but more visualization plugins "
+#~ "will be ported soon. The visualization plugin can be a partial pipeline "
+#~ "instead of just one element."
+#~ msgstr ""
+#~ "GStreamer kann Visualisierungs-Plugins in eine Weiterleitung setzen, um "
+#~ "Audioströme in Videobilder umzuwandeln. Das Standard-Plugin ist »goom«. "
+#~ "Weitere Plugins werden demnächst portiert. Das Visualisierungs-Plugin "
+#~ "kann eine teilweise Weiterleitung anstelle eines Elementes sein."
+
+#~ msgid ""
+#~ "GStreamer can record audio using any number of input elements. Some "
+#~ "possible choices are osssrc, esdsrc and alsasrc. The audio source can be "
+#~ "a partial pipeline instead of just one element."
+#~ msgstr ""
+#~ "GStreamer kann Klänge mittels einer beliebigen Anzahl von "
+#~ "Eingabeelementen aufzeichnen. Einige mögliche Werte sind osssrc, esdsrc "
+#~ "und alsasrc. Die Audioquelle kann eine teilweise Weiterleitung anstelle "
+#~ "eines Elementes sein."
+
+#~ msgid ""
+#~ "GStreamer can record video from any number of input elements. Some "
+#~ "possible choices are v4lsrc and videotestsrc. The video source can be a "
+#~ "partial pipeline instead of just one element."
+#~ msgstr ""
+#~ "GStreamer kann Videos mittels einer beliebigen Anzahl von "
+#~ "Eingabeelementen aufzeichnen. Einige mögliche Werte sind v4lsrc und "
+#~ "videotestsrc. Die Videoquelle kann eine teilweise Weiterleitung anstelle "
+#~ "eines Elementes sein."
+
+#~ msgid "default GStreamer audio source"
+#~ msgstr "Vorgegebene GStreamer-Audioquelle"
+
+#~ msgid "default GStreamer audiosink"
+#~ msgstr "Vorgegebenes GStreamer-Audioziel"
+
+#~ msgid "default GStreamer video source"
+#~ msgstr "Vorgegebene GStreamer-Videoquelle"
+
+#~ msgid "default GStreamer videosink"
+#~ msgstr "Vorgegebenes GStreamer-Videoziel"
+
+#~ msgid "default GStreamer visualization plugin"
+#~ msgstr "Vorgegebenes GStreamer-Visualisierungs-Plugin"
+
+#~ msgid "description for GStreamer audiosink for Audio/Video Conferencing"
+#~ msgstr "Beschreibung der GStreamer-Audioquelle für Audio/Video-Konferenzen"
+
+#~ msgid "description for GStreamer audiosink for Music and Movies"
+#~ msgstr "Beschreibung der GStreamer-Audioquelle für Musik und Videos"
+
+#~ msgid "description for default GStreamer audiosink"
+#~ msgstr "Beschreibung des vorgegebenen GStreamer-Audioziels"
+
+#~ msgid "description for default GStreamer audiosrc"
+#~ msgstr "Beschreibung der vorgegebenen GStreamer-Audioquelle"
diff --git a/po/el.gmo b/po/el.gmo
index d8bb2a5bd5b2303e27fbcc6d95fc282f2979e34b..7da95be70b549863b40615118b150e6019bb0ccf 100644
GIT binary patch
delta 1986
zcmZY9eN0tl9Ki7(To8pwUa}NXPlzGtm3uD&c0~mt3Bhp_6j@t(W7l~FF2&ns%iX|q
zGuY7GY-7F8RqF*PFHts;`lG0}&K+~Ewwha8Z>z08{KK_1Ti@R~Cw1$A=X}odoO7O+
z-}5|ozU}({=(U`bb3&>o=aXBLMS?h*!iAKzNaQZe#@)CY7h@QgV6Rht+9{vJWz>&h
z7QTVn?hLNRE4Uf2<4TdJ6s3t2Q&EdW*o_b1Ij8;-?x*|<K8f4ty$z?Z1k)JB0rX)R
zj-YllhlO|z*P<)ko>&pCr+gX<=wB{y<D=p#G9p==VMn77D=2rN7tiA+eGm2h6vCn%
zR-$&)iPd<<DKDUQd;`ldFOzRDfQ(7@VFvxnL2g!HC+YxBB9oQZQA7PUGB&y3)XySg
zkk3&ExPUL<;=5T6d=*PEXQ>E}WG8wsfZE;=>Hwa@=o)UG=f=Qk)U~^c`oSMqg!wF_
zAM3CLqv*zWobq?56L4jVu&lBQKTRSk$RqhVN8|+Fz<cniTzddxxx`;9#+`~u)DVA+
z#rP|>Vm2@B!NWL$)7XsFj5dI0FpNLqUTnPA-Yc)**OasFV>0+XeueYP?f1{FApW0G
z@i)Uij<b38hg(^P-IOQrA^Z!ca64PM9sfk__~BI|&*C^X;c9l?BzEF6m`8YZU@zh!
zOf^J~;$g>yC^v_wsJh>7=w)o7Tu>nL2o7Q=eu?ZO+02e2ic*8RRIONrM;+fn#v(tV
zE=h8s{eC{CQ!Yh4j(&U$qix)HS*scRor>Sq*)zPt8Po>cYycfdJ!;3}xCGzBT{we{
zcoQ{J4V<lR97B!NO&q|sVv%F`4Gv;`i52OnT;^so6`l?D3`59x1gyOPR@%mujV<h{
zTZvDtqxWCMPHtRe-Q^kNtz?}o!LyEVDpr#X@(!~8{s<Gcc6YK>VP7=V<z%*luve_p
zz+RFE$r=?7hIO>q7XM2`Uf8!%OHL<iR5VhWG;%swO?rY#>EBAahAh36HahD1ZXvT0
zR!ZTj$H_+~+SX5Y4QeX05jMDWqP8P@&iW-xLtVN$GOKYb=|0iPSZ7wP&<m-OTpXK7
zeSBF%L~8aOFuX?dK)-e8Ga4fCoJIen#M?98Op2|`tWK`2i#?iIxw0u73Gq-Y_4PgB
zj^3Upj`T!A@rlgQq%@<YXP~zu6!R_Jl1w8VOTS2Rm2WDGZOjfF^p^X}D>it19#49p
z*}XS3814)AMBH`3{*d4BdAuGs|GrAY>+^e^_nLxz{qEM@V5F}r*x%FZH|Xz3Fw|u<
z_Vo7!d&7}%pHbD_Sy@)$+Y<ja`&d$$dCr_loG|CiY4c)Y*svyc$Mo)aJm)<2#oKe=
z&4^E|8FIybD9DbDtUa#N^%m}kl@)GlxZR$9V8#<e<_G2_{w5Q{V#aP44f8|ua$=N@
z=MpEye963Mev%kUj3!PcPMfpl-1+wlUCUoHKQiOyq`n)s+e)0$mSU4dEjiBMw1Hux
NB~aI}>%#hZ*T0j6KQaIS

delta 1787
zcmZY9Uu;uV9Ki8k*D|)1G1<^L_s45DH#Y3(ABJOYIs_EwmW={~p)p+PqQ%k0w#-1X
z6lK!~!GJelVvH|pByliDol&SvO~eS=#s?pW(L`fnGI>y<5+zyu{%*S`Px|ZUocr&b
zd(Q9N>w{nJO#WEzIw_QmL=CaFKx7DeUHnnrUm~&$XRrq^VlfsM=B&V5Y1iT{7({)}
zCagmf*WzKU##wB}Z?Q=vDL1J!a-e=`?nDm`(oW#Bcm;Q2SCL2yp2S`FDF(5M(P&3~
z*nlHgk0;Q?SzLvcB_bZ|#sKccYWkN`R37HQIoyK(;yT>u7V+aDY{e<m8^1^GcsbLe
z9X^QN_*A}q8g&5Q;NAEKwqa$dh)!xBGA0RO75&TORCH>_upD1SUQXUYUS7^3eaeTZ
z1N$6L;XfF|<I6?XptDTGhe6a1!gwb}(ZE+wmuedIx-T%<MCETP9azT#w%`zYaU$P7
zhgGzHKvqj`VA>(Ffc)eFqdtOPqjo${k#jfd%!RQTE!>WuU>}yRWd2{KvS+18KVHKD
z>|~e`Jcc2>ftm|Fw~1WFH2#J!Rf>Ft@!NCPcQMM(Xupf&7`Y>N->=w1dx&Y?jBn#K
z&Q~-4n(eQXvfA;VIDwmM*#USN&tfGRb{a3?VH{;%b%4L)9^7q+?86Ir8}G^;KY{wZ
z>$nY{BLlbM6?_zHlVr*>R3b>8$alyr%Foz|f8`A{*xN-$QJ3O1EWsJn?Uu$T@GANp
zBJE_}JnemKEq%cqth07Jjm79-OFV>0Hx(U82z6@S#QpdS>W!ghkpnn|2hr0)qT(B<
zOH#2qx4$P*U*J5_znx$@P%WC=tdN~!U8p&iFG)M$m>oOey0JZfW)XepVhK{wj3(iQ
z6p$rE0YTabIVG%?{ULh*7mGn<L%zY-gp{$r2SxU=B>OjiQn{CK61=RvRhZ5H6;{M9
zn)v}@DWOxUA2C01AHmMFmqmAr?f_jXUCw(5R>uAivFT)uzHJ+^f^ZY}6I#|0B(44F
zbfM;imh}WV$X+TfeA3x}Ad#9VTyQx@sdT!pIkaN^w5;A*RoZPOO1;&OM90jLNZ2qF
zqx+3`<j`=d^hTn?hTfSjJ?gLq%lxV1WpfT^duzZ7tr&PL;Op=OSNr@vU&%nfH#9sJ
ziAP4G-c4p=xWfqe`~k18ji2FP-{EV^UDs>I6W;AHGa4VEpIC>n%^Vvu<3`8~bNgPS
zlfU7x8B00J4?2oB?AT@a?E##rc+Xvwnay0x9?g7U-K_Pzb+yh_oteu%pZPd@B$K9g
z%vd~6W73*7YOI*2(VF*+TjTXlH@=uTpPl6LIfJXuWKvxG5f{E-WM;AxJXIet*=ji&
TYEr(2g#v3!)7I2f(<SGB7hej;

diff --git a/po/el.po b/po/el.po
index 340ad4e9d..0ce750e8f 100644
--- a/po/el.po
+++ b/po/el.po
@@ -3,14 +3,13 @@
 # This file is distributed under the same license as the gst-plugins-good package.
 # Simos Xenitellis <simos.lists@googlemail.com>, 2009.
 # Michael Kotsarinis <mk73628@gmail.com>, 2010
-# Savvas Radevic <vicedar@gmail.com>, 2012.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good 0.10.28.2\n"
+"Project-Id-Version: gst-plugins-good 0.10.25.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
-"PO-Revision-Date: 2012-05-05 19:05+0100\n"
-"Last-Translator: Savvas Radevic <vicedar@gmail.com>\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
+"PO-Revision-Date: 2010-10-27 12:16+0200\n"
+"Last-Translator: Michael Kotsarinis <mk73628@gmail.com>\n"
 "Language-Team: Greek <team@lists.gnome.gr>\n"
 "Language: el\n"
 "MIME-Version: 1.0\n"
@@ -19,17 +18,23 @@ msgstr ""
 "X-Generator: Lokalize 0.3\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Αποτυχία αποκωδικοποίησης της εικόνας JPEG"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "'%s' από '%s'"
 
-msgid "Failed to decode JPEG image"
-msgstr "Αποτυχία αποκωδικοποίησης της εικόνας JPEG"
-
 msgid "Could not connect to server"
 msgstr "Δεν ήταν δυνατή η σύνδεση με τον διακομιστή"
 
+msgid "No URL set."
+msgstr "Δεν ορίσθηκε URL."
+
 msgid "Server does not support seeking."
 msgstr "Ο διακομιστής δεν υποστηρίζει αναζήτηση."
 
@@ -50,9 +55,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr "Ο διακομιστής έστειλε λάθος δεδομένα."
 
-msgid "No URL set."
-msgstr "Δεν ορίσθηκε URL."
-
 msgid "Internal data stream error."
 msgstr "Εσωτερικό σφάλμα ροής δεδομένων."
 
@@ -65,11 +67,14 @@ msgstr "Αυτό το αρχείο δεν περιέχει αναπαραγώγ
 msgid "This file is invalid and cannot be played."
 msgstr "Το αρχείο αυτό δεν είναι έγκυρο και δεν μπορεί να αναπαραχθεί."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Το αρχείο αυτό είναι κατεστραμμένο και δεν μπορεί να αναπαραχθεί. "
 
 msgid "Invalid atom size."
-msgstr "Άκυρο μέγεθος ατόμου."
+msgstr ""
 
 msgid "This file is incomplete and cannot be played."
 msgstr "Το αρχείο αυτό είναι ανολοκλήρωτο και δεν μπορεί να αναπαραχθεί."
@@ -117,16 +122,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Δεν ήταν δυνατό το άνοιγμα της συσκευής ήχου για αναπαραγωγή. "
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Δεν ήταν δυνατό το άνοιγμα της συσκευής ήχου για εγγραφή. Δεν έχετε τα "
-"δικαιώματα να ανοίξετε την συσκευή."
-
-msgid "Could not open audio device for recording."
-msgstr "Δεν ήταν δυνατό το άνοιγμα της συσκευής ήχου για εγγραφή. "
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -146,6 +141,45 @@ msgstr "Αυτή η συσκευή ήχου δεν υποστηρίζει εγγ
 msgid "Error recording from audio device."
 msgstr "Σφάλμα κατά την εγγραφή από τη συσκευή ήχου."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Δεν ήταν δυνατό το άνοιγμα της συσκευής ήχου για εγγραφή. Δεν έχετε τα "
+"δικαιώματα να ανοίξετε την συσκευή."
+
+msgid "Could not open audio device for recording."
+msgstr "Δεν ήταν δυνατό το άνοιγμα της συσκευής ήχου για εγγραφή. "
+
+msgid "Record Source"
+msgstr "Πηγή εγγραφής"
+
+msgid "Microphone"
+msgstr "Μικρόφωνο"
+
+msgid "Line In"
+msgstr "Είσοδος γραμμής"
+
+msgid "Internal CD"
+msgstr "Εσωτερικό CD"
+
+msgid "SPDIF In"
+msgstr "Είσδος SPDIF"
+
+msgid "AUX 1 In"
+msgstr "Είσοδις AUX 1"
+
+msgid "AUX 2 In"
+msgstr "Είσοδος AUX 2"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Ανατροφοδότηση"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Ανατροφοδότηση"
+
 msgid "Volume"
 msgstr "Ένταση"
 
@@ -244,6 +278,10 @@ msgstr "Αποτυχία ρύθμισης εισαγωγής %d στην συσ
 msgid "Failed to change mute state for device '%s'."
 msgstr "Αποτυχία ανάγνωσης ισχύς σήματος για την συσκευή '%s'."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Δεν ήταν δυνατή η ταυτοποίηση της συσκευής '%s'."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -269,10 +307,6 @@ msgid "Failed getting controls attributes on device '%s'."
 msgstr ""
 "Αποτυχία κατά την ανάγνωση των χαρακτηριστικών ελέγχου στην συσκευή '%s'."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Δεν ήταν δυνατή η ταυτοποίηση της συσκευής '%s'."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Αυτή δεν είναι μια συκευή '%s'."
@@ -322,16 +356,16 @@ msgstr ""
 "Αποτυχία ανάγνωσης της τρέχουσας εισαγωγής στην συσκευή '%s'. Πιθανόν να "
 "είναι μια συσκευή ράδιο"
 
-#, c-format
+#, fuzzy, c-format
 msgid ""
 "Failed to get current output on device '%s'. May be it is a radio device"
 msgstr ""
-"Αποτυχία ανάγνωσης της τρέχουσας εξόδου στην συσκευή '%s'. Πιθανόν να είναι "
-"μια συσκευή ράδιο"
+"Αποτυχία ανάγνωσης της τρέχουσας εισαγωγής στην συσκευή '%s'. Πιθανόν να "
+"είναι μια συσκευή ράδιο"
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to set output %d on device %s."
-msgstr "Αποτυχία ορισμού εξόδου %d στην συσκευή %s."
+msgstr "Αποτυχία ρύθμισης εισαγωγής %d στην συσκευή %s."
 
 msgid "Changing resolution at runtime is not yet supported."
 msgstr ""
@@ -340,11 +374,15 @@ msgstr ""
 msgid "Cannot operate without a clock"
 msgstr "Δεν είναι δυνατή η λειτουργία χωρίς ρολόι "
 
-#~ msgid "Could not establish connection to sound server"
-#~ msgstr "Δεν ήταν δυνατή η σύνδεση με τον διακομιστή ήχου"
+#~ msgid "Got unexpected frame size of %u instead of %u."
+#~ msgstr "Απροσδόκητο μέγεθος πλαισίου από %u αντί του %u"
 
-#~ msgid "Failed to query sound server capabilities"
-#~ msgstr "Αποτυχία αναζήτησης των δυνατοτήτων του διακομιστή ήχου"
+#~ msgid "Failed trying to get video frames from device '%s'."
+#~ msgstr "Αποτυχία ανάγνωσης πλαισίων βίντεο από την συσκευή '%s'."
+
+#~ msgid "Failed after %d tries. device %s. system error: %s"
+#~ msgstr ""
+#~ "Αποτυχία έπειτα από %d προσπάθειες. συσκευή %s. σφάλμα συστήματος: %s"
 
 #~ msgid "Bass"
 #~ msgstr "Μπάσα"
@@ -364,9 +402,6 @@ msgstr "Δεν είναι δυνατή η λειτουργία χωρίς ρολ
 #~ msgid "Line-in"
 #~ msgstr "Γραμμή-εισόδου"
 
-#~ msgid "Microphone"
-#~ msgstr "Μικρόφωνο"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -467,21 +502,9 @@ msgstr "Δεν είναι δυνατή η λειτουργία χωρίς ρολ
 #~ msgid "Telephone"
 #~ msgstr "Τηλέφωνο"
 
-#~ msgid "Line In"
-#~ msgstr "Είσοδος γραμμής"
-
-#~ msgid "Internal CD"
-#~ msgstr "Εσωτερικό CD"
-
 #~ msgid "Video In"
 #~ msgstr "Είσοδος βίντεο"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "Είσοδις AUX 1"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "Είσοδος AUX 2"
-
 #~ msgid "AUX In"
 #~ msgstr "Είσοδος AUX"
 
@@ -494,9 +517,6 @@ msgstr "Δεν είναι δυνατή η λειτουργία χωρίς ρολ
 #~ msgid "Microphone Boost"
 #~ msgstr "Ενίσχυση μικροφώνου"
 
-#~ msgid "Loopback"
-#~ msgstr "Ανατροφοδότηση"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Διαγνωστικό"
 
@@ -509,9 +529,6 @@ msgstr "Δεν είναι δυνατή η λειτουργία χωρίς ρολ
 #~ msgid "Input"
 #~ msgstr "Είσοδος"
 
-#~ msgid "Record Source"
-#~ msgstr "Πηγή εγγραφής"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Παρακολούθηση πηγής"
 
@@ -551,9 +568,6 @@ msgstr "Δεν είναι δυνατή η λειτουργία χωρίς ρολ
 #~ msgid "Input Mix"
 #~ msgstr "Μίξη εισόδου"
 
-#~ msgid "SPDIF In"
-#~ msgstr "Είσδος SPDIF"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Μικρόφωνο 1"
 
@@ -698,8 +712,11 @@ msgstr "Δεν είναι δυνατή η λειτουργία χωρίς ρολ
 #~ msgid "%s Function"
 #~ msgstr "Λειτουργία %s"
 
-#~ msgid "Got unexpected frame size of %u instead of %u."
-#~ msgstr "Απροσδόκητο μέγεθος πλαισίου από %u αντί του %u"
+#~ msgid "Could not establish connection to sound server"
+#~ msgstr "Δεν ήταν δυνατή η σύνδεση με τον διακομιστή ήχου"
+
+#~ msgid "Failed to query sound server capabilities"
+#~ msgstr "Αποτυχία αναζήτησης των δυνατοτήτων του διακομιστή ήχου"
 
 #~ msgid "Error reading %d bytes on device '%s'."
 #~ msgstr "Σφάλμα κατά την ανάγνωση %d bytes στην συσκευή '%s'."
@@ -707,13 +724,6 @@ msgstr "Δεν είναι δυνατή η λειτουργία χωρίς ρολ
 #~ msgid "Could not enqueue buffers in device '%s'."
 #~ msgstr "Αδυναμία θέσης σε σειρά των buffer στη συσκευή '%s'."
 
-#~ msgid "Failed trying to get video frames from device '%s'."
-#~ msgstr "Αποτυχία ανάγνωσης πλαισίων βίντεο από την συσκευή '%s'."
-
-#~ msgid "Failed after %d tries. device %s. system error: %s"
-#~ msgstr ""
-#~ "Αποτυχία έπειτα από %d προσπάθειες. συσκευή %s. σφάλμα συστήματος: %s"
-
 #~ msgid "Describes the selected input element."
 #~ msgstr "Περιγράφει το επιλεγμένο στοιχείο εισαγωγής."
 
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index dda5e46ca3c5c010fb06191bf731f286829337c3..f643630259d3b0015b76b1148aba766d3e5a4aa8 100644
GIT binary patch
delta 182
zcmey!GM}~no)F7a1|VPsVi_QI0b+I_&H-W&=m26aAnpWWkoXiJHUr{0K+Fcjmw~vL
zk%8eBkOryqV}huQ1kxaNi9i~pZU&GBDq~;)Vi*7liGVF;28sA)CKu%wWaQ_iPAu5N
VVQ6Y)YNl;qG}(ml2Pcw@I{*y+8HxY^

delta 156
zcmbQw`jMsno)F7a1|VPoVi_Q|0b*7ljsap2C;(!1AT9)AGa#-6Vm2V&0K~<N3=G?W
zG)P{X2_kO{q(SmoKpH5`0Hhe0ff!^y82IMrWtQX@G5F;x<QFMSPG_>1c&n7d$iT|L
QSlhsGaya9U$x%$M04?(sb^rhX

diff --git a/po/en_GB.po b/po/en_GB.po
index d068dcc3d..03a513af6 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -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: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\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"
@@ -15,18 +15,24 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#. TRANSLATORS: 'song title' by 'artist name'
-#, c-format
-msgid "'%s' by '%s'"
+msgid "Jack server not found"
 msgstr ""
 
 msgid "Failed to decode JPEG image"
 msgstr ""
 
+#. TRANSLATORS: 'song title' by 'artist name'
+#, c-format
+msgid "'%s' by '%s'"
+msgstr ""
+
 #, fuzzy
 msgid "Could not connect to server"
 msgstr "Could not close control device \"%s\"."
 
+msgid "No URL set."
+msgstr ""
+
 #, fuzzy
 msgid "Server does not support seeking."
 msgstr "Your oss device could not be probed correctly"
@@ -49,9 +55,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "No URL set."
-msgstr ""
-
 msgid "Internal data stream error."
 msgstr ""
 
@@ -64,6 +67,9 @@ msgstr ""
 msgid "This file is invalid and cannot be played."
 msgstr ""
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr ""
 
@@ -108,6 +114,23 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Could not open audio device \"%s\" for writing."
 
+msgid ""
+"Could not open audio device for playback. This version of the Open Sound "
+"System is not supported by this element."
+msgstr ""
+
+msgid "Playback is not supported by this audio device."
+msgstr ""
+
+msgid "Audio playback error."
+msgstr ""
+
+msgid "Recording is not supported by this audio device."
+msgstr ""
+
+msgid "Error recording from audio device."
+msgstr ""
+
 msgid ""
 "Could not open audio device for recording. You don't have permission to open "
 "the device."
@@ -117,21 +140,33 @@ msgstr ""
 msgid "Could not open audio device for recording."
 msgstr "Could not open CD device for reading."
 
-msgid ""
-"Could not open audio device for playback. This version of the Open Sound "
-"System is not supported by this element."
+#, fuzzy
+msgid "Record Source"
+msgstr "Record"
+
+msgid "Microphone"
+msgstr "Microphone"
+
+#, fuzzy
+msgid "Line In"
+msgstr "Line-in"
+
+msgid "Internal CD"
 msgstr ""
 
-msgid "Playback is not supported by this audio device."
+msgid "SPDIF In"
 msgstr ""
 
-msgid "Audio playback error."
+msgid "AUX 1 In"
 msgstr ""
 
-msgid "Recording is not supported by this audio device."
+msgid "AUX 2 In"
 msgstr ""
 
-msgid "Error recording from audio device."
+msgid "Codec Loopback"
+msgstr ""
+
+msgid "SunVTS Loopback"
 msgstr ""
 
 msgid "Volume"
@@ -232,6 +267,10 @@ msgstr "Could not close audio device \"%s\"."
 msgid "Failed to change mute state for device '%s'."
 msgstr "Could not get buffers from device \"%s\"."
 
+#, fuzzy, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Could not write to device \"%s\"."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -254,10 +293,6 @@ msgstr ""
 msgid "Failed getting controls attributes on device '%s'."
 msgstr ""
 
-#, fuzzy, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Could not write to device \"%s\"."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr ""
@@ -339,9 +374,6 @@ msgstr ""
 #~ msgid "Line-in"
 #~ msgstr "Line-in"
 
-#~ msgid "Microphone"
-#~ msgstr "Microphone"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -402,10 +434,6 @@ msgstr ""
 #~ msgid "Side"
 #~ msgstr "Video"
 
-#, fuzzy
-#~ msgid "Line In"
-#~ msgstr "Line-in"
-
 #, fuzzy
 #~ msgid "Video In"
 #~ msgstr "Video"
@@ -422,10 +450,6 @@ msgstr ""
 #~ msgid "Microphone Boost"
 #~ msgstr "Microphone"
 
-#, fuzzy
-#~ msgid "Record Source"
-#~ msgstr "Record"
-
 #, fuzzy
 #~ msgid "Monitor Source"
 #~ msgstr "Monitor"
diff --git a/po/eo.gmo b/po/eo.gmo
index 3bcff55a99829da3c916ba89b695ca1a83b3fef5..0c54fa6fc5f1b629c2898cdfd06ba1b5fc41c38b 100644
GIT binary patch
delta 321
zcmXZW$qGSH9LMp$>l&^hLrI2gWy(-2?#2^Xvb8Wo%8~3ngXA47m8`si@&-!E&eq1p
z_gwz<JD=`3=l(h$>kwGq;^t16Ajy&yiIEG@6LpD%Foqe-VF7LI;Sh^>{+~ZFz_($D
z_%MtqOrRI5c;QY9>0OK4{1r#B!G$t*v5yrzVG<u`;Rkh*$0L%)5c)BX^a?oV^gHAJ
ztI-eBkJ6+62}<Nw>g=$Xo7dZ#4wh;$QS;IE?%Mn7O}p7D)f&f*(Kf8kbhcDuHCNlK
GS^fguEg+o$

delta 286
zcmXZXKM%n`7=ZD&)zbPmSVW0fL}(;cCX2;a-~*U#CR2B7W3rni7K7PjurV1V786#9
zc<$noC%?<x<xRUuf86L=u$IC~Q-!9Kqdlqhq%6ItOkZk}XNZh(h%H>9x<6nFZ&<<y
zCeboQj_fn2=3Nr{eI$1_AqR#fGQu9Vae+nLp&D>P56|e}8<{7})A#DkCG{hW)E@!D
mGrjD;(x}fGwaL7ul(=f#<Gi_c!k`~?{h+hmn*%epZT|-%FCP{F

diff --git a/po/eo.po b/po/eo.po
index 8b38f3634..32c0067c7 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2011-06-04 21:48+0100\n"
 "Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
@@ -17,17 +17,23 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "'%s' de '%s'"
 
-msgid "Failed to decode JPEG image"
-msgstr ""
-
 msgid "Could not connect to server"
 msgstr "Ne eblis konekti al servilo"
 
+msgid "No URL set."
+msgstr ""
+
 msgid "Server does not support seeking."
 msgstr ""
 
@@ -47,9 +53,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "No URL set."
-msgstr ""
-
 msgid "Internal data stream error."
 msgstr "Interna datumflu-eraro."
 
@@ -62,6 +65,9 @@ msgstr ""
 msgid "This file is invalid and cannot be played."
 msgstr ""
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr ""
 
@@ -107,6 +113,23 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Ne eblis malfermi la sonaparaton por reproduktado."
 
+msgid ""
+"Could not open audio device for playback. This version of the Open Sound "
+"System is not supported by this element."
+msgstr ""
+
+msgid "Playback is not supported by this audio device."
+msgstr ""
+
+msgid "Audio playback error."
+msgstr ""
+
+msgid "Recording is not supported by this audio device."
+msgstr ""
+
+msgid "Error recording from audio device."
+msgstr ""
+
 msgid ""
 "Could not open audio device for recording. You don't have permission to open "
 "the device."
@@ -115,21 +138,32 @@ msgstr ""
 msgid "Could not open audio device for recording."
 msgstr "Ne eblis malfermi sonaparaton por registrado."
 
-msgid ""
-"Could not open audio device for playback. This version of the Open Sound "
-"System is not supported by this element."
+#, fuzzy
+msgid "Record Source"
+msgstr "Registri"
+
+msgid "Microphone"
+msgstr "Mikrofono"
+
+msgid "Line In"
 msgstr ""
 
-msgid "Playback is not supported by this audio device."
+msgid "Internal CD"
 msgstr ""
 
-msgid "Audio playback error."
+msgid "SPDIF In"
 msgstr ""
 
-msgid "Recording is not supported by this audio device."
+msgid "AUX 1 In"
 msgstr ""
 
-msgid "Error recording from audio device."
+msgid "AUX 2 In"
+msgstr ""
+
+msgid "Codec Loopback"
+msgstr ""
+
+msgid "SunVTS Loopback"
 msgstr ""
 
 msgid "Volume"
@@ -229,6 +263,10 @@ msgstr ""
 msgid "Failed to change mute state for device '%s'."
 msgstr ""
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr ""
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -251,10 +289,6 @@ msgstr ""
 msgid "Failed getting controls attributes on device '%s'."
 msgstr ""
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr ""
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Tio ne estas '%s'-aparato."
@@ -323,18 +357,12 @@ msgstr ""
 #~ msgid "Speaker"
 #~ msgstr "Parolilo"
 
-#~ msgid "Microphone"
-#~ msgstr "Mikrofono"
-
 #~ msgid "CD"
 #~ msgstr "KD"
 
 #~ msgid "Mixer"
 #~ msgstr "Miksilo"
 
-#~ msgid "Record"
-#~ msgstr "Registri"
-
 #~ msgid "Video"
 #~ msgstr "Video"
 
diff --git a/po/es.gmo b/po/es.gmo
index b6f775a4730dfd0e9da5d7bbade94ce1413fdab9..6cea3468e38ffd4483515e7bf79fe21af59f5963 100644
GIT binary patch
delta 1922
zcmYk+OKenC9LMp0hrX=PmePl{(%#Z)v4z5nooOi|eZQMgCt{-sdfSe5l-#LfQ38vh
z#)T%bFry@0pvJHOlN!T>jU<Gm3o&tpi4qf<AmTzq7e3;K#P9FU)OeDAKj)m@JLla0
z`QN)fvNE1tuPXe|Xw$?)#M=S01^l&;KeTs>%{Jq^IDx0J6mQ~v_)C8LXMTJSYnU%7
zF{{MwsNe0xMx4Yhd<7fK()KZ(N13>UZFn0W!7Z$!`7S(!hw(MMh|gjhtG8nsXYez8
z3^$eK7V5?p#)mM3$FUVx^YhoxWqtdb&QAU@bHCXRTt?k+7TKYFk3;wej$#k#7{iko
z!LKohwuPsJ5bAyxwV@AC3tz=Pyqh0)ma{?Dw-}v=@l6cl8C3SaMIOqoBWv4_SdYJ<
zHdb0;R)wud(ySXvjvYjv$;R^YG1UFfqc*&Nr|~09r|5(^s6BWN*_>U+z4$Zg2kW-x
zHsW9t<92j#0(I7}qOM;?9pMG+#UHR8YuM#(>_d$`)Pt;4k$>vNvP@hlF#8g@$4*q6
zMe!7BLpM-Gcqc#pCqFJ`^=9U`q3#P~Cyt_u?hTy445}8^QAZM}HS5PnE&1O^=NJ=u
zf(v*UZ{epnP?vifZsRV-(+`-<;c@K4b?m?<9!D9R!~r~k5xk6H{0ra0jt6ra{2Y~u
z8)-T!u2K$EMKX<AAcZb|hc99ej}yZcoWi>}g1y_#hH)8HoL^xNR`9O9fMclfIoyXg
zu^SsWNBvGZMn`A-393lWV;NpVrR)ki_!Dxk6){k%Taogx2<rM#R1rRn?7^NxW#SmF
z;w4<hM00KfcaWr}tz}2<gRmbdY+FQ~c^Y*jr%;)>jM~sG9LEv{I_sx!5>KL1{SE2~
z1KiYwy~tXYL~ZbWEI_qNz5iNFuipUCM-&n|OG?0RN|Q3A#ng0eYWmTBB0y{+)U>dg
zHZ(|VCfJYvT{(!mhzjCyLamMU{jZz`q{Bbc{Tk4A68aKS?0$;%E$Ai2i2pZA;lEZy
zZ-UU7Q=9&WNLf`=<vRo=<u_giOLMG#VGQ9D{&en~)t%0dl~$!(_0d7_mKt^IH>LCd
zp)(H>dYw0#-hka31JrS-c66*NR+@e)cfQ+@x5S1s_ljm~#y#tQX2uCR(W6U#FXW7S
z+1cXXO9F#KnbGoSEmuq>ytseCbYd=*Tzom{#j`8r?-i6dvE<RzTs+fQ*%RQlXk~q%
zG#Ks;M>_U~vWrz`3W|okrIef5T3uZcG`~OZI$AK4t*`!~tZZ<|Nq9@~l$Xq0ZA`Yr
zb@jY!Q){bU+;!&T&g<@x1QS|#E&Ec^OJ)x=T`Q=IrV<NrPZu0<orRP;>&_+CvR<aV
UIa0o{Ol;4SL*paa!RCg*zrK6d@c;k-

delta 1655
zcmZA1T};h!9LMqR>4}n4N=ZehJXBInDinI+q|!XK@;IDCYr{}(tU1HDurNC^vRrhN
z%@{jwY%()rHW${73uDG&vzdp@8nf~K{7>EZu3xX;?_cNt`~AP)@BdtFcv}~En-tY&
zL>(iO(G+3k$DSyDDPqjx!G(?J##r1s?jB5GeE<{j6zV>ga5mn>QhbRS7(K}>AG0yn
zEMRMy%;!Sa_#gVQmGu)mj2V;7Hsd*5fTOqt6FEf*cA_>Kz&ZE;7vnpei^*}}>&s9N
zwgdC<A?C2ZePW^y#7zmGa3!v0y%pEsb*#saxC9rGj$+)0MR*1E`DdsD{YGtEG}Wvc
zn^Egar~}@|dH4p)*xw@EW>Hv<9NH>zCf1`;)`m%V9C>)Vh$P4Qku%vK>R`9=GLGUA
z>`CCT_!YgFMSXPt4VZ=7FyLWwjEQP^4ZV05bMZY^VBEBD>U~(q`q23LI_jX$k@DIH
zeB?6wjQrTmWV7`+j3mXTP7j-o*{pM?lYjkV0~d;LJF0okVj~WrQuYIt+Eh+igN;~@
zy{H2}#ho~YgV>sC)`7opA^K;S?ZNX{jX$seOVY@{QnV}0tQIezQaOTU7|Y|G#46MQ
zAL9c2j_Q%j^l)wcs144bn(Q;~#wP05jJL1}T|8YKu0tR81(>MGUgI*HGmFFE4%GSq
zmg7%cii>D<-KYcA3-?exFpSF7bM)XB<j33;nkrf$s%I*ZTUj0IfdlPKZZR3c6WHPj
zZ}bXFStn#uH(ZTM^(Is|pF(YT0~_!KDnqF`W^2)h%HT!R!Jnb-_ZRtBE9Ju+C}6Ej
zTwKtHwZTNJV4|j>d7V%l)qGUOD4!GD%OV+SK6SQ&L^=mlzv!*1Vraukh9Z}t@0$oM
z^!_XO3UKO9*^HiXf}XQ#2Bmf~pfu}s{6F+AtBGqFDv5`o?*oNWt}G~2_hM&ewj7nc
z8ttzJRPdHKwRRT#(mU^FR50=xidA8pRBB4YJKtt2kqSCBk4Dv8p=O;3)m=@eQ1hxR
zPS(_D1;NuXZISDbc8C7Ne4P{=bNigdri5NsWaq(-;GM+0kY`$2#N@@^3U5h)w>VUt
zJm89N_V4d(_j_tuws?v|(J6Q0f{(He#&kJXLmNFKt|(tu_uk;Q^weNWPDUt@lOFL8
DG_#>+

diff --git a/po/es.po b/po/es.po
index f8bf2b7da..f88d231f4 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2011-02-12 18:30+0100\n"
 "Last-Translator: Jorge González González <aloriel@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
@@ -18,17 +18,23 @@ msgstr ""
 "X-Generator: KBabel 1.11.4\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Falló al decodificar la imagen JPEG"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "«%s» por «%s»"
 
-msgid "Failed to decode JPEG image"
-msgstr "Falló al decodificar la imagen JPEG"
-
 msgid "Could not connect to server"
 msgstr "No se pudo conectar con el servidor"
 
+msgid "No URL set."
+msgstr "No existe un URL establecido."
+
 msgid "Server does not support seeking."
 msgstr "El servidor no soporta la búsqueda."
 
@@ -49,9 +55,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr "El servidor envió datos erróneos."
 
-msgid "No URL set."
-msgstr "No existe un URL establecido."
-
 msgid "Internal data stream error."
 msgstr "Error interno de flujo de datos."
 
@@ -64,6 +67,9 @@ msgstr "Este archivo no contiene flujos reproducibles."
 msgid "This file is invalid and cannot be played."
 msgstr "Este archivo no es válido y no se puede reproducir."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Este archivo está corrupto y no se puede reproducir."
 
@@ -118,16 +124,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "No se pudo abrir el dispositivo para reproducir."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"No se pudo abrir el dispositivo de sonido para grabar. No tiene permisos "
-"para abrir el dispositivo."
-
-msgid "Could not open audio device for recording."
-msgstr "No se pudo abrir el dispositivo para grabar."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -148,6 +144,45 @@ msgstr "Este dispositivo de sonido no soporta la grabación."
 msgid "Error recording from audio device."
 msgstr "Error al grabar del dispositivo de sonido."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"No se pudo abrir el dispositivo de sonido para grabar. No tiene permisos "
+"para abrir el dispositivo."
+
+msgid "Could not open audio device for recording."
+msgstr "No se pudo abrir el dispositivo para grabar."
+
+msgid "Record Source"
+msgstr "Origen de la grabación"
+
+msgid "Microphone"
+msgstr "Micrófono"
+
+msgid "Line In"
+msgstr "Línea de entrada"
+
+msgid "Internal CD"
+msgstr "CD interno"
+
+msgid "SPDIF In"
+msgstr "Entrada S/PDIF"
+
+msgid "AUX 1 In"
+msgstr "Entrada AUX 1"
+
+msgid "AUX 2 In"
+msgstr "Entrada AUX 2"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Bucle local"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Bucle local"
+
 msgid "Volume"
 msgstr "Volumen"
 
@@ -255,6 +290,10 @@ msgstr "Falló al establecer la entrada %d en el dispositivo %s."
 msgid "Failed to change mute state for device '%s'."
 msgstr "Falló al obtener la potencia de la señal para el dispositivo «%s»."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "No se puede identificar el dispositivo «%s»."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -280,10 +319,6 @@ msgstr "Falló al consultar la norma para el dispositivo «%s»."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Falló al obtener los atributos de control en el dispositivo «%s»."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "No se puede identificar el dispositivo «%s»."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Esto no es un dispositivo «%s»."
@@ -379,9 +414,6 @@ msgstr "No se puede operar sin reloj"
 #~ msgid "Line-in"
 #~ msgstr "Línea de entrada"
 
-#~ msgid "Microphone"
-#~ msgstr "Micrófono"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -482,21 +514,9 @@ msgstr "No se puede operar sin reloj"
 #~ msgid "Telephone"
 #~ msgstr "Teléfono"
 
-#~ msgid "Line In"
-#~ msgstr "Línea de entrada"
-
-#~ msgid "Internal CD"
-#~ msgstr "CD interno"
-
 #~ msgid "Video In"
 #~ msgstr "Entrada de vídeo"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "Entrada AUX 1"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "Entrada AUX 2"
-
 #~ msgid "AUX In"
 #~ msgstr "Entrada AUX"
 
@@ -509,9 +529,6 @@ msgstr "No se puede operar sin reloj"
 #~ msgid "Microphone Boost"
 #~ msgstr "Aumento del micrófono"
 
-#~ msgid "Loopback"
-#~ msgstr "Bucle local"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Diagnóstico"
 
@@ -524,9 +541,6 @@ msgstr "No se puede operar sin reloj"
 #~ msgid "Input"
 #~ msgstr "Entrada"
 
-#~ msgid "Record Source"
-#~ msgstr "Origen de la grabación"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Monitor de origen"
 
@@ -566,9 +580,6 @@ msgstr "No se puede operar sin reloj"
 #~ msgid "Input Mix"
 #~ msgstr "Mezclador de entrada"
 
-#~ msgid "SPDIF In"
-#~ msgstr "Entrada S/PDIF"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Micrófono 1"
 
diff --git a/po/eu.gmo b/po/eu.gmo
index cfc0449eaaf3d75b586edc72c9ee74c1a7e04283..2ca5f8b54873591c2be1a83fe74caf1486ea962c 100644
GIT binary patch
delta 1675
zcmX}sTWAzl9LMqhCaH-g(KM+^jM`4>B^NJovnFnnSQDeH7UP9rwfZ!%Q(X)@b&{pn
zS~i91gOp$iQS9YGDhQTh?G^;7VEWJptB5{X3TlH7KKj%OKG^SXcGkn5{hV{=a{lu_
zXXaV*R&VZMZP~O@`l(A)OUyoyW&BYlUNfu0FR%h9aW0;V`WK@9Wn9SkuULb(Q1|;A
z-^Ay*9vkMEEyf+#VwSTbG*&Wj2HWr&zK{RlF-(@5?ZeC1jwM8~AJ<?4PvLUBj?3^7
zx>!n-t?1#~IEkHj6&1h}OfkRNJhN`thH=c{TD*$7;4x~Vy2`>tDeR{|8ufodO?)4_
z@LyE&R+Bd7usAYgy|@Tdr~q6n*ZiN;AZR;@%w>~0fag(xUBI*W00Z=^%{p)v`C09J
zvvug8?z0Cq@quXkLnPHUjXih++wnQ(*3ekCpfIop72yda`*s#*V`kr@o?zm2vwHk0
z@`uRlk@wKy_*1OIxwU4^xD>Snn{WU}Pyt=6CI6i?ZZpt<FHtG%;Oc|uVHRgln{vY&
zh4a3~VU1%F7qauT2X^909K#d%4eEFUQS10_?87Xsz+dXg{{b2g7)W8F!R$T!40Ylk
zsEA7&&9>lHjN@tCjlZFGbv0>Qjhj*T@li{04Oun2iOS#|T#A38ga74dkX>tRD%gtJ
z14+~x4&qK6!Y}bV`~;iXK?>wN61)A0t8f;zC+73+$t9?O+HoTWs0aKRH(>4sjUE~a
z!b)NWiODXZo?r%JxR%PphJ_f6#DwSTTBWjBw61Sa70gDemQ_XjOiQher_x2`0dm$$
zgN+y#Z92X`#<GSRh}gm?`><H_F?l!Yw4$C~Yp!f*DK=4yrJIHxLWQjmZo;th>W}qr
zjyn2kC8D;LKpRG{RX<g!B(vdbsdd&`zC&%J>fLv!TE=4G1qj!@*e|7_tnv{IzYXm3
zLQ%wIxKLVFjI}r;#~o<{d-pqWXL}}U?8=UZtxksWFU!82Q!=<^>P%%{J!kAlXFNwI
z45beR{>MlBjF-P#IT0&&hW%`C$eY?$oh;$9<JG^%D&k!|UEQnJb>;^bjK=E5+#v7*
z*BNyWXETTCq}{0>YZjMjJfE+rs+hOg4Km(Q-(k8NjRS4Ng$o!MWmea=2jd<$c-0?D
w9}WDE{EVNkT68*Ap9<U&_tUiR242QVk7t9CY>;)QrkfJw(bV~wrYo`k0a(++@c;k-

delta 1376
zcmX}sOGs346vy#1`8FLNSw5>#^I6%9Z>J)yAdFI>@KKwLL?kUVC5m7og&;zRAqjd=
z5s@S<8j3(NvPIy^O^}f-M53TYEou`~-`}0FKm6x&|99@(|GDR!J9FE=*9ShOM_)Ha
z12d1g>@sV`sVF`eU!u*D@GB<ZuZR|7ww84wrlJS+dmnDV7Ochr%*Fdyf-_i*pRvp=
zV9Bv&?VPB?K^(^pv^cYJ=)_JO#VY)Wn=m!rtPpFk8@sR+r?CK+u@d8mS^@ZRAGTvH
z-a#Mx+dB>_bYWun2eqh;`cNC)#zvfttfN+kH!j5*&L2RMVwaFx*=5YeYp9JMBeB?9
zBzBue1@Imx*xypf?+`x3ZJ3>G=EY{z4bMl`V_3ra8TxS%%Q4GswiWlF)`O@3ZXwCE
z=eR^!Um|<jUFx+Cr!b&{Hyn8I1Fpf}n2#xG;Z*vtiS=Pr028Rx&Y%MRfyzXFy4g|e
zz!3~#7nX5TT{nt{bRO$5E`$6l#f=%^rs%;7tgoUjNT9>?{chZWy;y_~@CeSKYFflo
z?8gDrbuUl>|HQpmm#JEFZ*0RSsOJ2eN&dHRP@NUNQ8%hqlc=tLitF(edT<d_@DHjq
zZt~oMSvZEhcox5*HawAIwizdoYS}C*;CbAMSphmkk+)+V-a|hwU_EB=PH`_ghzhJ1
zU8t;RaG4Q{Q!cG_O)0a1sRy7k;kN+Q3+(H>e&CEi73g(Y8G0&ZM8T|L>gn|)8tiTQ
zTd2??G7?curC>E^9cSpN$-drkr#Y#VGivzsgb(!@FiN5S5~uOhBsA&&LH{@nr#}=8
zFLNVP8BrPZ{;!N$4pdWG$9W4@&Z}RdBMX(lN{Y^uc#fa*NDGd~#74D_42LFTZpH@N
zk}93WjiigNV6od5I_92s#aDX$-m1-BU#Kv(-xb|AG~5$<ot6|IT*%(#Zf4ap)P3@_
Xr@!x1PpB#9iYvI3TNx_Id*u2D4}XR<

diff --git a/po/eu.po b/po/eu.po
index a80410ad9..0b1ac4557 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-0.10.18.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2010-03-25 12:37+0100\n"
 "Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
 "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
@@ -19,17 +19,23 @@ msgstr ""
 "X-Generator: KBabel 1.11.4\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Huts egin du JPEG irudia deskodetzean"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "'%s' - '%s'"
 
-msgid "Failed to decode JPEG image"
-msgstr "Huts egin du JPEG irudia deskodetzean"
-
 msgid "Could not connect to server"
 msgstr "Ezin izan da konektatu zerbitzariarekin"
 
+msgid "No URL set."
+msgstr ""
+
 msgid "Server does not support seeking."
 msgstr ""
 
@@ -51,9 +57,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "No URL set."
-msgstr ""
-
 msgid "Internal data stream error."
 msgstr "Datu-korrontearen barne-errorea."
 
@@ -68,6 +71,9 @@ msgstr "Fitxategi horretan ez dago erreproduzi daitekeen korronterik."
 msgid "This file is invalid and cannot be played."
 msgstr "Fitxategi hau ez da baliozkoa eta ezin da erreproduzitu."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Fitxategi hau hondatua dago, eta ezin da erreproduzitu."
 
@@ -121,16 +127,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Ezin izan da audioaren gailua ireki erreproduzitzeko."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Ezin izan da audioaren gailua ireki grabatzeko. Ez duzu baimenik gailua "
-"irekitzeko."
-
-msgid "Could not open audio device for recording."
-msgstr "Ezin izan da audioaren gailua ireki grabatzeko."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -150,6 +146,45 @@ msgstr "Audio gailu honek ez du grabatzea onartzen."
 msgid "Error recording from audio device."
 msgstr "Errorea audioko gailutik grabatzean."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Ezin izan da audioaren gailua ireki grabatzeko. Ez duzu baimenik gailua "
+"irekitzeko."
+
+msgid "Could not open audio device for recording."
+msgstr "Ezin izan da audioaren gailua ireki grabatzeko."
+
+msgid "Record Source"
+msgstr "Grabazioaren iturburua"
+
+msgid "Microphone"
+msgstr "Mikrofonoa"
+
+msgid "Line In"
+msgstr "Sarrerako linea"
+
+msgid "Internal CD"
+msgstr "Barneko CDa"
+
+msgid "SPDIF In"
+msgstr "SPDIF sarrera"
+
+msgid "AUX 1 In"
+msgstr "1. sarrera lagungarria"
+
+msgid "AUX 2 In"
+msgstr "2. sarrera lagungarria"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Atzera-begizta"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Atzera-begizta"
+
 msgid "Volume"
 msgstr "Bolumena"
 
@@ -253,6 +288,10 @@ msgstr "Huts egin du '%2$s' gailuko %1$d. sarrera ezartzean."
 msgid "Failed to change mute state for device '%s'."
 msgstr "Huts egin du '%s' gailuaren seinalearen indarra eskuratzean."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Ezin da '%s' gailua identifikatu."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -278,10 +317,6 @@ msgstr "Huts egin du '%s' gailuaren araua kontsultatzean."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Huts egin dut '%s' gailuaren kontrol-atributuak eskuratzean."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Ezin da '%s' gailua identifikatu."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Hau ez da '%s' gailu bat."
@@ -376,9 +411,6 @@ msgstr "Ezin du funtzionatu erlojurik gabe"
 #~ msgid "Line-in"
 #~ msgstr "Linea-sarrera"
 
-#~ msgid "Microphone"
-#~ msgstr "Mikrofonoa"
-
 #~ msgid "CD"
 #~ msgstr "CDa"
 
@@ -477,21 +509,9 @@ msgstr "Ezin du funtzionatu erlojurik gabe"
 #~ msgid "Telephone"
 #~ msgstr "Telefonoa"
 
-#~ msgid "Line In"
-#~ msgstr "Sarrerako linea"
-
-#~ msgid "Internal CD"
-#~ msgstr "Barneko CDa"
-
 #~ msgid "Video In"
 #~ msgstr "Bideo-sarrera"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "1. sarrera lagungarria"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "2. sarrera lagungarria"
-
 #~ msgid "AUX In"
 #~ msgstr "Sarrera lagungarria"
 
@@ -504,9 +524,6 @@ msgstr "Ezin du funtzionatu erlojurik gabe"
 #~ msgid "Microphone Boost"
 #~ msgstr "Mikrofonoaren bultzada"
 
-#~ msgid "Loopback"
-#~ msgstr "Atzera-begizta"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Diagnostikoa"
 
@@ -519,9 +536,6 @@ msgstr "Ezin du funtzionatu erlojurik gabe"
 #~ msgid "Input"
 #~ msgstr "Sarrera"
 
-#~ msgid "Record Source"
-#~ msgstr "Grabazioaren iturburua"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Monitorearen iturburua"
 
@@ -561,9 +575,6 @@ msgstr "Ezin du funtzionatu erlojurik gabe"
 #~ msgid "Input Mix"
 #~ msgstr "Sarrerako nahasketa"
 
-#~ msgid "SPDIF In"
-#~ msgstr "SPDIF sarrera"
-
 #~ msgid "Microphone 1"
 #~ msgstr "1. mikrofonoa"
 
diff --git a/po/fi.gmo b/po/fi.gmo
index 4dd4235ea94607d2f2e7acd739ba25fa3dde77a3..417050c0ee58ed9c66663b931e6341a04a5706c7 100644
GIT binary patch
delta 1782
zcmZY9OH5Q(9LMqh46mtDWJW>3QAcV;(efDNjf#S$H1!eRt%-)h7)Edgfiak9rpCBX
zNi;#5#*Hu9rrk7Uns!5D8g!*Dd?mVZVOpax>7q4mjM4A!a>tD)ocWw{=FC0k{Qu{Y
zYJRpV`6!Ti&M58FAa$$PtP@8v`Jm)yo8_V(Kgap#!zg}$18)DY+dqy4jGxAQ{2uk(
z-*G<P#TED;&NWL~X^z=a23oNc_v2zb=Z;U{cKT270Ip>99rz2DVGg_4iD9h9Q>cZm
z;v#&6A7RF{se_f`68a~wg!OHlMwo&7$d1f6eJUD@u$F!wR^b&a*F4nxOv0iC>re~z
zVhf&e`?paGzr-3W{*d3`CS*^x4X3ld?V(YGy{HWwM-FS3P@(<_*_(~K<9{N1u<NJ|
z-o|gymq$AA0#;yPh8bVkTCBuPsOKF;ZQvv(7tlCMBZR-9a(5r~gXdU^K@!=BZCHj$
z`~-h?`wvhD$ncwyR-1>{JVXVR`)2{thS@XC*qgPX4zy(^@z=m^cVIvAXTy9H;|MB*
zKcXIV1NES%s2nezW%e<y!*c9JrRF?pgSSw3=M^5n&74km=NeXFu#os`U_+tV8vFru
zIi8{x_RpTmZ4GwQ{|dFxRV=}OQMvWc;ndiUyD);<=wH}`Z?GDh2$L3$V;x>f($J0{
z;yTRb*p;{$^@C&BjDMhV_W~8V*T}sx9~VZEDR2#=a=Q^V?@PDe?HWV&Y{R$}lV@m*
z)A$Du;deYuuU~-UkbY}G^*d0h>PI~|iHg)o<ZzZk&AW-(@c&qbmE@@vci{@WfQsNf
zByvg1;07|+8j$;9JCM6$%cz=|E-Pth1DcaAT0pN}x~!#<K~<#mhBQ$X9i>WP&!V<a
zL)6t&t?yi*Mw(t{VCqAmRbGj*b2_DjD`5>(GUY@@uNFajujt-zKb=!6QcCNmR28L0
zQBctZtzdnpC}a!W_HtJ)snt^zRu%p8;7xPxi(boisxGaH?uv?X%VoD!R08R|CHh~&
z8)$7*r7T?(bsffeXJxHED7u+TM~`HEUC<G;HQRQEszMtRLryCk>WHNtXZ@Y+ZEYK!
z$ZalU#uw38#F?-@+BFdG?}^7EsaLrpo}AE@cw(R{GWtzky_cW;npfoYRn;`s)Gn(G
zr|#rm^pp%n2PelS$I`1L`r?D`GU;zp2LqRLvSX20hz0${Ek#32(vtf+L(cT|(cXdh
o-gqpU+FpFqGh;(%q9-05N(}Z*j`eg$Mi&Oleea(2S@5~%Ew<gpcK`qY

delta 1512
zcmYk+Pe@cz6vy#1jeo02oiQz^DYdlJ(wXs3W|~Hd6haB2Ms73<0z)dLT*Rd0u0j}e
z6GTN26ht{&T?B3Vy9h#paAOcIYN4CxAANssp3%kY=iN8&y?fs|=f34biN@HXKV{lz
zE%a^b>&#Bd6#mh!rJ8NTaXf~%FcUwzF5zazUojiKY02m0;&#Rnticl)#7Qi}d$`*y
zX0JIY<;1G{LqWP(H{({kfVZ&+eHmuucm{iM3afD$HBpFF?ZQUfiT&7*leh=JU@>N|
zH;ZC52ASW^a?s9+39Q3c7(velvr1ivx?un{;WTQZm)L^e+;J6Q(!^a@i&s!Ve1gnv
z3EYbFs7Nee2J_o02fU>HLY`$QzT`r(afWd_Uc^PL!p==*VH`(2couiy92VjyR7!rM
zt_x&2p|)0RU_6B7_z+|JIC$@#Py)5W3M3oWhA%v39jMyK@tZYaB@!eXa=nZJ#uHe8
zGpI;BL*4fQb>9jqRbehJ!Q%nqU&+BJC!+WOwV(x54W#BKYoHHR1Mg6&DdqJv?#09S
z6qVx@)WpHOWQv+`kntdDo|mW^_>Q%@E}!^^IOxnbJB7ojmA=M<n7JjH^ETAPW4Iq5
zqZYh`ZJ0;c!q|t^coQ4(IZ~hY2Nkh&!lQ`zU8`ao=!XteE_;x<tslE^3}^8jj^Q|!
zquuh;wV0>r{-dY}bRlc9tElT{uo3669Dm>uEa9zdFm{duh2{<_ByW*F^OC3>EJ8}a
zNeeIGH0E|DQ6w7ZnrN+Q5ry;$dJ|pG{J&A-{~8gCIbo(yjg%PQ5aat}q}eGbEu@96
zH&|<`^h55T3>B^2bcI>1If?UMZ|HT$l!j9q?$Cw&t02@Ua%X#KD=HPLP(`Mm&dzi4
zrd_d@u8<#~E2R1s6w%p4PE%bda@xvkO*KIVof^_N!SDW1r&Vi9SlpL3;5|M%lDMAs
zIW0coi#mfj-wjW^J1dfy%JQ$vh=v=&)fM4L;!)0BPs-@f@TJ61;C_0%KA0bm28&Y*
Xom1z7Z#;2-s33ki6i7^lK70NGTI!45

diff --git a/po/fi.po b/po/fi.po
index cfdf9bcf6..2076b16e5 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.25.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2010-11-17 23:03+0200\n"
 "Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -21,17 +21,23 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "JPEG-kuvan purku epäonnistui"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "”%s” artistilta ”%s”"
 
-msgid "Failed to decode JPEG image"
-msgstr "JPEG-kuvan purku epäonnistui"
-
 msgid "Could not connect to server"
 msgstr "Palvelimeen ei saatu yhteyttä"
 
+msgid "No URL set."
+msgstr "Ei URL:ää asetettuna."
+
 msgid "Server does not support seeking."
 msgstr "Pavelin ei tue kelausta."
 
@@ -51,9 +57,6 @@ msgstr "Tapahtui verkkovirhe tai palvelin sulki yhteyden yllättäen."
 msgid "Server sent bad data."
 msgstr "Palvelin lähetti virheellistä dataa."
 
-msgid "No URL set."
-msgstr "Ei URL:ää asetettuna."
-
 msgid "Internal data stream error."
 msgstr "Sisäisen tietovirran virhe."
 
@@ -68,6 +71,9 @@ msgstr "Tiedosto ei sisällä soitettavia virtoja."
 msgid "This file is invalid and cannot be played."
 msgstr "Tiedosto on virheellinen eikä sitä voida esittää."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Tiedosto on vioittunut eikä sitä voida näyttää."
 
@@ -120,16 +126,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Äänilaitetta ei voitu avata toistettavaksi."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Äänilaitetta ei voitu avata nauhoitusta varten. Laitteen avaamiseen ei ole "
-"oikeuksia."
-
-msgid "Could not open audio device for recording."
-msgstr "Äänilaitetta ei voitu avata nauhoitusta varten."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -149,6 +145,45 @@ msgstr "Tämä äänilaite ei tue nauhoitusta."
 msgid "Error recording from audio device."
 msgstr "Virhe luettaessa äänilaitteelta."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Äänilaitetta ei voitu avata nauhoitusta varten. Laitteen avaamiseen ei ole "
+"oikeuksia."
+
+msgid "Could not open audio device for recording."
+msgstr "Äänilaitetta ei voitu avata nauhoitusta varten."
+
+msgid "Record Source"
+msgstr "Nauhoituslähde"
+
+msgid "Microphone"
+msgstr "Mikrofoni"
+
+msgid "Line In"
+msgstr "Linjatulo"
+
+msgid "Internal CD"
+msgstr "Sisäinen CD"
+
+msgid "SPDIF In"
+msgstr "SPDIF sisään"
+
+msgid "AUX 1 In"
+msgstr "AUX 1 sisään"
+
+msgid "AUX 2 In"
+msgstr "AUX 2 sisään"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Takaisinkytkentä"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Takaisinkytkentä"
+
 msgid "Volume"
 msgstr "Äänenvoimakkuus"
 
@@ -247,6 +282,10 @@ msgstr "Sisääntuloa %d ei voitu asettaa laitteelle %s."
 msgid "Failed to change mute state for device '%s'."
 msgstr "Laitteelta ”%s” ei saatu signaalinvoimakkuutta."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Laitetta ”%s” ei voi tunnistaa."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -271,10 +310,6 @@ msgstr "Laitteen ”%s” videostandardia ei voitu kysyä."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Laitteen ”%s” ohjainattribuutteja ei voitu lukea."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Laitetta ”%s” ei voi tunnistaa."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Tämä ei ole laite ”%s”."
@@ -365,9 +400,6 @@ msgstr "Ei voitu toimia ilman kelloa"
 #~ msgid "Line-in"
 #~ msgstr "Linjatulo"
 
-#~ msgid "Microphone"
-#~ msgstr "Mikrofoni"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -465,21 +497,9 @@ msgstr "Ei voitu toimia ilman kelloa"
 #~ msgid "Telephone"
 #~ msgstr "Puhelin"
 
-#~ msgid "Line In"
-#~ msgstr "Linjatulo"
-
-#~ msgid "Internal CD"
-#~ msgstr "Sisäinen CD"
-
 #~ msgid "Video In"
 #~ msgstr "Videotulo"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "AUX 1 sisään"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "AUX 2 sisään"
-
 #~ msgid "AUX In"
 #~ msgstr "AUX sisään"
 
@@ -492,9 +512,6 @@ msgstr "Ei voitu toimia ilman kelloa"
 #~ msgid "Microphone Boost"
 #~ msgstr "Mikrofonitehostin"
 
-#~ msgid "Loopback"
-#~ msgstr "Takaisinkytkentä"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Diagnosointi"
 
@@ -507,9 +524,6 @@ msgstr "Ei voitu toimia ilman kelloa"
 #~ msgid "Input"
 #~ msgstr "Sisään"
 
-#~ msgid "Record Source"
-#~ msgstr "Nauhoituslähde"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Tarkkailulähde"
 
@@ -549,9 +563,6 @@ msgstr "Ei voitu toimia ilman kelloa"
 #~ msgid "Input Mix"
 #~ msgstr "Sisään Mix"
 
-#~ msgid "SPDIF In"
-#~ msgstr "SPDIF sisään"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Mikrofoni 1"
 
diff --git a/po/fr.gmo b/po/fr.gmo
index 0b80dd7b6934541bbd255df06db638164aec1f73..2c7cadfc9c74c9e049acb7bebe7beea0794f67d3 100644
GIT binary patch
delta 1872
zcmYk+Piz!r7{~Fa%hJVSDQsDwMd|=b5el|TTcLooY)iMKgkmjLv>4nS*Nt@w>$Vqz
zYl6W)!Gmo46E7S*)!2iq7n72h7!EB56Qh!70-B)FgCQZPi7{Efzu8&io4osZ-<h3x
zpLyPA=E}hNWZ_0M{I1as)9<5ChRj@?5A#DCsWrP7kD>l^5|`mD-h-Ee`Ft?HiZPCV
zg)8xA)P4WN7Ho`|bz&UXn-wg>;2{p2!&aQbE%<G4{2x5dd<(0d!L#@T-o|Y>NEG9k
z!(Dg{wNM!!z?M3*&6vPbn8B^MfSXv~?l6dRAhz6($dWk7JdH{G1iSGM?7%kCu@g_C
zu6rA`@E52B?_w`D)mP>xPyrP1LHr22Z~?=tZ)FAqYvC1UtYIs#37e4=Stmwu1WAUa
zkcYPykk~CB950}*e;pNY5#Pf_%;Bj9vxo5;WJwFNKZSM%Q3kqU0u{(G-jB!8!5P$^
zzK`uVhpl)6d$4v@Wh?q{2lL5b{vql?t|HrSH*vbg?3dv9(~ac+F;2`hRw7zJvS-(W
z`K@4n2iI}DjH_`SKT6>aRIQ{?HS!iJ#Xn&uMu@r(_u-@X3hu)zID>!3$p1wKXVy@F
z7+!035Z}Nz@fr@{7^`o?OL!O;F@Z52?>s(<z4#;Q`i;$IM=*`r`^)IzcYy=!>j~zc
z6&O6upn-Q}0Mj^(AES!!FWid<Hc)W*GVa0eQ30%`)HNT+V|Wqu=H5cp#&3alQGt{L
zH?zOQVue8lDu!oKsXvWN@hqw)&Y_C$0v^Ci_$l5*W#}EJlH&Cn%}AC_;31qw-FF^!
z-$mSw*HM{Vxyfw1-v7M}6nO@B;^(L*`xRAeZG_!}6R0Qs0Ne0uR8f_&2CGfys4st?
zwRP;2Q8s?-;8zdB!hS*5vA$pNI;)CSQ<REW>DLqUw)h_u6`C3k;5XLw15lyyBKUQo
z6A`*Hp>5km*Ec~AqNa?hsYw0C`u^8QDW?W4M5lQDFCrQKuc<ba1<J**WWDD~a~J&}
zU5!%lKS&xsLQm2idbKHgYO0TF8`B^`UqbJuQ&-kcS8Jl{gQ0EV8)Ch5HSJ%YKhh_(
z()8Z%r)$rfi?d6giw$|!H#Y8cI7g@R{wVGYd8KIWXe5;AFFsX&bPfL)&U&u@ha=fk
zZtC>&Q=VIztG`eaaYm=6b1AnNZ`d8;vQ$G;Xjw;BPgnQ$_IT;FRTDK^2fTdl%URd)
z7qQW)Ts~W!{Qp$E^m}y4^14L7llAg$&U1^mH>92FKPIyo&#hiunfQ^Eo@x1^W^E+~
kC*A6LIX9DiDW7v+biI6WkCUvg-eGj4f9O!@RcC+bU;b;{k^lez

delta 1563
zcmZA1TS$~a6u|Mbu6ao_Z>46gtCpr+TwOEsmS*M!MZA?p7sX5j+e*|xqU|Dr5KFn}
zOAkF2J%p)?LQoM=2}KX}(2E&G^cq=U7oqx}Z&!#0W`8rY-|ozuIo}LdJ}7s-i}W88
zN*Q${HOEh+6>I$YpiHh33B@U_#)lY;!2w>Qa2@>w3`aZa|Lj8xwqp)nz<8X&bbN(r
zB2HPRk;*_yp!bVvJV3t>&)^F@h($pn890V5_z3M7$7*z<THJ&^n1a`^9cOS0#;g`e
z#uCiN4vc4h8K+Ufz%*9kFU-ZV5Roh##2t7C^@sDQ6NeENop3LfV3)6d8+8FMaWgLB
zPK;S2qCu@i)+7xW$NX}bhK6PUBXJbjoZLh<FB8a|GK;#f$2g8Zu@|p~iDaUAt%wcn
zs1qE=M0B7PU8qNO7xlTP=uD%rL?a(99AE~v;&vSJ^`|k8{sMAZ@*Vq4BENm(eXP2H
zaTl^#`QY<2#?oKLXpD~XMj{>c$d5%4e?9AA1~gO)sL5jH=~B$YVjRRmyoUq0grj(p
z?OaA#&oRIdj^G?tVSS8uL)WpI{xj4>k6=~9*c?mzOK7}hK>r|tZPsEN>KRU;17G_r
z-5_#^{v<YG2<KLgZCHc1P;==U7GMFd!cjbnyYUU`0>Tr#{U#@kdInsm$?+b^Kly~Z
zfG<9yNpa?sJk$_3qUJ~&5?$%WJ$MeM@IGoJ93+57@(1q6e5?2O7cq~%(?vtid=9tb
zSJVYrlDt`e8g<1t(1sr|AET4KJE+5L^hYoNXVHZEEI~60!7%bbe^*4+obwf@F**Nf
zBwPvVs{Spy+m&Lc!A69H*CQA1BJrb=4npb(!7>)Bkyt5K8l}FDZjcl(?gNdU-ap2<
z8*M&zQO(qJs=g}ve*a(eShSG*#(ki#XfQREs`rJSJ8!0O3u;94?$9IE1lCAtq7x+H
zrIXAYKJ;>kpz1qbOx2Q0)$`WxH81pxwP+Gq+*JW5%ys>Jo+kl~f$o&Ba-(xT?25@9
z8=mE92#@p&%C_a(>|1SFo}S1frqISyy?x!C*3#w{YnEp*${gbUW9e8K?dk4vbb2l&
Q&YRr*Nfn;wNrirY0jS5EVE_OC

diff --git a/po/fr.po b/po/fr.po
index 2e40e637e..5e8de8411 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2011-04-28 09:22+0200\n"
 "Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -18,17 +18,23 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Échec de décodage de l'image JPEG"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "« %s » par « %s »"
 
-msgid "Failed to decode JPEG image"
-msgstr "Échec de décodage de l'image JPEG"
-
 msgid "Could not connect to server"
 msgstr "Impossible de se connecter au serveur"
 
+msgid "No URL set."
+msgstr "Aucun URL défini."
+
 msgid "Server does not support seeking."
 msgstr "Le serveur ne gère pas le positionnement."
 
@@ -50,9 +56,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr "Le serveur a envoyé de mauvaises données."
 
-msgid "No URL set."
-msgstr "Aucun URL défini."
-
 msgid "Internal data stream error."
 msgstr "Erreur interne de flux de données."
 
@@ -65,6 +68,9 @@ msgstr "Ce fichier ne contient aucun flux exploitable."
 msgid "This file is invalid and cannot be played."
 msgstr "Ce fichier n'est pas valide et ne peut donc pas être lu."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Ce fichier est corrompu et ne peut pas être lu."
 
@@ -119,16 +125,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Impossible d'ouvrir le périphérique audio pour la lecture."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Impossible d'ouvrir le périphérique audio pour l'enregistrement. Vous n'avez "
-"pas les droits nécessaires pour ouvrir le périphérique."
-
-msgid "Could not open audio device for recording."
-msgstr "Impossible d'ouvrir le périphérique audio pour l'enregistrement."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -148,6 +144,45 @@ msgstr "L'enregistrement n'est pas pris en charge par ce périphérique audio."
 msgid "Error recording from audio device."
 msgstr "Erreur lors de l'enregistrement à partir du périphérique audio."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Impossible d'ouvrir le périphérique audio pour l'enregistrement. Vous n'avez "
+"pas les droits nécessaires pour ouvrir le périphérique."
+
+msgid "Could not open audio device for recording."
+msgstr "Impossible d'ouvrir le périphérique audio pour l'enregistrement."
+
+msgid "Record Source"
+msgstr "Source d'enregistrement"
+
+msgid "Microphone"
+msgstr "Micro"
+
+msgid "Line In"
+msgstr "Entrée ligne"
+
+msgid "Internal CD"
+msgstr "CD interne"
+
+msgid "SPDIF In"
+msgstr "Entrée SPDIF"
+
+msgid "AUX 1 In"
+msgstr "Entrée AUX 1"
+
+msgid "AUX 2 In"
+msgstr "Entrée AUX 2"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Boucle interne"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Boucle interne"
+
 msgid "Volume"
 msgstr "Volume"
 
@@ -253,6 +288,10 @@ msgstr "Impossible de définir l'entrée %d du périphérique %s."
 msgid "Failed to change mute state for device '%s'."
 msgstr "Impossible d'obtenir la force du signal du périphérique « %s »."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Impossible d'identifier le périphérique « %s »."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -278,10 +317,6 @@ msgstr "Impossible d'obtenir la norme du périphérique « %s »."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Impossible d'obtenir les attributs de contrôle du périphérique « %s »."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Impossible d'identifier le périphérique « %s »."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Ceci n'est pas un périphérique « %s »."
@@ -379,9 +414,6 @@ msgstr "Impossible de fonctionner sans horloge"
 #~ msgid "Line-in"
 #~ msgstr "Entrée ligne"
 
-#~ msgid "Microphone"
-#~ msgstr "Micro"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -482,21 +514,9 @@ msgstr "Impossible de fonctionner sans horloge"
 #~ msgid "Telephone"
 #~ msgstr "Téléphone"
 
-#~ msgid "Line In"
-#~ msgstr "Entrée ligne"
-
-#~ msgid "Internal CD"
-#~ msgstr "CD interne"
-
 #~ msgid "Video In"
 #~ msgstr "Entrée vidéo"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "Entrée AUX 1"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "Entrée AUX 2"
-
 #~ msgid "AUX In"
 #~ msgstr "Entrée AUX"
 
@@ -509,9 +529,6 @@ msgstr "Impossible de fonctionner sans horloge"
 #~ msgid "Microphone Boost"
 #~ msgstr "Amplification micro"
 
-#~ msgid "Loopback"
-#~ msgstr "Boucle interne"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Diagnostic"
 
@@ -524,9 +541,6 @@ msgstr "Impossible de fonctionner sans horloge"
 #~ msgid "Input"
 #~ msgstr "Entrée"
 
-#~ msgid "Record Source"
-#~ msgstr "Source d'enregistrement"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Source de moniteur"
 
@@ -566,9 +580,6 @@ msgstr "Impossible de fonctionner sans horloge"
 #~ msgid "Input Mix"
 #~ msgstr "Mélangeur d'entrée"
 
-#~ msgid "SPDIF In"
-#~ msgstr "Entrée SPDIF"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Microphone 1"
 
diff --git a/po/gl.gmo b/po/gl.gmo
index 12b6c992b96ab859250eef933eb432297d9d71f4..535d774836518f6eaad204c69b22e0ce7e5f7266 100644
GIT binary patch
delta 2031
zcmYk+U2GIp6u|Mb?UqWvT>G&?DRf$D3$$Hkw;$4Cp<mDzYr5Kq#VBTNr)3d$=~D0`
zAuAzbu+W&?ltxVqi4O*2W6DM!3{hgm1k~t*Xp9lVgFdK<ksvQ(>i^7ci8np{-8=2f
zz4zQRb7lB+U-DY9cUEY-hzjCBmWYEFy!@htSBMng!>IqW7w^JzxDwB2#uqZ<OIXJB
zuhECUpg#8&uEUaCk!B3x8j++-(Amg^<5-9DSc_LP*Kgx)#<k2kiAV7<{1Z1}AFCL_
z1UBIps1q$=4X(=*S&uy!!3o@em$91p<p!M)7s~S86-ht#F&@Kyd=FdkZwz7s=?LIn
z)ca1OPJ9t{!kgHMs|(ZP$59uM#QX4VY{ARuWqw(r!(zo-B*Gk0gsZU}Ns%;TF@}+3
z$SAUTc?Ma#Ol7VoQSW~Rb-@PD;1x_@<ZhA8_$@M}csZY>O{bWSKClOMA%j?nyV1fU
zsAoEdHqK)mUc+`=aZmavy0DS)fz0>~)Qwz1j$eMpcRV7$B0n-yLjJ>a&X%NC^cRvn
zS;~wHO4H+V)FP@w{v^GqsUN{AoW@?9M_t$r)D)Mq>g^cDHhc{`@e00(`F`?$lFkXg
z$W!RMS7aL=#7TS~cVN}3^v)(wQ#+gSOFYInn{DcSFQcCEXSfT0Lrr;0xyXKWFpA&c
z6WE^QfCuQzq26#E2eE<esxP2E_;b`7bJmJ<V;sBie8!uoZ$&GmuSYq9n({f+8hH!#
zXwGH)9$A|tb2w;@Q7VzT5F7P|PSj$15cyvj#vV-I0)B|cai5hwia$_~rjqlpu?e-v
z#!!zmf$f+?ecne{%}{=zqYu7~n%YjTY9^k;Cj1od$6MHp0p2CLGK#vx6X?O^)<8##
z>j6SD%L%y)1NZgSH>sYW1lVXYUGenY!cn&ny5c@!JE2+873)Vy8|!o%^STSrMQH|g
z(b_a?l#Og9bOZWL(2Qu)qtT`{;x^`YzeYJo4N4Y4@w#6`GJL0L5o-D<54RrlJ>N;R
z5Z#0}O2mCDw67WKCoE#QwPiZq<qNn+`#nT9q3NfN+*b+Q0@3OX5PU<VlhC$_=yH4M
zqtLDvR|lbIPI2?~`Dw+|WdkwkdUV7JT0@7Y++N5Uh^4x7$Ft40{0_62|GW9Ipu&7r
zSYY}KFPf&Jrqt_2?|QO&dQF>e$j|MA(U{}j{ZMo?5kI&u9&=LDzEhrDYdC&5G3pp!
z@s_NCnCU7WPpvQ6>@f?a^(*Z_&<=!J10i$0G;9Z3+FM%d?T~Hfg@+m+agIa}MdPu?
z-pG{GZiVb%u+iqH%?btELw3C#G?B73S&Qe)(X#Jysyc!jx0+LaXTy%zR3b7KvE2R0
zaAa}*&fx!l3Z?$_&w9;FMTdE^VwG92{Hdn3A&>cBUC?}788F8x|1qCfds35CXS4Ep
zdaY<|%1OlH##i%FwUeHLJufaqtTD$r<jx|x^~Kb9JQh!#sk!PY8A?Q-cPyr#NJNfA
mMx%?VnAu+&DqLR2aJYA1r+Kq>I+dz>)swqBe&F!4j{FD6nhX#C

delta 3130
zcma*nTWlOx8Nl(giS0O!llYR0<4b(p;--o1W!Fw~aqdmhG`Bi#Ok$);)p+LEnPhin
zGc#+)A+VrIAWDi94W%y?DIyXC2&%P}xCo(2h8KiX@jxmbh#H`MN+}2s5|JwY-|RZr
z0wj)n{F|AbbNkMB=9Oc=JX^ZgQuC^!j8Z$Px0WfD$NpOWQQoUlsuAzw3H%eT#N8_@
z9>(?DpT;J%QTmB+Gv2`M_$GGX`?wWT^-66~s-*h3c!CFKQGU3J=kOL@#)o(w^NhL;
ze}UupXB@)g4V8gDi;r{vIu7F7xDEe`t+;uWQlG#<l=seK2ji>HaM8zu*U-Xwd=h(E
z_G9=QN{5%RA8(<o<kxrvKg44=xLT=a@ha}Xd6WtK6SLU6rqa)OOmqLT+%vxVF&DCu
z2PiYtYn3{PM^Wy-h%)2vVK2UePvPIO2K$IR!B838gu^Hk9K#kYAVE|wA<<XYku|EX
zVM%8C1{Yt)cQHV(S*cIreav7py~qGhV>g~cjX9LPe+3WVw{Q>s0i|6xac7U!863td
zC=n^+0N!gQ{_>!4U1jDwQSL`^2(KaerryN6DW!gh%t?K91D)a<Nc7cTs(y@;e5*EA
z_WVg4<bE&qppUX;H&7;acO&taP=3q<S;6);G8-d2h(Exq_z`{?FB0Du@o%^v$J#4N
z8sky!Yl*w8>?Fz_&*DD(4sOQ}P;#n+S?<97rRqfy`+4wvJdD4^FJM<!WuTiVdw&m4
zU=3$$1V>P|>L%v!9lVHpyOnbB+xP-DYqk$PJdSfXj-`iONQYy@=M>(o`T+NHznkew
zM^{if_&pxNUNTag!t;0=CCO4`tZZ2WN+g=A9zaRXJg&trA<0-$uW`Yo)lHO@{|x7F
z8OwbM-$L2LU3?@YsV<@H`Rh20w^7>v5t*A>&c>d`Cr}m;q4Zlu3Hd)z7M$jc56StT
z<zgof?x5_^`zRf?Z>{9QK0L|&4A$X1rjXZ?57#J4k+u?{U2;Q_1eLOaD#vXZbsP0L
z>Po6iTE<V#_-d4lKSGs4qAQX)Ng_F7HB>2#og^C3PQqW0vTc%N3q@8(o+YJ;|HrAM
zlUh#gr%Jxa0;QBBq!P|ORB|f`X)R`{9EwMU1b<ZcPAN^5Xh^7~G*FLGCFGK*3q`h0
zPMDmkh0?QdA-T%8KykW~GQ$67sccd5NtQ&BJzHEPsbsrkOZHL^P$jXRp-PeO!$G;A
z@EuADhd>>UPuEQ>A1OxVpVv(;FWHvo`H{A*LR1Wlwj$l@T<LYx5i{-DMsMj2xA5bV
zcU(_L7mN-I#&#!N<LF60$Xn5pCXR1HEggr&LctFrJ?%QiUl``!uQt%V8|sN-I2(60
zoQMxMtgnrVo(W>p&`<ra*}h<TQ%2{D5kp2+Wa1mEJLBh9bq*V^m^T4WbiofpcOqx1
zqg3V-YG>&h^o$=|(lc&!A+}e&+ZkAn>uc956eI0>i(gLbxUcc)6()*YZz?PwYP_3@
zA767c3EJn@Tu;SqP1*SQrWZ?2;7*%B`;&`X>;G80<<06#o<HO1<0Cq6q6@y0R%3+l
z|7<VOe$<lvN!k+7@>@;)sTY#KR+nn~#hjDG-42XIW}-Mb$qWm=pG&KAi(hrz%8Qn5
zn?j^LGovR1D{piX(Xg`k_;=0e+H5+L9*WnsoT(qo3}=S=GTAuS($+sXkmc_wof#V5
zzN0TQn8`GpvchO!EU>&VXGMN6te@dpA8}1Q*K&8a?%AiaTlX}K4;(Y>aOI72ZV*{k
zPG{0P(^-Bx6ZjX69Sxj~W^-m(PkDac#MfI*<5_F|j$`RVpBmTM@}_mK)@&^Jj;Usp
z6=<uPxFhjs*Sc*UJG%6DznZ4LHr33vEyq{M>pk+i<>Xx=W-WBdp6Y4FG=94B)>;!r
z^WW6IT`W9m8GpC!)A6s`x*J2+i+s<$$}d5j+SJyPBkWcvomsZ)SdIzfrp{gE?oIuv
z&9;@FaGA5rC8C84WxRaR;Y2w;?+wN$+q0Q!g7aRuFnLMp>Z~N|=kH7yj*ra?my0I;
ze8>8x%CZAf2z;k#yFonH)mFaNzBLuU-L*2l*4|XlcuDTZ-{^WQ{-~oqzSA+<DxG+f
z?o=^gy7Og^fyzJX_+VLlzoRw&>E>Krn8d$)qWd?g_<`<?$9o#%py%b)BhoMm{9Lkf
zt8+vAUR&)@HJG-QV_t!!^YgbOpMgnZ+n=9H)=60ZTiXrQw*KNqy-xXI&sS2V5$(7k
z3wI-TItg24he-K_{U+}NU6eaNC&8MS{|P5R#`@naEja=fTkrYP?EjKLNFR}P#S-&t
OtbkZ^lKdRs9`!HD7<KIc

diff --git a/po/gl.po b/po/gl.po
index 62c1313a6..c555201d9 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -2,34 +2,38 @@
 # Copyright (C) 2009 gst-plugins-good's COPYRIGHT HOLDER
 # This file is distributed under the same license as the gst-plugins-good package.
 # Fran Diéguez <frandieguez@ubuntu.com>, 2009, 2010, 2011.
-# Fran Dieguez <frandieguez@gnome.org>, 2012.
+#
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good 1.0.3\n"
+"Project-Id-Version: gst-plugins-good 0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
-"PO-Revision-Date: 2012-12-15 03:46+0200\n"
-"Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
+"PO-Revision-Date: 2011-01-09 21:20+0100\n"
+"Last-Translator: Fran Diéguez <frandieguez@ubuntu.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
 "Language: gl\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"
-"X-Generator: Virtaal 0.7.1\n"
-"X-Project-Style: gnome\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Produciuse un erro ao descodificar a imaxe JPEG"
 
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "«%s» por «%s»"
 
-msgid "Failed to decode JPEG image"
-msgstr "Produciuse un erro ao descodificar a imaxe JPEG"
-
 msgid "Could not connect to server"
 msgstr "Non foi posíbel conectarse ao servidor"
 
+msgid "No URL set."
+msgstr "No existe un URL estabelecido."
+
 msgid "Server does not support seeking."
 msgstr "O servidor non admite a busca."
 
@@ -51,9 +55,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr "O servidor enviou datos erróneos."
 
-msgid "No URL set."
-msgstr "No existe un URL estabelecido."
-
 msgid "Internal data stream error."
 msgstr "Produciuse un erro no fluxo de datos interno."
 
@@ -66,6 +67,9 @@ msgstr "Este ficheiro non contén ningún fluxo reproducíbel."
 msgid "This file is invalid and cannot be played."
 msgstr "Este ficheiro é incorrecto e non pode reproducirse."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Este ficheiro está danado e non pode reproducirse."
 
@@ -119,16 +123,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Non foi posíbel abrir o dispositivo de son para a reprodución."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Non foi posíbel abrir o dispositivo de son para a gravación. Vostede non ten "
-"permisos para abrir o dispositivo."
-
-msgid "Could not open audio device for recording."
-msgstr "Non foi posíbel abrir o dispositivo de son para a gravación."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -148,6 +142,45 @@ msgstr "Este dispositivo de son non admite a gravación."
 msgid "Error recording from audio device."
 msgstr "Erro ao gravar do dispositivo de son."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Non foi posíbel abrir o dispositivo de son para a gravación. Vostede non ten "
+"permisos para abrir o dispositivo."
+
+msgid "Could not open audio device for recording."
+msgstr "Non foi posíbel abrir o dispositivo de son para a gravación."
+
+msgid "Record Source"
+msgstr "Orixe da gravación"
+
+msgid "Microphone"
+msgstr "Micrófono"
+
+msgid "Line In"
+msgstr "Liña de entrada"
+
+msgid "Internal CD"
+msgstr "CD interno"
+
+msgid "SPDIF In"
+msgstr "Entrada SPDIF"
+
+msgid "AUX 1 In"
+msgstr "Entrada AUX 1"
+
+msgid "AUX 2 In"
+msgstr "Entrada AUX 2"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Bucle local"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Bucle local"
+
 msgid "Volume"
 msgstr "Volume"
 
@@ -182,75 +215,81 @@ msgstr "Produciuse un erro ao ler %d bytes desde o dispositivo «%s»."
 #, c-format
 msgid "Failed to enumerate possible video formats device '%s' can work with"
 msgstr ""
-"Produciuse un fallo ao enumerar os formatos de vídeo posíbeis cos que o "
-"dispositivo «%s» pode reproducir"
 
 #, c-format
 msgid "Could not map buffers from device '%s'"
 msgstr "Non foi posíbel mapear os búferes do dispositivo «%s»"
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
-msgstr "O controlador do dispositivo «%s» non admite o método IO %d"
+msgstr ""
+"O controlador do dispositivo «%s» non admite ningún método de captura "
+"coñecido."
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
-"O controlador do dispositivo «%s» non admite calquera método IO coñecido."
+"O controlador do dispositivo «%s» non admite ningún método de captura "
+"coñecido."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' does not support video capture"
-msgstr "O dispositivo «%s» non admite a captura de vídeo."
+msgstr "O dispositivo «%s» non é un dispositivo de captura."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is busy"
-msgstr "O dispositivo «%s» está ocupado"
+msgstr "O dispositivo «%s» non é un dispositivo de captura."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' cannot capture at %dx%d"
-msgstr "O dispositivo «%s» non pode capturar a %dx%d"
+msgstr "O dispositivo «%s» non é un dispositivo de captura."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' cannot capture in the specified format"
-msgstr "O dispositivo «%s» non pode capturar o formato especificado"
+msgstr "O dispositivo «%s» non é un dispositivo de captura."
 
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Non foi posíbel obter os parámetros para o dispositivo «%s»"
 
+#, fuzzy
 msgid "Video device did not accept new frame rate setting."
 msgstr ""
-"O dispositivo de vídeo non acepta a nova configuración de taxa de marcos."
+"O dispositivo de entrada de vídeo non aceptou o axuste da nova taxa de "
+"fotogramas."
 
 msgid "Video device could not create buffer pool."
-msgstr "O dispositivo de vídeo non pode crear un pool de búfer."
+msgstr ""
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get settings of tuner %d on device '%s'."
 msgstr ""
-"Produciuse un erro ao obter as configuracións do sintonizador %d no "
-"dispositivo «%s»."
+"Produciuse un erro ao configurar o sintonizador %d no dispositivo «%s»."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Error getting capabilities for device '%s'."
-msgstr "Produciuse un erro ao ler as capacidades para o dispositivo «%s»."
+msgstr "Produciuse un erro ao ler %d bytes desde o dispositivo «%s»."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is not a tuner."
-msgstr "O dispositivo «%s» non é un sintonizador."
+msgstr "O dispositivo «%s» non é un dispositivo de captura."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get radio input on device '%s'. "
-msgstr "Produciuse un fallo ao obter a entrada do radio no dispositivo %s."
+msgstr "Produciuse un fallo ao estabelecer a entrada %d no dispositivo %s."
 
 #, c-format
 msgid "Failed to set input %d on device %s."
 msgstr "Produciuse un fallo ao estabelecer a entrada %d no dispositivo %s."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to change mute state for device '%s'."
 msgstr ""
-"Produciuse un erro ao cambiar o estado de enmudecido para o dispositivo «%s»."
+"Produciuse un erro ao obter a potencia do sinal para o dispositivo «%s»."
+
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Non foi posíbel identificar o dispositivo «%s»."
 
 #, c-format
 msgid ""
@@ -279,10 +318,6 @@ msgid "Failed getting controls attributes on device '%s'."
 msgstr ""
 "Produciuse un erro ao obter os atributos de control do dispositivo «%s»."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Non foi posíbel identificar o dispositivo «%s»."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Este non é un dispositivo «%s»."
@@ -354,11 +389,17 @@ msgstr "Aínda non se admite o cambio de resolución durante a reprodución."
 msgid "Cannot operate without a clock"
 msgstr "Non é posíbel operar sen reloxo"
 
-#~ msgid "Could not establish connection to sound server"
-#~ msgstr "Non foi posíbel estabelecer a conexión co servidor de son"
+#~ msgid "Got unexpected frame size of %u instead of %u."
+#~ msgstr "Obtívose un tamaño de marco de %u non esperado no lugar de %u."
 
-#~ msgid "Failed to query sound server capabilities"
-#~ msgstr "Produciuse un erro ao consultar as capacidades do servidor de son"
+#~ msgid "Failed trying to get video frames from device '%s'."
+#~ msgstr ""
+#~ "Produciuse un fallo ao tentar obter cadros de vídeo do dispositivo «%s»."
+
+#~ msgid "Failed after %d tries. device %s. system error: %s"
+#~ msgstr ""
+#~ "Prouciuse un fallo despois de %d intentos. Dispositivo %s. Error do "
+#~ "sistema: %s"
 
 #~ msgid "Bass"
 #~ msgstr "Baixos"
@@ -378,9 +419,6 @@ msgstr "Non é posíbel operar sen reloxo"
 #~ msgid "Line-in"
 #~ msgstr "Liña de entrada"
 
-#~ msgid "Microphone"
-#~ msgstr "Micrófono"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -481,21 +519,9 @@ msgstr "Non é posíbel operar sen reloxo"
 #~ msgid "Telephone"
 #~ msgstr "Teléfono"
 
-#~ msgid "Line In"
-#~ msgstr "Liña de entrada"
-
-#~ msgid "Internal CD"
-#~ msgstr "CD interno"
-
 #~ msgid "Video In"
 #~ msgstr "Entrada de vídeo"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "Entrada AUX 1"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "Entrada AUX 2"
-
 #~ msgid "AUX In"
 #~ msgstr "Entrada AUX"
 
@@ -508,9 +534,6 @@ msgstr "Non é posíbel operar sen reloxo"
 #~ msgid "Microphone Boost"
 #~ msgstr "Aumento do micrófono"
 
-#~ msgid "Loopback"
-#~ msgstr "Bucle local"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Diagnóstico"
 
@@ -523,9 +546,6 @@ msgstr "Non é posíbel operar sen reloxo"
 #~ msgid "Input"
 #~ msgstr "Entrada"
 
-#~ msgid "Record Source"
-#~ msgstr "Orixe da gravación"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Monitor de orixe"
 
@@ -565,9 +585,6 @@ msgstr "Non é posíbel operar sen reloxo"
 #~ msgid "Input Mix"
 #~ msgstr "Misturador de entrada"
 
-#~ msgid "SPDIF In"
-#~ msgstr "Entrada SPDIF"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Micrófono 1"
 
@@ -712,23 +729,17 @@ msgstr "Non é posíbel operar sen reloxo"
 #~ msgid "%s Function"
 #~ msgstr "Función %s"
 
-#~ msgid "Got unexpected frame size of %u instead of %u."
-#~ msgstr "Obtívose un tamaño de marco de %u non esperado no lugar de %u."
-
 #~ msgid "Error reading %d bytes on device '%s'."
 #~ msgstr "Produciuse un erro ao ler %d bytes do dispositivo «%s»."
 
 #~ msgid "Could not enqueue buffers in device '%s'."
 #~ msgstr "Non é posíbel meter na cola os búferes no dispositivo «%s»."
 
-#~ msgid "Failed trying to get video frames from device '%s'."
-#~ msgstr ""
-#~ "Produciuse un fallo ao tentar obter cadros de vídeo do dispositivo «%s»."
+#~ msgid "Could not establish connection to sound server"
+#~ msgstr "Non foi posíbel estabelecer a conexión co servidor de son"
 
-#~ msgid "Failed after %d tries. device %s. system error: %s"
-#~ msgstr ""
-#~ "Prouciuse un fallo despois de %d intentos. Dispositivo %s. Error do "
-#~ "sistema: %s"
+#~ msgid "Failed to query sound server capabilities"
+#~ msgstr "Produciuse un erro ao consultar as capacidades do servidor de son"
 
 #~ msgid "Describes the selected input element."
 #~ msgstr "Describe o elemento de entrada seleccionado."
diff --git a/po/gst-plugins-good-1.0.pot b/po/gst-plugins-good-1.0.pot
index 1fe83b9a4..baa67e4b2 100644
--- a/po/gst-plugins-good-1.0.pot
+++ b/po/gst-plugins-good-1.0.pot
@@ -5,9 +5,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good 1.0.8\n"
+"Project-Id-Version: gst-plugins-good 1.1.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\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"
@@ -16,148 +16,146 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#. TRANSLATORS: 'song title' by 'artist name'
-#: ext/pulse/pulsesink.c:2787
-#, c-format
-msgid "'%s' by '%s'"
+#: ext/jack/gstjackaudiosink.c:358 ext/jack/gstjackaudiosrc.c:366
+msgid "Jack server not found"
 msgstr ""
 
 #: ext/jpeg/gstjpegdec.c:251
 msgid "Failed to decode JPEG image"
 msgstr ""
 
+#. TRANSLATORS: 'song title' by 'artist name'
+#: ext/pulse/pulsesink.c:3081
+#, c-format
+msgid "'%s' by '%s'"
+msgstr ""
+
 #: ext/shout2/gstshout2.c:549
 msgid "Could not connect to server"
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:817
+#: ext/soup/gstsouphttpsrc.c:654
+msgid "No URL set."
+msgstr ""
+
+#: ext/soup/gstsouphttpsrc.c:880
 msgid "Server does not support seeking."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1044
+#: ext/soup/gstsouphttpsrc.c:1119
 msgid "Could not resolve server name."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1050
+#: ext/soup/gstsouphttpsrc.c:1125
 msgid "Could not establish connection to server."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1055
+#: ext/soup/gstsouphttpsrc.c:1130
 msgid "Secure connection setup failed."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1060
+#: ext/soup/gstsouphttpsrc.c:1135
 msgid ""
 "A network error occured, or the server closed the connection unexpectedly."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1066
+#: ext/soup/gstsouphttpsrc.c:1141
 msgid "Server sent bad data."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1213
-msgid "No URL set."
-msgstr ""
-
-#: gst/avi/gstavidemux.c:5289
+#: gst/avi/gstavidemux.c:5311
 msgid "Internal data stream error."
 msgstr ""
 
-#: gst/avi/gstavimux.c:1788
+#: gst/avi/gstavimux.c:1808
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:526 gst/isomp4/qtdemux.c:530
+#: gst/isomp4/qtdemux.c:549 gst/isomp4/qtdemux.c:553
 msgid "This file contains no playable streams."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:596 gst/isomp4/qtdemux.c:4142
-#: gst/isomp4/qtdemux.c:4208 gst/isomp4/qtdemux.c:4363
+#: gst/isomp4/qtdemux.c:619 gst/isomp4/qtdemux.c:4519
+#: gst/isomp4/qtdemux.c:4585 gst/isomp4/qtdemux.c:4770
 msgid "This file is invalid and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:2504 gst/isomp4/qtdemux.c:2580
-#: gst/isomp4/qtdemux.c:2623 gst/isomp4/qtdemux.c:4972
-#: gst/isomp4/qtdemux.c:4979 gst/isomp4/qtdemux.c:5617
-#: gst/isomp4/qtdemux.c:6045 gst/isomp4/qtdemux.c:6052
-#: gst/isomp4/qtdemux.c:7654
+#: gst/isomp4/qtdemux.c:2218
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
+#: gst/isomp4/qtdemux.c:2781 gst/isomp4/qtdemux.c:2857
+#: gst/isomp4/qtdemux.c:2900 gst/isomp4/qtdemux.c:5391
+#: gst/isomp4/qtdemux.c:5398 gst/isomp4/qtdemux.c:6077
+#: gst/isomp4/qtdemux.c:6506 gst/isomp4/qtdemux.c:6513
+#: gst/isomp4/qtdemux.c:8138
 msgid "This file is corrupt and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:2714
+#: gst/isomp4/qtdemux.c:2991
 msgid "Invalid atom size."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:2782
+#: gst/isomp4/qtdemux.c:3059
 msgid "This file is incomplete and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:5194
+#: gst/isomp4/qtdemux.c:5622
 msgid "The video in this file might not play correctly."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:7683
+#: gst/isomp4/qtdemux.c:8175
 #, c-format
 msgid "This file contains too many streams. Only playing first %d"
 msgstr ""
 
-#: gst/rtsp/gstrtspsrc.c:5440
+#: gst/rtsp/gstrtspsrc.c:5721
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
 msgstr ""
 
-#: gst/rtsp/gstrtspsrc.c:5445
+#: gst/rtsp/gstrtspsrc.c:5726
 msgid ""
 "No supported stream was found. You might need to allow more transport "
 "protocols or may otherwise be missing the right GStreamer RTSP extension "
 "plugin."
 msgstr ""
 
-#: gst/wavparse/gstwavparse.c:2387
+#: gst/wavparse/gstwavparse.c:2454
 msgid "Internal data flow error."
 msgstr ""
 
-#: sys/oss/gstosssink.c:384 sys/oss4/oss4-sink.c:495
-#: sys/oss4/oss4-source.c:360
+#: sys/oss4/oss4-sink.c:495 sys/oss4/oss4-source.c:360
+#: sys/oss/gstosssink.c:384
 msgid ""
 "Could not open audio device for playback. Device is being used by another "
 "application."
 msgstr ""
 
-#: sys/oss/gstosssink.c:391 sys/oss4/oss4-sink.c:505
-#: sys/oss4/oss4-source.c:370
+#: sys/oss4/oss4-sink.c:505 sys/oss4/oss4-source.c:370
+#: sys/oss/gstosssink.c:391
 msgid ""
 "Could not open audio device for playback. You don't have permission to open "
 "the device."
 msgstr ""
 
-#: sys/oss/gstosssink.c:399 sys/oss4/oss4-sink.c:516
-#: sys/oss4/oss4-source.c:381
+#: sys/oss4/oss4-sink.c:516 sys/oss4/oss4-source.c:381
+#: sys/oss/gstosssink.c:399
 msgid "Could not open audio device for playback."
 msgstr ""
 
-#: sys/oss/gstosssrc.c:377
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-
-#: sys/oss/gstosssrc.c:385
-msgid "Could not open audio device for recording."
-msgstr ""
-
 #: sys/oss4/oss4-sink.c:525 sys/oss4/oss4-source.c:391
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
 msgstr ""
 
-#: sys/oss4/oss4-sink.c:642
+#: sys/oss4/oss4-sink.c:648
 msgid "Playback is not supported by this audio device."
 msgstr ""
 
-#: sys/oss4/oss4-sink.c:649
+#: sys/oss4/oss4-sink.c:655
 msgid "Audio playback error."
 msgstr ""
 
@@ -169,6 +167,52 @@ msgstr ""
 msgid "Error recording from audio device."
 msgstr ""
 
+#: sys/oss/gstosssrc.c:377
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+
+#: sys/oss/gstosssrc.c:385
+msgid "Could not open audio device for recording."
+msgstr ""
+
+#: sys/sunaudio/gstsunaudiomixeroptions.c:109
+msgid "Record Source"
+msgstr ""
+
+#: sys/sunaudio/gstsunaudiomixeroptions.c:120
+msgid "Microphone"
+msgstr ""
+
+#: sys/sunaudio/gstsunaudiomixeroptions.c:121
+msgid "Line In"
+msgstr ""
+
+#: sys/sunaudio/gstsunaudiomixeroptions.c:122
+msgid "Internal CD"
+msgstr ""
+
+#: sys/sunaudio/gstsunaudiomixeroptions.c:123
+msgid "SPDIF In"
+msgstr ""
+
+#: sys/sunaudio/gstsunaudiomixeroptions.c:124
+msgid "AUX 1 In"
+msgstr ""
+
+#: sys/sunaudio/gstsunaudiomixeroptions.c:125
+msgid "AUX 2 In"
+msgstr ""
+
+#: sys/sunaudio/gstsunaudiomixeroptions.c:126
+msgid "Codec Loopback"
+msgstr ""
+
+#: sys/sunaudio/gstsunaudiomixeroptions.c:127
+msgid "SunVTS Loopback"
+msgstr ""
+
 #: sys/sunaudio/gstsunaudiomixertrack.c:69
 msgid "Volume"
 msgstr ""
@@ -205,61 +249,61 @@ msgstr ""
 msgid "AUX 2 Out"
 msgstr ""
 
-#: sys/v4l2/gstv4l2bufferpool.c:1010
+#: sys/v4l2/gstv4l2bufferpool.c:1136
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:1170
+#: sys/v4l2/gstv4l2object.c:1256
 #, c-format
 msgid "Failed to enumerate possible video formats device '%s' can work with"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2187
+#: sys/v4l2/gstv4l2object.c:2291
 #, c-format
 msgid "Could not map buffers from device '%s'"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2195
+#: sys/v4l2/gstv4l2object.c:2299
 #, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2202
+#: sys/v4l2/gstv4l2object.c:2306
 #, c-format
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2396
+#: sys/v4l2/gstv4l2object.c:2494
 #, c-format
 msgid "Device '%s' does not support video capture"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2405
+#: sys/v4l2/gstv4l2object.c:2503
 #, c-format
 msgid "Device '%s' is busy"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2411 sys/v4l2/gstv4l2object.c:2422
+#: sys/v4l2/gstv4l2object.c:2509 sys/v4l2/gstv4l2object.c:2520
 #, c-format
 msgid "Device '%s' cannot capture at %dx%d"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2431
+#: sys/v4l2/gstv4l2object.c:2529
 #, c-format
 msgid "Device '%s' cannot capture in the specified format"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2444
+#: sys/v4l2/gstv4l2object.c:2542
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2452
+#: sys/v4l2/gstv4l2object.c:2550
 msgid "Video device did not accept new frame rate setting."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2459
+#: sys/v4l2/gstv4l2object.c:2557
 msgid "Video device could not create buffer pool."
 msgstr ""
 
@@ -283,7 +327,7 @@ msgstr ""
 msgid "Failed to get radio input on device '%s'. "
 msgstr ""
 
-#: sys/v4l2/gstv4l2radio.c:202 sys/v4l2/v4l2_calls.c:861
+#: sys/v4l2/gstv4l2radio.c:202 sys/v4l2/v4l2_calls.c:956
 #, c-format
 msgid "Failed to set input %d on device %s."
 msgstr ""
@@ -293,6 +337,11 @@ msgstr ""
 msgid "Failed to change mute state for device '%s'."
 msgstr ""
 
+#: sys/v4l2/gstv4l2videooverlay.c:103 sys/v4l2/v4l2_calls.c:559
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr ""
+
 #: sys/v4l2/v4l2_calls.c:96
 #, c-format
 msgid ""
@@ -300,93 +349,88 @@ msgid ""
 "it is a v4l1 driver."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:136
+#: sys/v4l2/v4l2_calls.c:137
 #, c-format
 msgid "Failed to query attributes of input %d in device %s"
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:166
+#: sys/v4l2/v4l2_calls.c:168
 #, c-format
 msgid "Failed to get setting of tuner %d on device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:210
+#: sys/v4l2/v4l2_calls.c:212
 #, c-format
 msgid "Failed to query norm on device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:348
+#: sys/v4l2/v4l2_calls.c:408
 #, c-format
 msgid "Failed getting controls attributes on device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:491
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr ""
-
-#: sys/v4l2/v4l2_calls.c:498
+#: sys/v4l2/v4l2_calls.c:566
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:505
+#: sys/v4l2/v4l2_calls.c:573
 #, c-format
 msgid "Could not open device '%s' for reading and writing."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:512
+#: sys/v4l2/v4l2_calls.c:580
 #, c-format
 msgid "Device '%s' is not a capture device."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:520
+#: sys/v4l2/v4l2_calls.c:588
 #, c-format
 msgid "Device '%s' is not a output device."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:619
+#: sys/v4l2/v4l2_calls.c:687
 #, c-format
 msgid "Failed to set norm for device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:657
+#: sys/v4l2/v4l2_calls.c:725
 #, c-format
 msgid "Failed to get current tuner frequency for device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:699
+#: sys/v4l2/v4l2_calls.c:767
 #, c-format
 msgid "Failed to set current tuner frequency for device '%s' to %lu Hz."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:733
+#: sys/v4l2/v4l2_calls.c:801
 #, c-format
 msgid "Failed to get signal strength for device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:769
+#: sys/v4l2/v4l2_calls.c:837
 #, c-format
 msgid "Failed to get value for control %d on device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:804
+#: sys/v4l2/v4l2_calls.c:872
 #, c-format
 msgid "Failed to set value %d for control %d on device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:836
+#: sys/v4l2/v4l2_calls.c:931
 #, c-format
 msgid "Failed to get current input on device '%s'. May be it is a radio device"
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:893
+#: sys/v4l2/v4l2_calls.c:988
 #, c-format
 msgid ""
 "Failed to get current output on device '%s'. May be it is a radio device"
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:918
+#: sys/v4l2/v4l2_calls.c:1013
 #, c-format
 msgid "Failed to set output %d on device %s."
 msgstr ""
diff --git a/po/hr.gmo b/po/hr.gmo
deleted file mode 100644
index e519404f4f3d63e1684ebc95491f1f4fc49a24ba..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 8211
zcmb`LU2Ggz6~_n4R}C%D0;NF9Z6QrVvzxUY+SHBPBu<*9Z4zTUfl3JJdgpq5cW38r
z=VMc^5L5!G5>gOFZC_B4A{B`T#Ftcrc!&^+c_>1HCmx_6Rf0z(cmVMs#P8gh*<Ejw
z*rALx{?F{3d+zx@=lb_Iz2*6UYk~VC-22}g1W$mEzlA?s-+yZmybJsR_$YW0ydJ#%
zZ3W&8zMuEo!1sW&pzt{g-VSPTKln8GVen;e5BO_vH~25`F7RV-FMfX%Jj;6qJ_-H;
z{4_ZKjv)91_&oR-@TcG`cq_ulJ}1GCgAw>K@L5oUFN1f3w@d}Wo!}vG25f>N&kNvj
z@Q2_d;6K58!G(7Q!8AAk>)>}lS@&B|_Pr6K$bLt_Ltv|X|28Q5{}S8<{ssIbc*_kz
zASOKtB2usf-U@ye6gm3fP2kr-R13ZZqI&RMkS&8Bfg;z>z!$)OfC>1u8-rjUc-^~$
zpaIT;!aoE*3dW!UzY2<<z6T23Cb%2?8#o8vj`KbNJ^|LiFPHB>1VzqQL0lF59sK*7
zg5W>k&Ak5&p&tXMco8|zmbeOvUNI<oeFYRhya;{}{5g0Z_y<t@a?AUI;2v-e6nn3M
z5;xC-;)hp2iOYY3DR>rTBraY7Mcz9<5CqHMB6t9N3ET_53W{D+w-j;qN$`uje-><j
zzbk*g0iou3-w)maCg7*Q=fEZKPvBATevENH_yth>`eX12_-Akioc>VZj}Y|hL6PH6
z<?lCR6p?oUlz4j*B;<mhl(-4X{=X{mub{;D`$#HW9n6B_ha(`S2u^^<z|Vo-0AB(#
z@X&3A94~`n*FS>dpZCH{{C*oKae53C`&dx)cn-W5{0(>rypbT91y6(W`<Kf1pMa<o
z{27#ZyIutWVc~6xDg1@#-q&-W*jDzfF4<G`6k8nPKEOSGkv79i_GcTfKkf`DLBX53
zMgN<*QO(z{hrsGmJRB}xM1S1u<4<x+F448R?&IM)?mgU+Ba+vXm)J@!!ruE?a#Qq{
z+9mP%0QU{tnBV(HVp#lokX!sOwct)}(#_|q#Lj!U#U~GP%O&;|o9^e9S|NEO*ZthM
zqquhON_VT(4J8;HR<X&>xul~^lDI^<W;0JrxL5I<ts9k^q;C?{j9h9$|4Y-wv1w-3
z#VU`@Q$3zd7;V&p!)HFDrq$^@^G`FyQyyBUdXe5()y;B`dT=DSQC73DTJ9O$F-fqX
z<Je`&h9=JJ+J*{E-!_exuwH$1J(K9nsB<=3cX_6?2-WNa3+p;=*|?<=le#GPg6T{p
zIjp)y*;EPZ4U?%f@AX`QwD5F!6#5UPIx2Ieu4CU!n(5WZrt4}<=^^1bmlo`MI?-K|
znIu)%W=w@Kj$PeTtNGfR5UnMydj&Fdjg|JcEBUP9kIIbW8*f9Yjuw{03adtpl#3g2
zzQ!o)I9B(1k!@<R+O@D<S%)KmkxCf2H6IwKMd)Rh$Dvx@NHf!|Y(KQSY@EqT6PYfq
zzLp)IaJdRyygO6tx^EQ0(6y=G9*1}<NVpc(+MaJ>nl1@3$hDBFHzdPYKq&EMVzdZ=
zCqi{DvDt($KAKUqOu(4Xst2VveFm3-O&aK4M$Qg(zbp|M(<5mr`yBJhPSnb_!a=Xv
z2pJ4viELxC&Z!e5W-5l)s=q&)QDI{7d|fT98&cY?DJulU*XinOQ0!1Cxl4jB6Ydj1
zUmp^d4k;+cW4|6etZhWt4#jnGmbi#5vn;Wzx$xbZal<9VMu@9JqaIy6c3j!6ZkdW5
z-z06RcL}kmY%B(v;G<6J4Kin_VuH_vrIe>D@F^|*#u;Ul*93EzCvy`wHzpl3uA}IY
zmd=!H^eeIXgb))Fr?wUANTnJ2x3cx^Ht6dpH=c-UC=O6p-2tf+>dcsnh!k&QmQnl5
z7~7SONmZ<gUDCaZ=qNgL+BP<ls=h1A)gyy(YYBs)BqI~;N+*fDAQSm8NmIIeiz!~u
zsjwYH!tE;NJFaaUJVIsYt-II+Ct})(_$btwR%?+vSG4K+#20a)?vB2(oei-)4JNe%
z3diF%HohUBbg|7`5}b1C%+li$G<A7KDjOH83d{He+^Y_sJ>la6=I3k_Nh*-1N!}}#
zjVgO7!8t7jgceZu#j<N#>lqV<VRUdxN1{O2QLC~<$Eh@9)k|FFnv%`P&?Vb^Upi+~
zBb)gePlb}&o_J=*m%XlJ#?s32qB2iqCiZQh7v+orUYlzZ%f_^Mbkk}Z-rjjj26uE#
zXmx2AqGqw0Z_1iH+P`XeTkF|U)qSqqA-67AUOal@Veh|XBlFq#Jc0}Jo?7!IvK}lK
z^IGVri8A+;qTp!L@g1flNTuYh>d;44Jy^lMea0^*ndw{f8YLI=d;h^lW)JUr#yuJK
z`~cu-B$|m@+0IijG10ZWlQ7L?=rZSUbi6SnQm5l+!>^TQv}ThuqqK}I#jIu2`EJ=P
zrbWU-q>^!Nv<sv*Zn|zSViMaKb(t)*;VUq%y5Cq=tOsYAHM=HQOk5k2)J}x8v&A?x
zr&?)NE21&2wVVr8qdwiJ&m5@FOf4A+`r65~Wy9K$yp`5g+?-m^vfkXjeXDtEK$7Wt
zD|U2ym$ddxEuLPfEs)$Ypw*5t|IVqI#`J8habInEn#Z}u>^+U?Mgzjy5^YIRVMI4m
zYwWL0->Vw4bB+D?G-jZCTqE6zq+djRNaoavBgrD&SC1uwSSRWrRm1;K@Aw}MwYtPs
z9h*ML;<%O5LTf9On>n?RI0VzNIvBYQC1;?Uwyh6EHqM`_uO}n=IW=|i#K~hL6HV6}
zQwszRQCM5q=%H0cChx<aHhw@g*L6Zz&!1U&xOQMfCqgqh*N)*}8J*_TfmNGLEk=2w
zquRrCjdV`MSf1B(e)a*vLmubvj(1Hr=I5u?U3V#YY}_%A?H*DM1v&2z&d*ez4$kkF
zN57(RaJr#B|M_AGG>tv1nP$z*o~huqr@y%?eeLNN)!o(8p5Ul!Ay-6UFshZ9%?ll^
zy5L2#S210wHUaC>DBrwjGZVF`i|*2S(z4Gmt_C{myM*DQZw7gFn6iUN56a_I@qE1G
zn-~gbn0GL^QG<To(e>a=E76ypHL;Z+E}f5UCpbk8yH;MEtZdVAhO&wha_L#!R+a2j
z&5}?C90*p;KxMj<X$kOd+r*lAbwJ4b{d$R2cF=dSSvyy4w|POuB1q4L$>v2JBTU5*
zTTtlR!W1Us`VUE5n)S6zz+QJcg6VFh#2%+?N)O7@o{V1(x7+HxMKvtd(L;TPtT}HL
z8h25c)v(4a%yWaQEOOox>`<DqBE?5oVQ6=es<hgUSEw_k<z?o|GyLAc=_z}K3GGX|
zAx`Z6FPu;JacFt4BD5-B^tEz*0wC6x&f8|LUVlnUbNXL@%w;>*<`kZy%!ZC&pz32E
z)^ZGviG|83JJThNnax>tjnwLYlwdLeM0D(vdC74D(dLC&s)Al~c91L>4`5vcy(HMB
zXC(h7va0x8ZN&~FB`;6vQ=IfIm(+tQ+a=<u5^d^<-z+9&hGe6#mttOQ>JMspFVX#|
zjpI9`$WkP9zimi2BL#`F1nsoCEbVar(llBo{#D)198r~4VvhD730!Ill`gZ$@xO<{
zJ`!oK&*rr6+ENFGl8Ck#yj+wIb9-X7=}>chQS&FfG_sxia{SAL!)lb&%QIFd-R8wm
zi&>afi=$q-{Z%=7xBWj^=5p%m^f~oe%IhlXT{@2)hsL;)Ey}t`aOgfou3CuGD$`$m
zWg2UGMR6?L`F{O`(jQ7liin-!Y?w=^Z0|lxLC>TkjogoWe4GtM=7cyNFT*ANbhiB#
zWGv>8hEayVj;$;5SEt8u2}T@!ENxL#$=UDn#9rQQoj77%gw;;Dk9mP5J95OLliDDK
zE?8zNxxfV1)We+5=}$W0Bd0H>JLxAJLS@dVs?r!m%<MNtamwH&iVp_to5)f=cq)4n
z3^<M2c1lqyW|~tv9LSNhm>|Sk5fg`;Pnm-_fWn-H#!MhX6m5c+f<2R`c%T?~I(yY%
zl`6wX)$%#aRFauX&louq+BBEmN)z<+Q8lM9lh}dl+d8T5|G8XrGCzvg%?mV9Ih}SK
zGaWMzLOJT0NYQ5)=@!)@HlaiqMZ<+H3S*+%v;#YNm}Gq?;>&s65w4pTEE7PxsD(R|
ztvII^wQl01dIjbZ2E+3z1~-MeG+93^OpZ5OhK8+!&i3@9-c}q|3)e3C<f8`>M^aew
zgiV-mMG}5tB5Rw-af04D7mp1u{HK5cT4Hny4U5T?NYn4CSo0%~&N`@fR*td*W<Qz~
z<Bx00G1q0LNuiOE&6oLDf`b#d4^--XG1(OpGXHAz3y6CJPPL4+Ww01ZT)X5$wVYUn
zp~}5jTCHR3?E7%?(WdJ-g%AiCrkVAi>T+^U`gUDTy~BMapsENa=tK??9BKGh$Y_0L
sy*EdjvM%P7$-jHaxvMT4-)d;ZZPuLbmlH-=p2r%>@kpn!V-gDf3t##wwEzGB

diff --git a/po/hr.po b/po/hr.po
deleted file mode 100644
index 0e92da9c8..000000000
--- a/po/hr.po
+++ /dev/null
@@ -1,702 +0,0 @@
-# Translation of gst-plugins-good to Croatian.
-# This file is put in the public domain.
-# Tomislav Krznar <tomislav.krznar@gmail.com>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gst-plugins-good 0.10.28.2\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
-"PO-Revision-Date: 2012-04-16 03:04+0200\n"
-"Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
-"Language-Team: Croatian <lokalizacija@linux.hr>\n"
-"Language: \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"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
-
-#. TRANSLATORS: 'song title' by 'artist name'
-#, c-format
-msgid "'%s' by '%s'"
-msgstr "„%s” („%s”)"
-
-msgid "Failed to decode JPEG image"
-msgstr "Nisam uspio dekodirati JPEG sliku"
-
-msgid "Could not connect to server"
-msgstr "Ne mogu se spojiti na poslužitelj"
-
-msgid "Server does not support seeking."
-msgstr "Poslužitelj ne podržava traženje"
-
-msgid "Could not resolve server name."
-msgstr "Rezolucija imena poslužitelja nije moguća."
-
-msgid "Could not establish connection to server."
-msgstr "Ne mogu ostvariti vezu prema poslužitelju."
-
-msgid "Secure connection setup failed."
-msgstr "Postavljanje sigurne veze nije uspjelo."
-
-msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
-msgstr ""
-"Dogodila se greška mreže, ili je poslužitelj neočekivano zatvorio vezu."
-
-msgid "Server sent bad data."
-msgstr "Poslužitelj je poslao neispravne podatke."
-
-msgid "No URL set."
-msgstr "Nije postavljen URL."
-
-msgid "Internal data stream error."
-msgstr "Greška unutarnjeg niza podataka."
-
-msgid "No or invalid input audio, AVI stream will be corrupt."
-msgstr "AVI niz nema ili ima neispravan ulazni zvuk, zbog čega je oštećen."
-
-msgid "This file contains no playable streams."
-msgstr "Datoteka ne sadrži nizove koji se mogu reproducirati."
-
-msgid "This file is invalid and cannot be played."
-msgstr "Datoteka je neispravna i ne može se reproducirati."
-
-msgid "This file is corrupt and cannot be played."
-msgstr "Datoteka je oštećena i ne može se reproducirati."
-
-msgid "Invalid atom size."
-msgstr "Neispravna veličina elementa."
-
-msgid "This file is incomplete and cannot be played."
-msgstr "Ova datoteka je nepotpuna i ne može se reproducirati."
-
-msgid "The video in this file might not play correctly."
-msgstr "Videozapis u ovoj datoteci se možda neće ispravno reproducirati."
-
-#, c-format
-msgid "This file contains too many streams. Only playing first %d"
-msgstr "Ova datoteka sadrži previše nizova. Reproduciram samo prvih %d"
-
-msgid ""
-"No supported stream was found. You might need to install a GStreamer RTSP "
-"extension plugin for Real media streams."
-msgstr ""
-"Nisu pronađeni podržani nizovi. Morate instalirati GStreamer RTSP priključak "
-"proširenja za Real medijske nizove."
-
-msgid ""
-"No supported stream was found. You might need to allow more transport "
-"protocols or may otherwise be missing the right GStreamer RTSP extension "
-"plugin."
-msgstr ""
-"Nisu pronađeni podržani nizovi. Morate dozvoliti više protokola prijenosa "
-"ili vam možda nedostaje odgovarajući GStreamer RTSP priključak proširenja."
-
-msgid "Internal data flow error."
-msgstr "Greška unutarnjeg toka podataka."
-
-msgid ""
-"Could not open audio device for playback. Device is being used by another "
-"application."
-msgstr ""
-"Ne mogu otvoriti zvučni uređaj za reprodukciju. Uređaj trenutno koristi "
-"drugi program."
-
-msgid ""
-"Could not open audio device for playback. You don't have permission to open "
-"the device."
-msgstr ""
-"Ne mogu otvoriti zvučni uređaj za reprodukciju. Nemate dozvole za otvaranje "
-"uređaja."
-
-msgid "Could not open audio device for playback."
-msgstr "Ne mogu otvoriti zvučni uređaj za reprodukciju."
-
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Ne mogu otvoriti zvučni uređaj za snimanje. Nemate dozvole za otvaranje "
-"uređaja."
-
-msgid "Could not open audio device for recording."
-msgstr "Ne mogu otvoriti zvučni uređaj za snimanje."
-
-msgid ""
-"Could not open audio device for playback. This version of the Open Sound "
-"System is not supported by this element."
-msgstr ""
-"Ne mogu otvoriti zvučni uređaj za reprodukciju. Ovaj element ne podržava ovu "
-"inačicu Open Sound System sustava."
-
-msgid "Playback is not supported by this audio device."
-msgstr "Ovaj zvučni uređaj ne podržava reprodukciju."
-
-msgid "Audio playback error."
-msgstr "Greška reprodukcije zvuka."
-
-msgid "Recording is not supported by this audio device."
-msgstr "Ovaj zvučni uređaj ne podržava snimanje."
-
-msgid "Error recording from audio device."
-msgstr "Greška snimanja sa zvučnog uređaja."
-
-msgid "Volume"
-msgstr "Glasnoća"
-
-msgid "Gain"
-msgstr "Pojačanje"
-
-msgid "Monitor"
-msgstr "Nadzor"
-
-msgid "Built-in Speaker"
-msgstr "Ugrađeni zvučnik"
-
-msgid "Headphone"
-msgstr "Slušalica"
-
-msgid "Line Out"
-msgstr "Linijski izlaz"
-
-msgid "SPDIF Out"
-msgstr "SPDIF izlaz"
-
-msgid "AUX 1 Out"
-msgstr "AUX 1 izlaz"
-
-msgid "AUX 2 Out"
-msgstr "AUX 2 izlaz"
-
-#, c-format
-msgid "Error reading %d bytes from device '%s'."
-msgstr "Greška čitanja %d bajtova s uređaja „%s”."
-
-#, c-format
-msgid "Failed to enumerate possible video formats device '%s' can work with"
-msgstr ""
-
-#, c-format
-msgid "Could not map buffers from device '%s'"
-msgstr "Ne mogu mapirati međuspremnike iz uređaja „%s”"
-
-#, fuzzy, c-format
-msgid "The driver of device '%s' does not support the IO method %d"
-msgstr "Upravljački program uređaja „%s” ne podržava poznate metode snimanja."
-
-#, fuzzy, c-format
-msgid "The driver of device '%s' does not support any known IO method."
-msgstr "Upravljački program uređaja „%s” ne podržava poznate metode snimanja."
-
-#, fuzzy, c-format
-msgid "Device '%s' does not support video capture"
-msgstr "Uređaj „%s” nije izlazni uređaj."
-
-#, c-format
-msgid "Device '%s' is busy"
-msgstr ""
-
-#, fuzzy, c-format
-msgid "Device '%s' cannot capture at %dx%d"
-msgstr "Uređaj „%s” nije uređaj za snimanje."
-
-#, fuzzy, c-format
-msgid "Device '%s' cannot capture in the specified format"
-msgstr "Uređaj „%s” nije uređaj za snimanje."
-
-#, c-format
-msgid "Could not get parameters on device '%s'"
-msgstr "Nisam uspio dobiti parametre uređaja „%s”"
-
-#, fuzzy
-msgid "Video device did not accept new frame rate setting."
-msgstr "Ulazni video uređaj nije prihvatio nove postavke broja okvira."
-
-msgid "Video device could not create buffer pool."
-msgstr ""
-
-#, fuzzy, c-format
-msgid "Failed to get settings of tuner %d on device '%s'."
-msgstr "Nisam uspio dobiti postavke birača %d uređaja „%s”."
-
-#, fuzzy, c-format
-msgid "Error getting capabilities for device '%s'."
-msgstr "Greška čitanja %d bajtova s uređaja „%s”."
-
-#, fuzzy, c-format
-msgid "Device '%s' is not a tuner."
-msgstr "Uređaj „%s” nije izlazni uređaj."
-
-#, fuzzy, c-format
-msgid "Failed to get radio input on device '%s'. "
-msgstr "Nisam uspio postaviti ulaz %d na uređaj %s."
-
-#, c-format
-msgid "Failed to set input %d on device %s."
-msgstr "Nisam uspio postaviti ulaz %d na uređaj %s."
-
-#, fuzzy, c-format
-msgid "Failed to change mute state for device '%s'."
-msgstr "Nisam uspio dobiti snagu signala za uređaj „%s”."
-
-#, c-format
-msgid ""
-"Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
-"it is a v4l1 driver."
-msgstr ""
-"Greška dobivanja mogućnosti uređaja „%s”: To nije v4l2 upravljački program. "
-"Provjerite je li v4l1 upravljački program."
-
-#, c-format
-msgid "Failed to query attributes of input %d in device %s"
-msgstr "Nisam uspio ispitati svojstva ulaza %d uređaja %s"
-
-#, c-format
-msgid "Failed to get setting of tuner %d on device '%s'."
-msgstr "Nisam uspio dobiti postavke birača %d uređaja „%s”."
-
-#, c-format
-msgid "Failed to query norm on device '%s'."
-msgstr "Nisam uspio ispitati norm na uređaju „%s”."
-
-#, c-format
-msgid "Failed getting controls attributes on device '%s'."
-msgstr "Nisam uspio dobiti svojstva upravljanja na uređaju „%s”."
-
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Ne mogu identificirati uređaj „%s”."
-
-#, c-format
-msgid "This isn't a device '%s'."
-msgstr "Ovo nije uređaj „%s”."
-
-#, c-format
-msgid "Could not open device '%s' for reading and writing."
-msgstr "Ne mogu otvoriti uređaj „%s” za čitanje i pisanje."
-
-#, c-format
-msgid "Device '%s' is not a capture device."
-msgstr "Uređaj „%s” nije uređaj za snimanje."
-
-#, c-format
-msgid "Device '%s' is not a output device."
-msgstr "Uređaj „%s” nije izlazni uređaj."
-
-#, c-format
-msgid "Failed to set norm for device '%s'."
-msgstr "Nisam uspio postaviti norm za uređaj „%s”."
-
-#, c-format
-msgid "Failed to get current tuner frequency for device '%s'."
-msgstr "Nisam uspio dobiti trenutnu frekvenciju birača za uređaj „%s”."
-
-#, c-format
-msgid "Failed to set current tuner frequency for device '%s' to %lu Hz."
-msgstr ""
-"Nisam uspio postaviti trenutnu frekvenciju birača za uređaj „%s” na %lu Hz."
-
-#, c-format
-msgid "Failed to get signal strength for device '%s'."
-msgstr "Nisam uspio dobiti snagu signala za uređaj „%s”."
-
-#, c-format
-msgid "Failed to get value for control %d on device '%s'."
-msgstr "Nisam uspio dobiti vrijednost za kontrolu %d na uređaju „%s”."
-
-#, c-format
-msgid "Failed to set value %d for control %d on device '%s'."
-msgstr "Nisam uspio postaviti vrijednost %d za kontrolu %d na uređaju „%s”."
-
-#, c-format
-msgid "Failed to get current input on device '%s'. May be it is a radio device"
-msgstr ""
-"Nisam uspio dobiti trenutni ulaz na uređaju „%s”. Možda je to radio uređaj"
-
-#, c-format
-msgid ""
-"Failed to get current output on device '%s'. May be it is a radio device"
-msgstr ""
-"Nisam uspio dobiti trenutni izlaz na uređaju „%s”. Možda je to radio uređaj"
-
-#, c-format
-msgid "Failed to set output %d on device %s."
-msgstr "Nisam uspio postaviti izlaz %d na uređaj %s."
-
-msgid "Changing resolution at runtime is not yet supported."
-msgstr "Promjena rezolucije pri izvođenju još nije podržana."
-
-msgid "Cannot operate without a clock"
-msgstr "Ne mogu raditi bez takta"
-
-#~ msgid "Could not establish connection to sound server"
-#~ msgstr "Ne mogu ostvariti vezu prema poslužitelju zvuka"
-
-#~ msgid "Failed to query sound server capabilities"
-#~ msgstr "Nisam uspio ispitati mogućnosti poslužitelja zvuka"
-
-#~ msgid "Bass"
-#~ msgstr "Niski"
-
-#~ msgid "Treble"
-#~ msgstr "Visoki"
-
-#~ msgid "Synth"
-#~ msgstr "Sintetizator"
-
-#~ msgid "PCM"
-#~ msgstr "PCM"
-
-#~ msgid "Speaker"
-#~ msgstr "Zvučnik"
-
-#~ msgid "Line-in"
-#~ msgstr "Ulazna linija"
-
-#~ msgid "Microphone"
-#~ msgstr "Mikrofon"
-
-#~ msgid "CD"
-#~ msgstr "CD"
-
-#~ msgid "Mixer"
-#~ msgstr "Mikser"
-
-#~ msgid "PCM-2"
-#~ msgstr "PCM-2"
-
-#~ msgid "Record"
-#~ msgstr "Snimanje"
-
-#~ msgid "In-gain"
-#~ msgstr "Ulazno pojačanje"
-
-#~ msgid "Out-gain"
-#~ msgstr "Izlazno pojačanje"
-
-#~ msgid "Line-1"
-#~ msgstr "Linija 1"
-
-#~ msgid "Line-2"
-#~ msgstr "Linija 2"
-
-#~ msgid "Line-3"
-#~ msgstr "Linija 3"
-
-#~ msgid "Digital-1"
-#~ msgstr "Digitalni 1"
-
-#~ msgid "Digital-2"
-#~ msgstr "Digitalni 2"
-
-#~ msgid "Digital-3"
-#~ msgstr "Digitalni 3"
-
-#~ msgid "Phone-in"
-#~ msgstr "Telefonski ulaz"
-
-#~ msgid "Phone-out"
-#~ msgstr "Telefonski izlaz"
-
-#~ msgid "Video"
-#~ msgstr "Video"
-
-#~ msgid "Radio"
-#~ msgstr "Radio"
-
-#~ msgid "Could not open audio device for mixer control handling."
-#~ msgstr "Ne mogu otvoriti zvučni uređaj za upravljanje mikserom."
-
-#~ msgid ""
-#~ "Could not open audio device for mixer control handling. This version of "
-#~ "the Open Sound System is not supported by this element."
-#~ msgstr ""
-#~ "Ne mogu otvoriti zvučni uređaj za upravljanje mikserom. Ovaj element ne "
-#~ "podržava ovu inačicu Open Sound System sustava."
-
-#~ msgid "Master"
-#~ msgstr "Glavni"
-
-#~ msgid "Front"
-#~ msgstr "Prednji"
-
-#~ msgid "Rear"
-#~ msgstr "Stražnji"
-
-#~ msgid "Headphones"
-#~ msgstr "Slušalice"
-
-#~ msgid "Center"
-#~ msgstr "Srednji"
-
-#~ msgid "LFE"
-#~ msgstr "LFE"
-
-#~ msgid "Surround"
-#~ msgstr "Surround"
-
-#~ msgid "Side"
-#~ msgstr "Bočni"
-
-#~ msgid "AUX Out"
-#~ msgstr "AUX izlaz"
-
-#~ msgid "3D Depth"
-#~ msgstr "3D dubina"
-
-#~ msgid "3D Center"
-#~ msgstr "3D središte"
-
-#~ msgid "3D Enhance"
-#~ msgstr "3D dopuna"
-
-#~ msgid "Telephone"
-#~ msgstr "Telefon"
-
-#~ msgid "Line In"
-#~ msgstr "Linijski ulaz"
-
-#~ msgid "Internal CD"
-#~ msgstr "Interni CD"
-
-#~ msgid "Video In"
-#~ msgstr "Video ulaz"
-
-#~ msgid "AUX 1 In"
-#~ msgstr "AUX 1 ulaz"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "AUX 2 ulaz"
-
-#~ msgid "AUX In"
-#~ msgstr "AUX ulaz"
-
-#~ msgid "Record Gain"
-#~ msgstr "Pojačanje snimanja"
-
-#~ msgid "Output Gain"
-#~ msgstr "Pojačanje izlaza"
-
-#~ msgid "Microphone Boost"
-#~ msgstr "Pojačanje mikrofona"
-
-#~ msgid "Loopback"
-#~ msgstr "Povratna petlja"
-
-#~ msgid "Diagnostic"
-#~ msgstr "Dijagnostika"
-
-#~ msgid "Bass Boost"
-#~ msgstr "Pojačanje niskih"
-
-#~ msgid "Playback Ports"
-#~ msgstr "Portovi reprodukcije"
-
-#~ msgid "Input"
-#~ msgstr "Ulaz"
-
-#~ msgid "Record Source"
-#~ msgstr "Izvor snimanja"
-
-#~ msgid "Monitor Source"
-#~ msgstr "Izvor nadziranja"
-
-#~ msgid "Keyboard Beep"
-#~ msgstr "Tipkovnički zvuk"
-
-#~ msgid "Simulate Stereo"
-#~ msgstr "Simuliraj stereo"
-
-#~ msgid "Stereo"
-#~ msgstr "Stereo"
-
-#~ msgid "Surround Sound"
-#~ msgstr "Surround zvuk"
-
-#~ msgid "Microphone Gain"
-#~ msgstr "Pojačanje mikrofona"
-
-#~ msgid "Speaker Source"
-#~ msgstr "Izvor zvučnika"
-
-#~ msgid "Microphone Source"
-#~ msgstr "Izvor mikrofona"
-
-#~ msgid "Jack"
-#~ msgstr "Priključak"
-
-#~ msgid "Center / LFE"
-#~ msgstr "Srednji / LFE"
-
-#~ msgid "Stereo Mix"
-#~ msgstr "Stereo mikser"
-
-#~ msgid "Mono Mix"
-#~ msgstr "Mono mikser"
-
-#~ msgid "Input Mix"
-#~ msgstr "Ulazni mikser"
-
-#~ msgid "SPDIF In"
-#~ msgstr "SPDIF ulaz"
-
-#~ msgid "Microphone 1"
-#~ msgstr "Mikrofon 1"
-
-#~ msgid "Microphone 2"
-#~ msgstr "Mikrofon 2"
-
-#~ msgid "Digital Out"
-#~ msgstr "Digitalni izlaz"
-
-#~ msgid "Digital In"
-#~ msgstr "Digitalni ulaz"
-
-#~ msgid "HDMI"
-#~ msgstr "HDMI"
-
-#~ msgid "Modem"
-#~ msgstr "Modem"
-
-#~ msgid "Handset"
-#~ msgstr "Slušalice s mikrofonom"
-
-#~ msgid "Other"
-#~ msgstr "Ostalo"
-
-#~ msgid "None"
-#~ msgstr "Nijedan"
-
-#~ msgid "On"
-#~ msgstr "Uključen"
-
-#~ msgid "Off"
-#~ msgstr "Isključen"
-
-#~ msgid "Mute"
-#~ msgstr "Utišan"
-
-#~ msgid "Fast"
-#~ msgstr "Brzo"
-
-#~ msgid "Very Low"
-#~ msgstr "Vrlo niska"
-
-#~ msgid "Low"
-#~ msgstr "Niska"
-
-#~ msgid "Medium"
-#~ msgstr "Srednja"
-
-#~ msgid "High"
-#~ msgstr "Visoka"
-
-#~ msgid "Very High"
-#~ msgstr "Vrlo visoka"
-
-#~ msgid "Production"
-#~ msgstr "Produkcijska"
-
-#~ msgid "Front Panel Microphone"
-#~ msgstr "Mikrofon na prednjoj ploči"
-
-#~ msgid "Front Panel Line In"
-#~ msgstr "Linijski ulaz na prednjoj ploči"
-
-#~ msgid "Front Panel Headphones"
-#~ msgstr "Slušalice na prednjoj ploči"
-
-#~ msgid "Front Panel Line Out"
-#~ msgstr "Linijski izlaz na prednjoj ploči"
-
-#~ msgid "Green Connector"
-#~ msgstr "Zelena priključnica"
-
-#~ msgid "Pink Connector"
-#~ msgstr "Ružičasta priključnica"
-
-#~ msgid "Blue Connector"
-#~ msgstr "Plava priključnica"
-
-#~ msgid "White Connector"
-#~ msgstr "Bijela priključnica"
-
-#~ msgid "Black Connector"
-#~ msgstr "Crna priključnica"
-
-#~ msgid "Gray Connector"
-#~ msgstr "Siva priključnica"
-
-#~ msgid "Orange Connector"
-#~ msgstr "Narančasta priključnica"
-
-#~ msgid "Red Connector"
-#~ msgstr "Crvena priključnica"
-
-#~ msgid "Yellow Connector"
-#~ msgstr "Žuta priključnica"
-
-#~ msgid "Green Front Panel Connector"
-#~ msgstr "Zelena priključnica na prednjoj ploči"
-
-#~ msgid "Pink Front Panel Connector"
-#~ msgstr "Ružičasta priključnica na prednjoj ploči"
-
-#~ msgid "Blue Front Panel Connector"
-#~ msgstr "Plava priključnica na prednjoj ploči"
-
-#~ msgid "White Front Panel Connector"
-#~ msgstr "Bijela priključnica na prednjoj ploči"
-
-#~ msgid "Black Front Panel Connector"
-#~ msgstr "Crna priključnica na prednjoj ploči"
-
-#~ msgid "Gray Front Panel Connector"
-#~ msgstr "Siva priključnica na prednjoj ploči"
-
-#~ msgid "Orange Front Panel Connector"
-#~ msgstr "Narančasta priključnica na prednjoj ploči"
-
-#~ msgid "Red Front Panel Connector"
-#~ msgstr "Crvena priključnica na prednjoj ploči"
-
-#~ msgid "Yellow Front Panel Connector"
-#~ msgstr "Žuta priključnica na prednjoj ploči"
-
-#~ msgid "Spread Output"
-#~ msgstr "Rašireni izlaz"
-
-#~ msgid "Downmix"
-#~ msgstr "Smanjenje broja kanala"
-
-#~ msgid "Virtual Mixer Input"
-#~ msgstr "Ulaz virtualnog miksera"
-
-#~ msgid "Virtual Mixer Output"
-#~ msgstr "Izlaz virtualnog miksera"
-
-#~ msgid "Virtual Mixer Channels"
-#~ msgstr "Kanali virtualnog miksera"
-
-#~ msgid "%s %d Function"
-#~ msgstr "%s %d funkcija"
-
-#~ msgid "%s Function"
-#~ msgstr "%s funkcija"
-
-#~ msgid "Got unexpected frame size of %u instead of %u."
-#~ msgstr "Dobivena neočekivana veličina okvira %u umjesto %u."
-
-#~ msgid "Error reading %d bytes on device '%s'."
-#~ msgstr "Greška čitanja %d bajtova na uređaju „%s”."
-
-#~ msgid "Could not enqueue buffers in device '%s'."
-#~ msgstr "Nisam uspio dodati u red međuspremnike u uređaj „%s”."
-
-#~ msgid "Failed trying to get video frames from device '%s'."
-#~ msgstr "Nisam uspio pokušavajući dobiti video okvire iz uređaja „%s”."
-
-#~ msgid "Failed after %d tries. device %s. system error: %s"
-#~ msgstr "Nisam uspio nakon %d pokušaja. uređaj %s. greška sustava: %s"
diff --git a/po/hu.gmo b/po/hu.gmo
index 0a5ac2c4ed40042996e6f07c8579a98d88787dda..91f9fa334f8844d90c04a0e26a8f978afda37b4f 100644
GIT binary patch
delta 1943
zcmZA1TWr%+9Ki9@cCc%=(p|W$Y=75X8SUD#?j~bb$2K7wW854;TJoPO+gd1NzGxaB
zh=HMK4j3;nW-&e>58!HilK3!r*n<~>ONa{kB#AsIKEMkJet&J}gC{xtoOAl`|D5wX
zztac%R(lioomp2DWjEDD9k(hK!i!maP#o)(D!>gmj1`!J5zNJSrvF-|e-29-zl09_
z4CTFFVFlj7X8Z@sl}f0(Y^53)=)*dk#ag_Q8UGp&(*FZbV<)p8!t1yVvsuMq4B!r2
zK$++ptj7E3Mq6HbV|7?h|2$SPzgnUZU|<zlk;=(WN23~B=+B@ZKSi%Rhw^+DVUY=2
zQ6`$kZhR-xzl}2SV+`UJJHNqEWKHS-<}<%~nZ{<EMp?i)WV31!CDd1uwW+1d_)TOD
z>K4iZZ{vHIQ^;}PC)k9}BBl6B^`Z|)QQr3k$^tH6qLRjC8U}uea(1gIKX{0B=;9zd
zuphT!0zLS7rhgY@1GWuHaja@9wvtEHDC0+ql^Vl&l!;d|-YF*jGH@?5@Bqu`Kf;Ze
zQ<BaN18e9HV;7!6S=bHq;azOTTvjhfvkRN>G`@t3IEzp57@lMj*}zH}@jpuA2?KpN
z&aAS-_i;NeV<Y~JucK>IdI2AzJohsW;X1Y{NjriOoJUE@-*F$dZ{Zkl0mt!s97cD7
z1K&v_igN9)VL#frGtc7~PT<=pXZ|OWPwFvB<ZN5hk+Ns3LHWKj<1osZA418g<0uiH
zLYXI#pz#rnZ!snhaCanhKcW*A2_m5?MtM<B#$nt+e?Lkj-oyr6LfP4`neXciqC$TH
z>+u@O^FJZCDWRUxU~c7oE<M2>w9uEZ%XM2Tois>nMNa)!<VAAz){2DKMwNw1v?PKA
zihG{E!t1b`YEZkVGJh(uI%rx`1L+S5VUWr(DULXmWD>S^Do3h{sCH^O_5VfgJo%f-
zr#yUtIzW{oM<$6XMWWio{Hd~&Pd1(^l6X=`R@Fw8#F8R^9^AB4hD-MEruI;!$Wcfk
zPZgIz?V@r5seeK_cR5NqZ#jasB2kykr0%TPA|I4iYJ<MFK3qB!RXqm|8-8Qt>|Cl9
zFovSZ-t0-6-j&~}m-8R$UkY6MJ9~j1v=8cuqDuWkL4j^6Y)yVp*l*D`N4K@FU$;A2
z%lAa0CO=jw<#l@_C*rYFQ?aO-TyR{pWE=ZqXX7VK?QphPhoZX2Ihk}9H(B%-C5_oW
zuixhl1odwvV;+C7BiPdD3;29_qa&U%b3Sq=5{r8JLvv<_5%Bqa9>3q?Yc_oTj(|UT
zthCCK_hN4-Y|a>duV0@pTP+Kl%I`H~W7828NVmdf^7zIlHoe`|Wtq}%x!UwI*Hb-E
zQL9%fPU?><k0dV`N36Qu{i<x}x_h&};oekrFcuBXgw0tqYR;)tXF8JZ?2SyvW0SFH
z@-O$I#W`Tk%r9S^V-1tBczk*BOh{j<30lLZzFBiQ`KUH#$sG(uUoqpi-c|ns^Jn*!

delta 3140
zcma*nTWlOx8Nl)5I9EHywOwP!cI-o3$IivuwVhz%G$eK0HVJNHhbZ9^NM?7B?aA)W
zY-VPiW=mO#R7izXYBaP(&<9+?gM|>0R-y$#0c`_)YT=>cp=v}_ZYmT~pyHAj{@;w9
zCV&J-KK{+@?wrf_eP>=9|Lt`7YV*pc6m6Q`MZdH{sXT69#Xs6FS1Yw1ui+v5Bd)_;
zYhw3fEB6oL9hgQLC%|sJh&%8ycH*yb3)ZYvs$Z$H+Q!9ZKKLlg7bQG~m+%bUz~h)_
z)~$F2KZe(F1P|856FrK(+&_!M_#@nkf58^)u2<?V97g%waqMJ%^#~W+_~03|u!;lN
z$F?`&Lns5D!R>enWhXz!349wLz~Kg^4qypCh*gvY{1b<;?|tz&$1%bE7v!G#)pxm&
zo%{i1g}PCxeRv<r{pV3u{7vk`S8*r4iz{&(aVHomi5qYXWr0Vr84E}d)p;cP>H@My
z^(8FJO25X%)A$SY&}mZYZoGy`Y+@9dU>tjJ5;f*fa{mPG#joRTd=url9^y`p)fA55
z!zdA{;2>UYA^!5g`a9#5kD}a9;|P8RsW){QhbheGQFi#&`;|I^E8F6Q9beKyzEWA_
zPkoMmTktC=k$VYcp>LrqY->C5mz5rAkE`@N4s-tkN(6q7pTJIL&Eq_N8h?edgZ&*!
zoxn4=A74S)Kr`{*gM08^d;}%ZKfsOnSCm?6E^}6-`1Yd4EbhV!_$dAaWyKRbB?CW(
z2l3l@2>*d{dL}q)CoqdPzP#jcPkdUQMOnzZIE|w^w){93<9zTs9>wkt!~^?y5BD#k
zg*Q;D{Zkx?-S`~J{Z;%V_EMozRAuBqs4pT>R$pH7G7=p1^3wNjBE?u%*SV0K{T*e%
z#=DgIDjr1_ucM^m6bY1&KZ#P!FQU}QPf;Rs10~m+35RTC3ME3{Sn@i`?{|~<!|39G
zoc|wkAp`sl<y^K5#5o#A$=NBqAD_Xscol09qR>k?rR|_gBtIlKw5gcr$Vp^Y&}E*7
z=<DcYNcJC}@dlLDNd%-(=uuQ;L2|@a(xu4`@1ql}D4(*RN%|i8a+6(CUs1b*{|D)m
zk*cLj(MdGPTGYx?{gN-qDYX=x(^WV`m;5a^$=!0}J*6~#HT^-lv^x3&^bga?#LXtB
zNnTb`)XR-hT5hMKcQdCfYLb@&bTSd0ibj+a+}flDM(H1+OM&jCa~h)*f#RK|_Q?f}
z_fXU*dbK}nSe>dpTns9Yt)8hZr!B{E1D&=CLD4hX3UpuQ;l7NTF!OfW=>9&xpD%Cw
zjqT`Q&S<}2()NsPGJ3}K@>X!$BN^BDS_bxug@Wq^dfv_$cX^ukep<)ywy#q~|6KUS
zx<g@YUF)i#=ol~TtJ_Y0yD2?qIkQIRivd#xR$#)5^<80eeb<<Aih1Mli7vRlZ>Mr*
zX_k0BzRujf2YuG{vihtY%!R%6Cu`ke5Z+T??DDLP?P}X86a(!#w?356;dAxlYfKQ>
z&a7W~p}tTPJ#}q;Z#dAfFAN$6I}bYZR?f~4I5)3-yJQk-(sqoN0Dr&XLQQzAaVUJU
z@nkvU+4IKJ?#!(-=>Le5<($)5$35%lgNJqA1aodCp^g&n|MPjt%*`jsW%Mk;ul%`j
zd(DX`2}@x~yTx24%2C=g62(+;W`-3OTsN0c$8P;;h7C$Gt#sNH0_~Wydd9QzMn}>2
z;{b)7O^Mo}L^7OeIx;w%97~RDOAaNIbyJ52kB|u8cAdcq<{8t&$)VxFp`pQ%q#oKi
zmfTr+wP{n$x=A-nBuhqzH=18tk+mzoY57}iZ??Kvpp<4zZr(VK9apE^rd%heF8C?S
z3IEjAwfWzEW)ZttE8_-1RGrm@pqP(;+8GY?G&Dx#D1%lP1Ct9FqHWELJDanj>(20v
zw!LAst)o7w#e_Owr>t<gwJjWN?_Q<mmhLK}?Hx6pPIWO~{g$l7*42ev&MFY8e6^Bs
z{qR)R-Qm=R{_vf)*8BM`uyQ(UN+vgFf-4tw&Y)jioMnUYf;dRgQr)a<(RV#J$G8@S
zl{Fp<HBMOEkZUPvD;pFUkfW2e^Tshj_)f=Q`22?RjoPa&WbA4sWtKnR74GYptc-Ph
zd_{d<CUNtDS2{<+3tgWL@7%bhzxudGB%E{66mc!*tBalqC<NEBa!Zp`PHtSN34hkT
zDcsr998UE-5x&&cy2sAtj9+3y1<#$OEKXZgNL~|>ygSPa#mt^F0ZZqgb6$g}JS9B5
z985m^aa;S2|1kmsS_7pm<UaA<!<E;2&eW9ejRVL0+3I&n@w~+-?Kv{*nK`#a(G;S}
zW<e6q3Y+>bkCA;V6Ij~hv{lm8@153CdRaG}wS1E@zT{~zWhBFKwi)KYT6s5lS1zi5
E0bD$q2LJ#7

diff --git a/po/hu.po b/po/hu.po
index 7f640e852..b8663e297 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -3,13 +3,13 @@
 # Copyright (C) 2004, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 #
 # Laszlo Dvornik <dvornik@invitel.hu>, 2004.
-# Gabor Kelemen <kelemeng@gnome.hu>, 2007, 2008, 2009, 2010, 2012.
+# Gabor Kelemen <kelemeng@gnome.hu>, 2007, 2008, 2009, 2010.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good 1.0.3\n"
+"Project-Id-Version: gst-plugins-good 0.10.25.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
-"PO-Revision-Date: 2012-11-30 15:05+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
+"PO-Revision-Date: 2010-11-04 01:21+0100\n"
 "Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
 "Language: hu\n"
@@ -17,21 +17,27 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Rosetta-Export-Date: 2007-07-27 19:18:15+0000\n"
-"X-Generator: Lokalize 1.4\n"
+"X-Generator: KBabel 1.11.4\n"
 "X-Rosetta-Export-Date: 2007-07-27 19:18:15+0000\n"
 "Plural-Forms:  nplurals=2; plural=(n != 1);\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "A JPEG kép visszafejtése meghiúsult"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "„%s” ettől: „%s”"
 
-msgid "Failed to decode JPEG image"
-msgstr "A JPEG kép visszafejtése meghiúsult"
-
 msgid "Could not connect to server"
 msgstr "Nem lehet csatlakozni a kiszolgálóhoz"
 
+msgid "No URL set."
+msgstr "Nincs beállítva URL."
+
 msgid "Server does not support seeking."
 msgstr "A kiszolgáló nem támogatja a tekerést."
 
@@ -52,9 +58,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr "A kiszolgáló hibás adatokat küldött."
 
-msgid "No URL set."
-msgstr "Nincs beállítva URL."
-
 msgid "Internal data stream error."
 msgstr "Belső adatfolyam-hiba."
 
@@ -67,11 +70,14 @@ msgstr "A fájl nem tartalmaz lejátszható adatfolyamokat."
 msgid "This file is invalid and cannot be played."
 msgstr "A fájl nem érvényes és nem játszható le."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "A fájl sérült és nem játszható le."
 
 msgid "Invalid atom size."
-msgstr "Érvénytelen atom méret."
+msgstr ""
 
 msgid "This file is incomplete and cannot be played."
 msgstr "A fájl nem teljes és nem játszható le."
@@ -119,16 +125,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Nem nyitható meg hangeszköz a lejátszáshoz."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Nem nyitható meg hangeszköz a felvételhez. Nincs jogosultsága az eszköz "
-"megnyitására."
-
-msgid "Could not open audio device for recording."
-msgstr "Nem nyitható meg hangeszköz a felvételhez."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -148,6 +144,45 @@ msgstr "Ez a hangeszköz nem támogatja a felvételt."
 msgid "Error recording from audio device."
 msgstr "Hiba a hangeszközről való felvételkor."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Nem nyitható meg hangeszköz a felvételhez. Nincs jogosultsága az eszköz "
+"megnyitására."
+
+msgid "Could not open audio device for recording."
+msgstr "Nem nyitható meg hangeszköz a felvételhez."
+
+msgid "Record Source"
+msgstr "Felvétel forrása"
+
+msgid "Microphone"
+msgstr "Mikrofon"
+
+msgid "Line In"
+msgstr "Vonalbemenet"
+
+msgid "Internal CD"
+msgstr "Belső CD"
+
+msgid "SPDIF In"
+msgstr "SPDIF be"
+
+msgid "AUX 1 In"
+msgstr "1. AUX be"
+
+msgid "AUX 2 In"
+msgstr "2. AUX be"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Visszacsatolás"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Visszacsatolás"
+
 msgid "Volume"
 msgstr "Hangerő"
 
@@ -182,71 +217,78 @@ msgstr "Hiba %d bájt olvasásakor a következő eszközről: „%s”."
 #, c-format
 msgid "Failed to enumerate possible video formats device '%s' can work with"
 msgstr ""
-"A(z) „%s” eszköz által kezelhető lehetséges videoformátumok felsorolása "
-"sikertelen"
 
 #, c-format
 msgid "Could not map buffers from device '%s'"
 msgstr "Nem képezhetők le a(z) „%s” eszköz pufferei"
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
-msgstr "A(z) „%s” eszköz illesztőprogramja nem támogatja a(z) %d. IO módot"
+msgstr ""
+"A(z) „%s” eszköz illesztőprogramja nem támogat egyetlen ismert felvételi "
+"módot sem."
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
-"A(z) „%s” eszköz illesztőprogramja nem támogat egyetlen ismert IO módot sem."
+"A(z) „%s” eszköz illesztőprogramja nem támogat egyetlen ismert felvételi "
+"módot sem."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' does not support video capture"
-msgstr "A(z) „%s” eszköz nem támogatja a videofelvételt"
+msgstr "A(z) „%s” eszköz nem kimeneti eszköz."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is busy"
-msgstr "A(z) „%s” eszköz foglalt"
+msgstr "A(z) „%s” eszköz nem kimeneti eszköz."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' cannot capture at %dx%d"
-msgstr "A(z) „%s” eszköz nem képes felvenni %dx%d felbontásban"
+msgstr "A(z) „%s” eszköz nem rögzítőeszköz."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' cannot capture in the specified format"
-msgstr "A(z) „%s” eszköz nem képes felvenni a megadott formátumban"
+msgstr "A(z) „%s” eszköz nem rögzítőeszköz."
 
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Nem kérhetők le a(z) „%s” eszköz paraméterei"
 
+#, fuzzy
 msgid "Video device did not accept new frame rate setting."
-msgstr "A videoeszköz nem fogadta el az új képkockasebesség-beállítást."
+msgstr ""
+"A videobemeneti eszköz nem fogadta el az új képkockasebesség-beállítást."
 
 msgid "Video device could not create buffer pool."
-msgstr "A videoeszköz nem tudott létrehozni puffertárolót."
+msgstr ""
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get settings of tuner %d on device '%s'."
 msgstr "A(z) %d. tuner beállításának lekérése a(z) „%s” eszközön meghiúsult."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Error getting capabilities for device '%s'."
-msgstr "Hiba a(z) „%s” eszköz képességeinek lekérésekor."
+msgstr "Hiba %d bájt olvasásakor a következő eszközről: „%s”."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is not a tuner."
-msgstr "A(z) „%s” eszköz nem tuner."
+msgstr "A(z) „%s” eszköz nem kimeneti eszköz."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get radio input on device '%s'. "
-msgstr "A rádióbemenet lekérése meghiúsult a(z) „%s” eszközön."
+msgstr "A(z) %d. bemenet beállítása meghiúsult a(z) „%s” eszközön."
 
 #, c-format
 msgid "Failed to set input %d on device %s."
 msgstr "A(z) %d. bemenet beállítása meghiúsult a(z) „%s” eszközön."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to change mute state for device '%s'."
-msgstr "A némítási állapot módosítása meghiúsult a(z) „%s” eszközön."
+msgstr "A jelerősség lekérdezése meghiúsult a(z) „%s” eszközön."
+
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Nem azonosítható a(z) „%s” eszköz."
 
 #, c-format
 msgid ""
@@ -272,10 +314,6 @@ msgstr "A norma lekérdezése meghiúsult a(z) „%s” eszköztől."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "A vezérlőattribútumok lekérése meghiúsult a(z) „%s” eszközön."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Nem azonosítható a(z) „%s” eszköz."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Ez nem egy eszköz: „%s”."
@@ -326,16 +364,16 @@ msgstr ""
 "Az aktuális bemenet lekérése meghiúsult a(z) „%s” eszközről. Lehet, hogy ez "
 "egy rádióeszköz."
 
-#, c-format
+#, fuzzy, c-format
 msgid ""
 "Failed to get current output on device '%s'. May be it is a radio device"
 msgstr ""
-"Az aktuális kimenet lekérése meghiúsult a(z) „%s” eszközről. Lehet, hogy ez "
+"Az aktuális bemenet lekérése meghiúsult a(z) „%s” eszközről. Lehet, hogy ez "
 "egy rádióeszköz."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to set output %d on device %s."
-msgstr "A(z) %d. kimenet beállítása meghiúsult a(z) „%s” eszközön."
+msgstr "A(z) %d. bemenet beállítása meghiúsult a(z) „%s” eszközön."
 
 msgid "Changing resolution at runtime is not yet supported."
 msgstr "A felbontás módosítása futás közben még nem támogatott."
@@ -343,11 +381,14 @@ msgstr "A felbontás módosítása futás közben még nem támogatott."
 msgid "Cannot operate without a clock"
 msgstr "Óra nélkül lehetetlen a működés"
 
-#~ msgid "Could not establish connection to sound server"
-#~ msgstr "Nem hozható létre kapcsolat a hangkiszolgálóhoz"
+#~ msgid "Got unexpected frame size of %u instead of %u."
+#~ msgstr "Váratlan keretméret (%u) érkezett %u helyett."
 
-#~ msgid "Failed to query sound server capabilities"
-#~ msgstr "A hangkiszolgáló képességeinek lekérdezése meghiúsult"
+#~ msgid "Failed trying to get video frames from device '%s'."
+#~ msgstr "Nem sikerült videokockákat lekérni a(z) „%s” eszköztől."
+
+#~ msgid "Failed after %d tries. device %s. system error: %s"
+#~ msgstr "Hiba %d próbálkozás után. Eszköz: %s. Rendszerhiba: %s."
 
 #~ msgid "Bass"
 #~ msgstr "Basszus"
@@ -367,9 +408,6 @@ msgstr "Óra nélkül lehetetlen a működés"
 #~ msgid "Line-in"
 #~ msgstr "Vonalbemenet"
 
-#~ msgid "Microphone"
-#~ msgstr "Mikrofon"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -467,21 +505,9 @@ msgstr "Óra nélkül lehetetlen a működés"
 #~ msgid "Telephone"
 #~ msgstr "Telefon"
 
-#~ msgid "Line In"
-#~ msgstr "Vonalbemenet"
-
-#~ msgid "Internal CD"
-#~ msgstr "Belső CD"
-
 #~ msgid "Video In"
 #~ msgstr "Video be"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "1. AUX be"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "2. AUX be"
-
 #~ msgid "AUX In"
 #~ msgstr "AUX be"
 
@@ -494,9 +520,6 @@ msgstr "Óra nélkül lehetetlen a működés"
 #~ msgid "Microphone Boost"
 #~ msgstr "Mikrofonerősítés"
 
-#~ msgid "Loopback"
-#~ msgstr "Visszacsatolás"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Diagnosztika"
 
@@ -509,9 +532,6 @@ msgstr "Óra nélkül lehetetlen a működés"
 #~ msgid "Input"
 #~ msgstr "Bemenet"
 
-#~ msgid "Record Source"
-#~ msgstr "Felvétel forrása"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Monitor forrása"
 
@@ -551,9 +571,6 @@ msgstr "Óra nélkül lehetetlen a működés"
 #~ msgid "Input Mix"
 #~ msgstr "Bemeneti keverés"
 
-#~ msgid "SPDIF In"
-#~ msgstr "SPDIF be"
-
 #~ msgid "Microphone 1"
 #~ msgstr "1. mikrofon"
 
@@ -698,17 +715,14 @@ msgstr "Óra nélkül lehetetlen a működés"
 #~ msgid "%s Function"
 #~ msgstr "%s funkció"
 
-#~ msgid "Got unexpected frame size of %u instead of %u."
-#~ msgstr "Váratlan keretméret (%u) érkezett %u helyett."
-
 #~ msgid "Error reading %d bytes on device '%s'."
 #~ msgstr "Hiba %d bájt olvasásakor a következő eszközről: „%s”."
 
 #~ msgid "Could not enqueue buffers in device '%s'."
 #~ msgstr "Nem állíthatók sorba a pufferek a(z) „%s” eszközben."
 
-#~ msgid "Failed trying to get video frames from device '%s'."
-#~ msgstr "Nem sikerült videokockákat lekérni a(z) „%s” eszköztől."
+#~ msgid "Could not establish connection to sound server"
+#~ msgstr "Nem hozható létre kapcsolat a hangkiszolgálóhoz"
 
-#~ msgid "Failed after %d tries. device %s. system error: %s"
-#~ msgstr "Hiba %d próbálkozás után. Eszköz: %s. Rendszerhiba: %s."
+#~ msgid "Failed to query sound server capabilities"
+#~ msgstr "A hangkiszolgáló képességeinek lekérdezése meghiúsult"
diff --git a/po/id.gmo b/po/id.gmo
index 8432255559c76220d2421ecaff5c79c43c39b1c9..30bb87d7cfebfc0a78ebc57f39cd23242526e56d 100644
GIT binary patch
delta 1902
zcmYk+TWphM9LMp0J4UC#R)-tlM)!i?WZ-0VhdL${H{6M4(M_E3ly25-Y_wQuh>J-j
z9-?5psgUeq!wX4}pfOf&&<k%!W}+90hQq}YO>B(ksPS&m@9%xzB|gd1&-1+PbNv6`
zmf|P7^GnsMP8%gbt*5>mG@HO*R`Ef3ZME52d>sey3|8QGcoY8Q_y6|$%UHwnP{=Hd
zn^E&NV+04W6%S*bS>Ddl*ujHOun~X2J8&JV=y@w1!YA=r{1_j>MpkdaJdWZ8ya&r}
z_7>{E+vy*|D9++Ge9wRWH6~f#{-JRvUyQCX+lnVp1KvS)XjicZ|H593aUFg5BDUk_
z*n+l>Q$iFqK8f1UTd0K>F^<3b{pLzG$oe)+V>=$lHk?P@{uSg<b`4qEzQ;}Y8){<}
zRc6(=4Y@SyKrYAjA!o8a|M@U#{9~vMPv99`z<icQ8-cnT&m)_&Yq%Rrs0laR;%&si
z2Kr6t-~cMt)2QE{K!xx_?8F<`gf;B)E{vo4Y1BdHs=0si#fm(b513s-4rimcnjORm
z)XqObZrMKb`(OI~>$s8UC9K7NQ5&dbS4y_Ms2hC(m4pRUZhe5-(A665znMlkqZO-G
zd<rKqgNvBL*amOF0_yuOumg9ox`R)na_AN8!uL_h_cJP|syOapjG{I;j}BhW(`cbl
zLJin>o7scdg#-8|4&rsZAGZ^DooEtUaRFm^1$W|Fj;VQK*o}{)7JM6b;38_Hf1<|a
z>o$AIHiAmFM^RTkj?8HpWN&r~xePn!fBz{eB#WpV`4&UCgv@Ov?7}kQFo$t`9&exy
zJVGK7>b$*5L&<j<weV%s#9yIexP)798MUDX$7~PoK_%UB+=u5;C;bsMUzkC<kvMAO
zGpJm92?MAS*88uF*XyV2jZ^jNX#x#WQ6lPu$`ci3unP0oerk|fMpaQxs0>nd{W^%k
zv6ZS#?xI#vbu%iBtnbD}9dgPZpz3rgij%UHq;}tDg{PC+NBw`%b+43i8p<2RmfUmy
zi1bFOD8U`7Zc&Ao!14`z+)LFz++M1Ru3aVJ;U-)^ZG}fy%3EsWqgxd7`>2H5jjOJB
zrL@z~YqnC9u>2*sVe9oCYAWyVaXl*04iuKl$7=f1w*TQ#r^Ok{9dlbzr$1dBTm5?|
z*xgg;tsJW57YC=(Dfb77sqt*)=wv3HD$Z5D5ePZMnOt@}RfvRRL52;5Hw7zN+B)0X
zckYfBk5<nHB8lX4xoLli!PHDHne|t3zbO8({#3=9?jF`Wmdd7+Glkjukveb8KyoIR
ub^I}jsp)LynM}I)P5rxp%HiCRu~gQ1C^eltl1vv~h;)>D(_M^Q3j7C_R?&U{

delta 1650
zcmZA1T};h!9LMqR>7*z0peT}#L{H@OBqBo5$|kbNY%LbcbI}Fjv|%$37j_U?UAVBB
zG3|_D=E^+WVY6|OH7Xmn)|D-0-k<+D-T1BF|MmO*JLmuV{=dKP@0?#dQsMhNE&Qs{
z*3oCvH-worV`n%QwFt8*;KCY=#b|5{xeKQ=KY;Og8ugqjI0yT&7~f(lPKq?k!MT`a
z=CfJ`3%GG4^p75FVEzKzFg40-D_+7}9L8-JPZUMiidv`_=ixIf#6ir&#F*gyrKlI%
zf!X*RGg#lgG0+!cCI=%d$4cgnxE}kk8b@#mE+!oXxEu5FI_mqcPyvmj7S5k)R)O`X
z`4v=vPjEgCU<vD+JJu{5mmxvhN}P$+sFdx*X?O~GdAp1x$9j;M>=r7p`*;n9u^l_(
z2o^`ti|Oo-o?nOQxE*~S2FDp_4{xFu`!Nf@U>U|F1XEvyi<ln{&HGS+zCpIvzGAP-
z>^l;JolB&iup3E=4TT)T6y|>u$^Q%n$w|Ql^HF=*fF;<0DyF-r8hMQhU=;H)ji`%o
z12$n79>PIv!8#tU&p$%_e+WylGTF?7oyp{1#n8)*75EahM{dH)z%1O0HK>d{L=O&N
z0scjO-b)%b;TEjH+gOWZxCYB-1z)HOi<v*drTD|gAdf*N8?6V`;aWV3TJSOE;2<i{
z7}B9H7NKfpKWb0gkdN32WKHWvWwsxc`q!wM`GEY{0GAc$8)tBXL1~)VF?@%5vs(5+
z#d8w%fP1K|dCFxjenKty8<%4;6{Xs#$5nU+^#U(Y&-saZ(b=A0VAV*?_^gQmHRJ53
z9x%}qoff8eowksx_L7VnyW})&k(;jKQx?>CALqEKE|eh!qkvb^)fAL!DNGZce>Hvr
zoFl|;IBC;8YRoF=O6OF%j+);1|E9A{!8`k`<LRO6_drc4FL6e}Usz>UO&Qa6uh#lX
zj~b`KmN}!~MQ2{esEn=}P*ZKFsfg4lbf+%LkqkRqGzmGmPRk7`*jcLz%`35#?qp2`
zmFGVjvD3Y=<7nVd#Au}dS8SCt*&KJ#<!(K=$NwNcJK#x335zQ9mU)Zvyaj=Z#N)1r
t+Lrwt&Fz7YNf)C0htldN<^ySWT+wwc?JfJ74>TY2H>GC>-lsoy{R52-qP744

diff --git a/po/id.po b/po/id.po
index 1ca8461e5..5bc0c4543 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2011-02-26 18:09+0700\n"
 "Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -16,17 +16,23 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Gagal untuk mengawasandi citra JPEG"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "'%s' oleh '%s'"
 
-msgid "Failed to decode JPEG image"
-msgstr "Gagal untuk mengawasandi citra JPEG"
-
 msgid "Could not connect to server"
 msgstr "Tak dapat menghubungi server"
 
+msgid "No URL set."
+msgstr "Tak ada URL yang ditentukan."
+
 msgid "Server does not support seeking."
 msgstr "Server tidak mendukung pencarian."
 
@@ -47,9 +53,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr "Server mengirim data rusak."
 
-msgid "No URL set."
-msgstr "Tak ada URL yang ditentukan."
-
 msgid "Internal data stream error."
 msgstr "Galat arus data internal."
 
@@ -62,6 +65,9 @@ msgstr "Berkas ini tidak berisi arus yang dapat diputar."
 msgid "This file is invalid and cannot be played."
 msgstr "Berkas ini tidak sah dan tak dapat diputar."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Berkas ini rusak dan tak dapat diputar."
 
@@ -114,16 +120,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Tak dapat membuka divais audio untuk putar kembali."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Tak dapat membuka divais audio untuk merekam. Anda tak memiliki hak akses "
-"untuk membuka divais."
-
-msgid "Could not open audio device for recording."
-msgstr "Tak dapat membuka divais audio untuk merekam."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -143,6 +139,45 @@ msgstr "Perekaman tidak didukung oleh divais audio ini."
 msgid "Error recording from audio device."
 msgstr "Galat merekam dari divais audio."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Tak dapat membuka divais audio untuk merekam. Anda tak memiliki hak akses "
+"untuk membuka divais."
+
+msgid "Could not open audio device for recording."
+msgstr "Tak dapat membuka divais audio untuk merekam."
+
+msgid "Record Source"
+msgstr "Sumber Rekaman"
+
+msgid "Microphone"
+msgstr "Mikrofon"
+
+msgid "Line In"
+msgstr "Jalur Masuk"
+
+msgid "Internal CD"
+msgstr "CD Internal"
+
+msgid "SPDIF In"
+msgstr "SPDIF Masuk"
+
+msgid "AUX 1 In"
+msgstr "AUX 1 Masuk"
+
+msgid "AUX 2 In"
+msgstr "AUX 2 Masuk"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Loopback"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Loopback"
+
 msgid "Volume"
 msgstr "Volume"
 
@@ -245,6 +280,10 @@ msgstr "Gagal mengatur masukan %d di divais %s."
 msgid "Failed to change mute state for device '%s'."
 msgstr "Gagal mendapatkan kekuatan sinyal untuk divais '%s'."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Tak dapat mengidentifikasi divais '%s'."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -269,10 +308,6 @@ msgstr "Gagal kueri standar di divais '%s'."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Gagal mendapatkan kendali atribut di divais '%s'."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Tak dapat mengidentifikasi divais '%s'."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Ini bukan divais '%s'."
@@ -361,9 +396,6 @@ msgstr "Tak dapat beroperasi tanpa jam"
 #~ msgid "Line-in"
 #~ msgstr "Jalur masuk"
 
-#~ msgid "Microphone"
-#~ msgstr "Mikrofon"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -461,21 +493,9 @@ msgstr "Tak dapat beroperasi tanpa jam"
 #~ msgid "Telephone"
 #~ msgstr "Telepon"
 
-#~ msgid "Line In"
-#~ msgstr "Jalur Masuk"
-
-#~ msgid "Internal CD"
-#~ msgstr "CD Internal"
-
 #~ msgid "Video In"
 #~ msgstr "Video Masuk"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "AUX 1 Masuk"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "AUX 2 Masuk"
-
 #~ msgid "AUX In"
 #~ msgstr "AUX Masuk"
 
@@ -488,9 +508,6 @@ msgstr "Tak dapat beroperasi tanpa jam"
 #~ msgid "Microphone Boost"
 #~ msgstr "Mikrofon Boost"
 
-#~ msgid "Loopback"
-#~ msgstr "Loopback"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Diagnosis"
 
@@ -503,9 +520,6 @@ msgstr "Tak dapat beroperasi tanpa jam"
 #~ msgid "Input"
 #~ msgstr "Masukan"
 
-#~ msgid "Record Source"
-#~ msgstr "Sumber Rekaman"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Sumber Monitor"
 
@@ -545,9 +559,6 @@ msgstr "Tak dapat beroperasi tanpa jam"
 #~ msgid "Input Mix"
 #~ msgstr "Mix Masukan"
 
-#~ msgid "SPDIF In"
-#~ msgstr "SPDIF Masuk"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Mikrofon 1"
 
diff --git a/po/it.gmo b/po/it.gmo
index ed38e50b7fb2cbcdbbbfa8f239d70a1a50ef1df2..af6eced5f56416ce9331fbe5d3e141cd0dc16957 100644
GIT binary patch
delta 1771
zcmZY9OKenC9LMp0r!7-TEq&0TP+BepDQ(r#fdOobly;C%#a3yR1;&(Stdr`!Ft#BO
zV34FSJQ4{5Y)BvtVF4i_GWdwWbmhVg2^bO+r6xkyXj~AZ3l{qQ-FwH4Cpq&u=l0(7
z`2WvozW1lT>|9OBd82HnE~5@d%trBa2|tvod1e(@jRV+(WthhKm<jub!~QhZ@%%Ha
z!mFrpzr-f|0oUVGY%t4OOVq5D2mRQBAK_{|A3nc>Z_|H*`*Aa~zk@fi4Wq1LH^y-t
zo<dDDi>q)BS7LE_u(1|gL;nOeGr!%U5$C}JWJOlCAc)2)+(7?B?8GbhlHNnTUqV<k
z;YQR%6WEJq!u~zf#D8G|mp;cgIE1XpMsNZ1+j}&Y-~?&`)5vCR1{LaS$lB~y`21UB
z4fY*sf%otNmQ|7tyo?=Kv(St`Ss$*&A=G%EpcZfvv&(6mqv7CfRPG+2KKKn=a2bj0
z!X&m~7GK2cVgE<e28yfANUJsC!6Kr9{K+oWut~g$TEN2EU;*{D#9t4Z!w2oC+$E5A
zZ5TD-I5y*19KbJd1=^xur_C6r`xYuy)7XPw;UWAJkE6%#_Tf|9jAJq4zn{iT%&Z%0
z7YB!N5H;XI)POheD9)jF{%*b53wR1&#jjBd{Rj788{rtiPw`EBh}*GaY2bm-*(?p^
zFiPV0;wz|?&EQ7-1$W|N?vNstLWS7Ha-2d%<`_PYS5WVLkIM1=(4SFf>Io{vf1o0n
zEon5nOJfi(ViWP#j=w>IV!xvnQp`coz}={UleiAwz*antO34k}hIcW6iyStE1E~H9
z)OfRjS^JxYu1^PFYiGk)gzZ#aw?a`=IM`NQcz_DIzAcnK8pTvCR5zrX%0~SNX;Y=t
zUaCXgLS_F!*t%#&{0G4gS2nn_NJ{<NplG~IC6&g-@UIrx`CrkU=X_c}RVh+5bVgJZ
zx%GZ4I7c1K@0T8a*|=YHuvC<%P1M!uQ1s73*GUIc*HQ;+D^*3QP~m*)QurY!1O9DN
z-gTRj)HT#XA>;mL{IKhx4x)<k)0#U{y0>nJYg<QlJDtwp)TG~vJ3HL`uceRYMf#Ju
zI~6@K-grIjru-LnrpGegz7IS%m48-ox+v=G@}@Flsob&3O%Xo(ymCpTtTWM-*wDT<
zp1)r;QB;>MjPLz7e%j6V*1R^qyg%ur-N{tO^>Qa0hGM*_c}5+*=}+{&=X&{v4bez!
hmzNn&@vf6eji*1J%#0pNvxeNG#w`&>YiO#E{0ldWzQ6zg

delta 1501
zcmY+^OGs2v9LMp$Gv=!%-&#J>tSsN7<|8$mLKCzw!R$d03Pw~=mO&OZ8oKHw4Aw$g
zxT$F2!dbYnO^cu;gD4~lH(3!>8*69K_jhNEI(X)D&voXWbN>JTx$pM`eg1`{$T6e&
z=vnG6vm-K+58B`=vo$z`t#}(_@m<)Dn9BG&CZIbi^qdsjz_=W@;{nXX5iGz7+-l~x
zSuXOqu@wGCMzmQM<0kCGaXf^c7_&m`#ltv?mG~7kQ8ugEj19O6yRjQba2tNXJWPl)
ztH4UkWPUrrMGH5sV>Q0Oa*SAQR;n+ee$a!Oa11rkbM)bl@VJaHY2r?-!b_+iP9k$#
z5ZB`qR3zpxhWTxY3pQ!X$g?cc6Iw_D-euf^=Wzkcuw$*67l%*}p28fQ!Cd@+O3823
z_mbnCP+Jq$F+PKZ_z?XiT)Yn7Py)5WA|xBui~|v7`;b3-mS}by=TQ^aB!%3KN<ka)
zXQ%kk1XocZe}t_#iyJX5Ikb`5Wa3}Jjg#C^$j7k(U*ctqOCc>dg6A-XZSBMX?89lS
z$AYv_QT3vpcL(*nr+5v2qBeRV-K-cVa4*iK6MwBVb)DHU^x;9gj~%##s*PsCB5#F#
zi`9&?GpGyfL@jI@Yw#ED#}X1vecBaNM2Arkxq(}7($9rL`36-33&^JIGb&`uIEO8q
z&2dc24()6THPIsK_gTch67#VDkD@|7jLrA}tMD5(VjcyfvA>%OJ?LK8SE%Za&JC@&
z7%2fKe5wsK)?@_6`CT36(^r~~S}whau83%oe;YOaw|RB`>lsq0Mv9Dgh`H#b+b98J
zbLOL~CRQ5jb9SJyc1kMsB5}eDwo4!3rWcPpe66VJc>dq~p?v73D!h!YG$^FXPbs~Y
z?xB+bCx<GaIQkB{YDdvhs5wMVQvoK@b(B|{QbS2NMX7fJ2f=C8Dh^U&7Vt#%xZ5xG
z2Zy5;qXPY&3TH6mxfv1YiZ2h2#wWRAD!g^x$|7%h@Nwel2=`gOT$tPz8yL)LcLtxb
PqFn)ZPGhh&C(-o>;4O>4

diff --git a/po/it.po b/po/it.po
index 8affa746e..996611524 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.25.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2010-10-25 10:11+0200\n"
 "Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -16,17 +16,23 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Decodifica dell'immagine JPEG non riuscita"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "«%s» di «%s»"
 
-msgid "Failed to decode JPEG image"
-msgstr "Decodifica dell'immagine JPEG non riuscita"
-
 msgid "Could not connect to server"
 msgstr "Impossibile connettersi al server"
 
+msgid "No URL set."
+msgstr "Nessun URL impostato."
+
 msgid "Server does not support seeking."
 msgstr "Il server non supporta il posizionamento."
 
@@ -48,9 +54,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr "In server ha inviato dati errati."
 
-msgid "No URL set."
-msgstr "Nessun URL impostato."
-
 msgid "Internal data stream error."
 msgstr "Errore interno nello stream dei dati."
 
@@ -64,6 +67,9 @@ msgstr "Questo file non contiene alcuno stream riproducibile."
 msgid "This file is invalid and cannot be played."
 msgstr "Questo file non è valido e non può essere riprodotto."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Questo file è alterato e non può essere riprodotto."
 
@@ -117,16 +123,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Impossibile aprire il dispositivo audio per la riproduzione."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Impossibile aprire il dispositivo audio per la registrazione. Permessi non "
-"sufficienti per aprire il dispositivo."
-
-msgid "Could not open audio device for recording."
-msgstr "Impossibile aprire il dispositivo audio per la registrazione."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -146,6 +142,45 @@ msgstr "Questo dispositivo audio non supporta la registrazione."
 msgid "Error recording from audio device."
 msgstr "Errore nel registrare dal dispositivo audio."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Impossibile aprire il dispositivo audio per la registrazione. Permessi non "
+"sufficienti per aprire il dispositivo."
+
+msgid "Could not open audio device for recording."
+msgstr "Impossibile aprire il dispositivo audio per la registrazione."
+
+msgid "Record Source"
+msgstr "Sorgente registrazione"
+
+msgid "Microphone"
+msgstr "Microfono"
+
+msgid "Line In"
+msgstr "Linea in"
+
+msgid "Internal CD"
+msgstr "CD interno"
+
+msgid "SPDIF In"
+msgstr "SPDIF in"
+
+msgid "AUX 1 In"
+msgstr "AUX 1 in"
+
+msgid "AUX 2 In"
+msgstr "AUX 2 in"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Loopback"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Loopback"
+
 msgid "Volume"
 msgstr "Volume"
 
@@ -247,6 +282,10 @@ msgstr "Impostazione dell'ingresso %d sul device «%s» non riuscita."
 msgid "Failed to change mute state for device '%s'."
 msgstr "Recupero dell'intensità del segnale per il device «%s» non riuscito."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Impossibile identificare il device «%s»."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -280,10 +319,6 @@ msgstr "Interrogazione di norm sul device «%s» non riuscita."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Recupero degli attributi dei controlli sul device «%s» non riuscito."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Impossibile identificare il device «%s»."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Questo non è un dispositivo «%s»."
@@ -381,9 +416,6 @@ msgstr "Impossibile operare senza un clock"
 #~ msgid "Line-in"
 #~ msgstr "Linea in"
 
-#~ msgid "Microphone"
-#~ msgstr "Microfono"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -485,21 +517,9 @@ msgstr "Impossibile operare senza un clock"
 #~ msgid "Telephone"
 #~ msgstr "Telefono"
 
-#~ msgid "Line In"
-#~ msgstr "Linea in"
-
-#~ msgid "Internal CD"
-#~ msgstr "CD interno"
-
 #~ msgid "Video In"
 #~ msgstr "Video in"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "AUX 1 in"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "AUX 2 in"
-
 #~ msgid "AUX In"
 #~ msgstr "AUX in"
 
@@ -512,9 +532,6 @@ msgstr "Impossibile operare senza un clock"
 #~ msgid "Microphone Boost"
 #~ msgstr "Incremento microfono"
 
-#~ msgid "Loopback"
-#~ msgstr "Loopback"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Diagnostica"
 
@@ -527,9 +544,6 @@ msgstr "Impossibile operare senza un clock"
 #~ msgid "Input"
 #~ msgstr "Input"
 
-#~ msgid "Record Source"
-#~ msgstr "Sorgente registrazione"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Sorgente monitor"
 
@@ -570,9 +584,6 @@ msgstr "Impossibile operare senza un clock"
 #~ msgid "Input Mix"
 #~ msgstr "Mix ingresso"
 
-#~ msgid "SPDIF In"
-#~ msgstr "SPDIF in"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Microfono 1"
 
diff --git a/po/ja.gmo b/po/ja.gmo
index 12ee8afe0f75110eb0d656ae76d5f553af88a02d..6083abbe567857cc4f3b64a10bd3b6f7f4836668 100644
GIT binary patch
delta 1960
zcmZwGTWnNC7{KxA(y~%|S$oBD*+W|jrMB#)t-V8Uk<!{$5Jey)NEc|ttrm*Kn6&On
z0jXl0QcVh8A{a2y1{Xm^kk}X!6ZAo!L?n8$NeK@^e6bRu|L^Q+qKT7y`#Upx&Ro8k
zxwQF0>%cE*@kbS<nOHzHIh5LpyW;tw+)hwx4c@`~ux7SWbFdku-eK1_U?%ma(1rcD
z2oGT?p2GQf9Sd<9mnt=&@|;Q)(9nwVM=w5($M8A)1E0VEqb<jaxB;iokM+z(2I|8+
z97P{~hWU8QZg(Zd7FLSOXdlB|##dkQARqjOGQ-TdN<EBTT#fs%9KS{{PNTeEloXr5
z7F<RB4P1ghU>Q!MBymM@EMuj}r>YJgz%@9Z@l_WOX*h^1R%v8$Y8;u9I$^g@pmcB^
zWkQoUhJRr%j-)Uc#-}PplPX0IHlXyk8%c(G5#2b10|pNt@E|W<!KL^oR-wU0F2_w+
zj6-()EXoRQAls;>@md@Y_bas>er7c?(Z=+c9k!cncc6^3JDvPX%ExK&;CXDoDU`h{
z%7~@76Q%uS+bbwrlgNoXhU@TKyp6Bog{;{7E!na9Fv=OqnHO77FV<2&K9Bs%AJ=G*
z8{lVIHMkEi<2l@n&*v!hDE^48Sir1Huooru@7ZQ>g`~d&_$1!2ty~!UUZeCE#g*7F
zz|jrz5JK6TJ1A%2F3O&zuu+nUY?PGMpk%BI*(Eh-`#Q3C^)7Pm)H#&zCUFN&;XUj$
zSOm5&R_ZYv$jgm&)Q=l!IEb=$rtR;zlKNe&!D{Z9eAthYk*l~D-Hg_bV<`VeQMRax
zD<NAOMmZ~IQI1L>@u1xQe;1j#tV)Wkb{WCWD7MckOj<bzCn4FALrR9NdoP2;6Lo|^
z%oN76GV#z%1In!`C30kZ&Wd$yGO&VR%dP7pS&&r!U*VvudZLnOB;+hekuCFEPaIy9
zTO*~KAc1NXAva12XZ*kGpG7@|@Dc??Ga;#$;)`MJv7C=u!cA~Yth90its5d+G*dWZ
zs)<Oj8_I0UZB@My)OTjLXSM`Y{rU}t*XZcmV?FtdmY{BMRz}`(?wF<P=GN-TxwrJS
zqy_qFa*|%1d|CTbeELetHr<ihtgokTcQiKXN>@h~J+*ZQ16D_mbZ_hJd3I+{Fc3NH
z8jf=s>w5Znw*|B-t-?X~^=WMpce+1LpUEhi<0<iaN_-V1KK*M(XR)`es;s=o<MVhD
zJ3ETk2KILE?(PW|H*MV$s4{#WueaD!QS7TQeEzDkO1&lX@1(Y#r?>9vej#9ZO8mMz
zt3Z!uJ(IBiWb~DB9haT%*nd(dX0MMN&K^n7qYDQYhR&Fw6J~hC3~Mv|p&1@BL+_g}
zeH=Y97QOVQ{?45r`DxM4IDOEl*6qgZh<kB$oW7U4Q6JBn&`0uHb=Q*b6Q)K#Wzj1N
z_7qv;C^LN8>NFBP@CD;ie_QII2{ZhW89r);PMhIK<W#|=!*z4`lbi2E%+N(M{G}QC
eTxoY<o_?*c&Ytl%g@+?+i>e(?Ub=bUi24UygfTM!

delta 3310
zcmb8vdr(x@9l-Geios<O<e|tzt|C4HZeT@?7?b!QYK($aL)&rMtn3B0!Y=GCTGLwG
zT@w-Ud7{?nRE?N4T8%TbzBTFC=8yi<+UZPYl1b9cbx~)MOs5&!OfpUT{oMtM)5#w_
z!*4(Laqd0m{Lb%kZN<&?ogZb5Jg8`^i9(_`S*cbmPvM95*HKD2@e_O&KgZEH?~#Oy
zF_-g|n28N2?+N2X+>cdw0ShpWGcYMtscA}esxl6ya$yb1jTiBG?8SEc8tbu@Q6I(M
z<9G3II186M5(90;63&mI8{ff4@e9nxiD^nrK{rajdMsdk^%D-txNsOfcnhavDa)RW
zt59Cpj^)^kvXa}l1V6*2=uTH^8NP^f@D|DhzQRf@9g}!ZJ-RsWmUG5eS2&QBe2Owd
zBSWdDu?FS*Wt178#Zvqu&c+8g63fUt$xszI0jp6axE8ap4N0PkA=y_w$Qsov*eNqT
z!NDPX4}<6*tJGuo30B}(-Xa4m!eV?54QxT#``!2yp2GQPp*&Yi-q~YSht>FFl#KM@
zO#CRD{L2MrPGaVBQO;N6Ec_`_Z|VZRm!#Asl$q}xr&J>zMLAC%pKuJyfcYpHScGNx
z1C$AM<08C<lG$&@lYbegBrkEJe!y2z_VPnKhEvJwAMh6L#y$Co{)LPp=Rd@H{0wCQ
zHGBdKunpz<d0d5~iW0T84r@67StkciaPT{vhe>=hbvPfdVh^szrR04z_Tmcs2g(Z;
z8Hr-*!gZWq!XTzkO1KSW0$-pkXayDhJ$z-r&d)iJ7cHa0<i;M9f$pKCs+v5>1h(Qc
z_&&<@NmSxf=tV#FqSQz>-!j{;icnHqfwCp*P_|?%Qn%^|^5Jx<H#v}w7qJOHz<=Rl
zp85+eoK7X<xEV@)A2*`x`MW3+_%lidv&j1#ti>?CjFOSBQJ!B-A;`jB$4&Spu9ELR
zP@d>;6D392l%^ERdXxutqonX-9EEdTY!fms`yZF|kyb@WW*(Olnrx%AM+lj4GQnKz
zIv9=e-%-Z5SD%hjh)W1*IRwRR|D%vkY$PF##oF7&?x=-CD)Ah#fEaAgav-UemPsrp
z3W*T}YqUS@$tbN;R_Y|?6V#ynou*(VF`gJ~6#P)*|CBNa$;L`TnuAzMJV{UrL(R?6
zY(k2Auu+SHt<(PB%vWZ&T7G2<*n0cBl|qp{9p2alHJ4aH$i7PrOdy^iq>Uw>mIIm;
zqO@XSu^db*4NWsPY%xT&(D0l3LCVSzwH;wyKWbjC&ujX_zQ!$v*WBc5FzsHhzOGS$
z5pHk53>p4F*a&sBwFQD<V-uYNMuVp<+z~X@lK(zn_(H~pj?fmJ;TU(oQKd5-xhdfe
zzZukSN4dV?NY&Mjcy2?p$KPZctsP<02!%cTHU@&a&Y7o+(+aCie@Cksl&fulP{_BT
z#T*!qPOYABX!rz~gWuR32yQes`@+row`t?`(zJI9gC4IhVEFuP9bqHjAO3*L&|ju4
zObwagu+QHV(qo)u*&$z(-_ycOf~LPI+&nay+0G_Mdxsg^!rFtadZn{KA9L0u`~3Qj
zvm{ln4R!s{`6In1y+)GRcRsx*NiWN&)X|KZ&NXImlNmHZ<kr~W@fu!F*yB=bn@z(T
z^vRt-<M8Pj|C4Hue~YovAK2_Sme(4sX1F=v{Xd@13L9a@8hX?y_4d7+QI)jb-oSyK
zZU}U=c<udd2%3`j4IPb*Osy>tXmP3Mhj;b*5*<Aa4Q5-I654Du20g8&Vei*KR`owK
zT`85W3fC;{8e2EhT~S>ztE{53qQX&EJM%jfOUM`S&s@St)rPyG(mj(ux0}Q2%31pC
z*nd0g0;bm&HY#1ST~+#G*3>k+a?9<K)E{K|lXqOz4cY7RVmqwZJ}cU5MXyK?D|+DW
z&MWcruj=-koW9H1`&05`+M-kRj1@g+#ZFnV!&WRJ2hjt%&KRd#N>cUvdFh2O$kUOx
zEV@T8Te0hRyD#>?w9AUTVMUH;_k_b^<Q@;6=AISn)+Z+9>LYoXMfSX`$oYG*8}aU=
zyfwb}Q2gd$p0c95^f&nna=-1)ls-p(bCUkJFk=!QC9kkz#|PivH8}kFc<;{sqrcX-
z3vzXP!4p;XA|pL_ZXD}Bea@cUZpM*W+l!3fcrAW?FYoF<c)^Nv-MQRtMGnZreJ2W5
zCFu(Vqcg17o3g^_nfObmnXzs!dQ5*>*sQ-QT$P)c$DOxN#`j+0CGqS09vtW~Mz1Y8
zm0`b;neMS-XRX)?``+J+>R3g7PU3~7l~cU3ntQ)IC;M=_AWuJDlqo}J4L$bo?S&Kn
zr1Oj0Qg&QrK7GF_zLl)YCzt56lb_TNCU4i}IirhM@#Wq9=T2FXGqO;&Ao@1BzP~NP
zWc7@q;w6JA+-a|`SE?fN*4^W$t>{iG+G9mtw<6mmQ~XBwr5tuGueD+)t>_Ia7PDgX
ziVhS+y8cC8b_t7o=v@!@F7*yCpn0XaeLW@9ljjU=ggwiF!nDh3pFPS!D|*r{L2BqM
zZ;*ZL+NXPR3tmv)@@!B4A-0l&+HS=TTCrc*^><?MpevDPyYA?-|IW3a^J_(JS`ms-
QTic@Q{_(#1JNByo0A<Hp#Q*>R

diff --git a/po/ja.po b/po/ja.po
index bf2f628de..431ea8819 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -3,33 +3,39 @@
 #
 # Takao Fujiwara <takao.fujiwara@sun.com>, 2006.
 # Makoto Kato <makoto.kt@gmail.com>, 2009-2011.
-# Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>, 2011-2012
+# Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>, 2011
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good 1.0.3\n"
+"Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
-"PO-Revision-Date: 2012-12-22 20:13+0900\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
+"PO-Revision-Date: 2011-08-28 23:59+0900\n"
 "Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
 "Language: ja\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.5.4\n"
+"X-Generator: Lokalize 0.3\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#. TRANSLATORS: 'song title' by 'artist name'
-#, c-format
-msgid "'%s' by '%s'"
-msgstr "'%s' , '%s'"
+msgid "Jack server not found"
+msgstr ""
 
 msgid "Failed to decode JPEG image"
 msgstr "JPEG画像のデコードに失敗しました"
 
+#. TRANSLATORS: 'song title' by 'artist name'
+#, fuzzy, c-format
+msgid "'%s' by '%s'"
+msgstr "対"
+
 msgid "Could not connect to server"
 msgstr "サーバーへ接続できません"
 
+msgid "No URL set."
+msgstr "URLが指定されていません。"
+
 msgid "Server does not support seeking."
 msgstr "サーバーはシークをサポートしていません。"
 
@@ -46,11 +52,9 @@ msgid ""
 "A network error occured, or the server closed the connection unexpectedly."
 msgstr "ネットワークエラーが発生したか、サーバーが予期せず接続を閉じました。"
 
+#, fuzzy
 msgid "Server sent bad data."
-msgstr "サーバが不正なデータを送信しました。"
-
-msgid "No URL set."
-msgstr "URLが指定されていません。"
+msgstr "データストリーム (サーバープッシュ型)"
 
 msgid "Internal data stream error."
 msgstr "内部データストリームエラー"
@@ -65,6 +69,9 @@ msgstr "このファイルには再生不可能なストリームが含まれて
 msgid "This file is invalid and cannot be played."
 msgstr "このファイルは不正なため再生することができません"
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "このファイルは壊れているため再生することができません"
 
@@ -120,17 +127,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "音声デバイスを読み取り用に開くことができません。"
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"録音用にオーディオデバイスを開くことができませんでした。デバイスを開くための"
-"権限がありません。"
-
-# SUN REVIEWED
-msgid "Could not open audio device for recording."
-msgstr "音声デバイスを録音用に開くことができません。"
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -150,6 +146,47 @@ msgstr "このオーディオデバイスによって録音はサポートされ
 msgid "Error recording from audio device."
 msgstr "オーディオデバイスからの録音時にエラーが発生しました。"
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"録音用にオーディオデバイスを開くことができませんでした。デバイスを開くための"
+"権限がありません。"
+
+# SUN REVIEWED
+msgid "Could not open audio device for recording."
+msgstr "音声デバイスを録音用に開くことができません。"
+
+msgid "Record Source"
+msgstr "録音ソース"
+
+# SUN REVIEWED
+msgid "Microphone"
+msgstr "マイクロフォン"
+
+msgid "Line In"
+msgstr "ライン入力"
+
+msgid "Internal CD"
+msgstr "内蔵CD"
+
+msgid "SPDIF In"
+msgstr "SPDIF入力"
+
+msgid "AUX 1 In"
+msgstr "AUX 1入力"
+
+msgid "AUX 2 In"
+msgstr "AUX 2入力"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "ループバック"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "ループバック"
+
 # SUN REVIEWED
 msgid "Volume"
 msgstr "音量"
@@ -186,29 +223,31 @@ msgstr "デバイス %2$s から %1$d バイト読み込み時にエラーが
 
 #, c-format
 msgid "Failed to enumerate possible video formats device '%s' can work with"
-msgstr "デバイス'%s'が作業できるビデオ形式の数え上げに失敗しました"
+msgstr ""
 
 #, c-format
 msgid "Could not map buffers from device '%s'"
 msgstr "デバイス '%s' からバッファをマップできません。"
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
-msgstr "デバイス '%s' のドライバはIOメソッド%dをサポートしていません"
+msgstr ""
+"デバイス '%s' のドライバーはよく知られたキャプチャーメソッドをサポートしてい"
+"ません"
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
-"デバイス '%s' のドライバは知られているいかなるIOメソッドもサポートしていませ"
-"ん。"
+"デバイス '%s' のドライバーはよく知られたキャプチャーメソッドをサポートしてい"
+"ません"
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' does not support video capture"
-msgstr "デバイス '%s' はビデオキャプチャをサポートしていません"
+msgstr "デバイス '%s' は出力デバイスではありません"
 
 #, c-format
 msgid "Device '%s' is busy"
-msgstr "デバイス`%s'はビジー状態です"
+msgstr ""
 
 #, c-format
 msgid "Device '%s' cannot capture at %dx%d"
@@ -223,43 +262,52 @@ msgstr "デバイス '%s' は指定されたフォーマットでキャプチャ
 msgid "Could not get parameters on device '%s'"
 msgstr "デバイス '%s' 上のパラメータを取得できません。"
 
+#, fuzzy
 msgid "Video device did not accept new frame rate setting."
-msgstr "ビデオデバイスが新しいフレームレート設定を受け付けません。"
+msgstr "ビデオ入力デバイスは新しいフレームレート設定にすることができません"
 
 msgid "Video device could not create buffer pool."
-msgstr "ビデオデバイスはバッファプールを作成できませんでした。"
+msgstr ""
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get settings of tuner %d on device '%s'."
 msgstr "デバイス '%2$s' 上のチューナー %1$d の設定の取得に失敗しました。"
 
-#, c-format
+#, fuzzy, c-format
 msgid "Error getting capabilities for device '%s'."
-msgstr "デバイス'%s' の能力を取得する時にエラーが発生しました。"
+msgstr "デバイス %2$s から %1$d バイト読み込み時にエラーが発生しました。"
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is not a tuner."
-msgstr "デバイス '%s' はチューナではありません。"
+msgstr "デバイス '%s' は出力デバイスではありません"
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get radio input on device '%s'. "
-msgstr "デバイス '%s' 上のラジオ入力の取得に失敗しました。"
+msgstr ""
+"デバイス '%3$s' 上のコントロール %2$d の値を %1$d へ設定することに失敗しまし"
+"た。"
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to set input %d on device %s."
-msgstr "デバイス '%2$s' 上の入力%1$d の設定に失敗しました。"
+msgstr ""
+"デバイス '%3$s' 上のコントロール %2$d の値を %1$d へ設定することに失敗しまし"
+"た。"
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to change mute state for device '%s'."
-msgstr "デバイス '%s' のミュート状態の変更に失敗しました"
+msgstr "デバイス '%s' の現在のチューナーの周波数の取得に失敗しました"
+
+#, fuzzy, c-format
+msgid "Cannot identify device '%s'."
+msgstr "ミキサーデバイス'%s'を開けません"
 
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
 "it is a v4l1 driver."
 msgstr ""
-"デバイス '%s' の能力を取得する時にエラーが発生しました: v4l2 ドライバではあり"
-"ません。v4l1 ドライバでないか、チェックしてください。"
+"デバイス '%s' ケイパビリティの取得時にエラーが発生しました: v4l2 ドライバでは"
+"ありません。v4l1 ドライバでないか、チェックしてください。"
 
 #, c-format
 msgid "Failed to query attributes of input %d in device %s"
@@ -269,18 +317,14 @@ msgstr "デバイス %2$s 内の入力 %1$d の属性のクエリーに失敗し
 msgid "Failed to get setting of tuner %d on device '%s'."
 msgstr "デバイス '%2$s' 上のチューナー %1$d の設定の取得に失敗しました。"
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to query norm on device '%s'."
-msgstr "デバイス '%s' 上のノルムの取得に失敗しました。"
+msgstr "デバイス '%2$s' 上のチューナー %1$d の設定の取得に失敗しました。"
 
 #, c-format
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "デバイス '%s' のコントロール属性の取得に失敗しました"
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "デバイス'%s'を特定できません。"
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "これはデバイス '%s' ではありません"
@@ -298,9 +342,11 @@ msgstr "デバイス '%s' はキャプチャデバイスではありません"
 msgid "Device '%s' is not a output device."
 msgstr "デバイス '%s' は出力デバイスではありません"
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to set norm for device '%s'."
-msgstr "デバイス '%s' 上のノルムの設定に失敗しました。"
+msgstr ""
+"デバイス '%3$s' 上のコントロール %2$d の値を %1$d へ設定することに失敗しまし"
+"た。"
 
 #, c-format
 msgid "Failed to get current tuner frequency for device '%s'."
@@ -310,9 +356,9 @@ msgstr "デバイス '%s' の現在のチューナーの周波数の取得に失
 msgid "Failed to set current tuner frequency for device '%s' to %lu Hz."
 msgstr "デバイス '%s' のチューナーの周波数の %lu Hz への設定に失敗しました"
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get signal strength for device '%s'."
-msgstr "デバイス '%s' の信号の強さの取得に失敗しました。"
+msgstr "デバイス '%s' の現在のチューナーの周波数の取得に失敗しました"
 
 #, c-format
 msgid "Failed to get value for control %d on device '%s'."
@@ -347,11 +393,15 @@ msgstr "実行時の解像度変更はサポートされていません。"
 msgid "Cannot operate without a clock"
 msgstr "クロックなしでは動作できません。"
 
-#~ msgid "Could not establish connection to sound server"
-#~ msgstr "サウンドサーバーへの接続に失敗しました"
+#~ msgid "Got unexpected frame size of %u instead of %u."
+#~ msgstr "予期しないフレームサイズ (%2$u ではなく %1$u) を取得しました。"
 
-#~ msgid "Failed to query sound server capabilities"
-#~ msgstr "サウンドサーバーのケイパビリティのクエリーに失敗しました"
+#~ msgid "Failed trying to get video frames from device '%s'."
+#~ msgstr "デバイス '%s' からビデオフレームの取得に失敗しました。"
+
+#~ msgid "Failed after %d tries. device %s. system error: %s"
+#~ msgstr ""
+#~ "%d 回リトライしましたが失敗しました。デバイス %s。システムエラー: %s"
 
 # SUN REVIEWED
 #~ msgid "Bass"
@@ -376,10 +426,6 @@ msgstr "クロックなしでは動作できません。"
 #~ msgid "Line-in"
 #~ msgstr "ライン入力"
 
-# SUN REVIEWED
-#~ msgid "Microphone"
-#~ msgstr "マイクロフォン"
-
 # SUN REVIEWED
 #~ msgid "CD"
 #~ msgstr "CD"
@@ -497,21 +543,9 @@ msgstr "クロックなしでは動作できません。"
 #~ msgid "Telephone"
 #~ msgstr "電話"
 
-#~ msgid "Line In"
-#~ msgstr "ライン入力"
-
-#~ msgid "Internal CD"
-#~ msgstr "内蔵CD"
-
 #~ msgid "Video In"
 #~ msgstr "ビデオ入力"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "AUX 1入力"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "AUX 2入力"
-
 #~ msgid "AUX In"
 #~ msgstr "AUX入力"
 
@@ -524,9 +558,6 @@ msgstr "クロックなしでは動作できません。"
 #~ msgid "Microphone Boost"
 #~ msgstr "マイクロフォンブースト"
 
-#~ msgid "Loopback"
-#~ msgstr "ループバック"
-
 #~ msgid "Diagnostic"
 #~ msgstr "診断"
 
@@ -539,9 +570,6 @@ msgstr "クロックなしでは動作できません。"
 #~ msgid "Input"
 #~ msgstr "入力"
 
-#~ msgid "Record Source"
-#~ msgstr "録音ソース"
-
 #~ msgid "Monitor Source"
 #~ msgstr "モニターソース"
 
@@ -582,9 +610,6 @@ msgstr "クロックなしでは動作できません。"
 #~ msgid "Input Mix"
 #~ msgstr "入力ミックス"
 
-#~ msgid "SPDIF In"
-#~ msgstr "SPDIF入力"
-
 #~ msgid "Microphone 1"
 #~ msgstr "マイクロフォン1"
 
@@ -712,8 +737,11 @@ msgstr "クロックなしでは動作できません。"
 #~ msgid "%s Function"
 #~ msgstr "機能"
 
-#~ msgid "Got unexpected frame size of %u instead of %u."
-#~ msgstr "予期しないフレームサイズ (%2$u ではなく %1$u) を取得しました。"
+#~ msgid "Could not establish connection to sound server"
+#~ msgstr "サウンドサーバーへの接続に失敗しました"
+
+#~ msgid "Failed to query sound server capabilities"
+#~ msgstr "サウンドサーバーのケイパビリティのクエリーに失敗しました"
 
 #~ msgid "Error reading %d bytes on device '%s'."
 #~ msgstr ""
@@ -723,13 +751,6 @@ msgstr "クロックなしでは動作できません。"
 #~ msgid "Could not enqueue buffers in device '%s'."
 #~ msgstr "デバイス '%s' からバッファをマップできません。"
 
-#~ msgid "Failed trying to get video frames from device '%s'."
-#~ msgstr "デバイス '%s' からビデオフレームの取得に失敗しました。"
-
-#~ msgid "Failed after %d tries. device %s. system error: %s"
-#~ msgstr ""
-#~ "%d 回リトライしましたが失敗しました。デバイス %s。システムエラー: %s"
-
 #~ msgid ""
 #~ "Failed trying to get video frames from device '%s'. Not enough memory."
 #~ msgstr ""
diff --git a/po/lt.gmo b/po/lt.gmo
index 301af7d7e217ba52fdbd30dd3aa60f5893772a56..ac391807a57a09f20b9228c0a6a4ce290167d6ca 100644
GIT binary patch
delta 1659
zcmZA1Uuc_E7{~D^X}flIbzQ3ctJ~}Tv~IP3(yr@YwX<ScSkW=6b9XVO^wpYlNw*Q$
z$P_lgi&CiV&^bn6Lm0R*GMG3fGFk*tCc7%E+f)QWy;XNH(C_cf+g^C+>F1o&zB%VS
z&+}%b`$Av#eyDifXoK{p)PrVk%3^-ePL`N$!1u8XXK+29@#i^zehHss{Tf!{cc{<1
zi<|Kw?#7yRW(~Lxo6NE{!Jv_aS=@=&@pb$e4`WZM*&BEXcVUoI9K;sv#M8JPzrt<!
z0HavMDWAnSZp9hwz^kYO{E89wH+#%%4-8`%v)GDPQ4jot+Ni3$uu%jDnNRxjFHjrb
z!7lt86};yN8+%w7S+aht!wBjCQ7qN|Cm3*OJB93JGx`I5f;w0Z7jPL<n5-~s!(Wge
z3q5Yujt=T`_M<jF<gdStgxcn@4{zcwe2Cc=2HQ3k7WSh~cpQnoElBF&oWFiylNrz0
z*T|Cn;Lq>*^FL8F@Ca)$6e?`ojH-nL7{Mu2O1=ycf1T_u3kqFP6=B0(9K~@Q$7?u-
z4Ns7FJdCP|^VpC7U>kO_yCM<81b&P?SX5o8u>n*>W4Hr9ttS2|rf*mn#JU=@0X&4e
z@r*zJ9($Ru=USaOghO}?webz?z&~&VHxovsasri-v_C(NTbO_7`+1guUYBo?sM#{=
z!QXxV!dIAEJ-2}fPT>lwx<{!bf@4Qf^N&y|%A-<r3y1LzHev&LPy}AWX3S<7s2DE#
z3qPXX*GH(6H#}_?z*ah!^BQ{_0r5iHhYICtQ#y4+efaZqMMq6(Q-rjaS{FU6_rITk
zPOPS)quz{kdbi>X)=eLvuQna-1%IL&lR58Zs(7XBMfz&fO?3%1O2I2SZ?g7_{6FJQ
zlm_KiO)1cqii&BFUO^{<-fO7>)%)B_-$~cI@6Z+Q)uvSPwyw1zMr6|X67;?ssP{tC
ziHUHbHSI_@Id5egX?w>GI$>ud;SXLtGVP5zSjzufe0E)M=;gWD@_}mpW1pLdJNk!F
zH<n6HO(YZX{O$6Sfl}u{@<=KcpBt{|3G!H`;#Qz6+|}2$r@6f&KeRCyC|kU8G@hPz
z({uMKYl4ec^1oGnR$Ahw9X|X-?cSEf%W*dmO-#Gaq?>TxiQ33g?td$z?z^evcrp=9
n=Wo}35U5(boQf{xGVdjwrCfA!n#a;}uhqA&?Uc{d#{&NWq~gQf

delta 1378
zcmX}sOGwmF6vy#1>1g?Wm6}<T<~wah8!e3xq=%4M3(cS)1*4IYd@Xd*gat)}5K~fQ
zf)PQ~Zpt9hg(U4lkRV81S=6Fd5!533{{Ay|;m+sYJCA$sIp;r5>X+++s~NHPjJBV?
zjlSkGYsD8aywJYJnkC^k+=RcPn%itM^8`#o59<3q+>Xa_FJ8hte2gVHhsF2>%gln7
z9B0<fLLK(u7@k6lH!Ft@?7(YSgUh%J(>9tFq8~f)G?wBF7T_9IV?3wU0qXGxwqq?$
zqL2OU1A{7kFd_1VTGU1X)JBi65$B`xn8e7&rRZn<7!nj4MSjX|U@qQ4ZTuWLi@ih6
zZi}b`e8h3~w^ZWWk56$A<|dnYu^IJ)BhmSFEMfi%>v09kF(<{W5}Q!-KGXpwkYL)h
z++a2vU4KiyQdwWcpawq}D3^aR2eZ;68&#rm+J*{UKPt3uqVKPuBH+$2+l>v_f*0^S
zPGcM9XGRV<fJ*HYHsJ3};;$R~vm!U{#$M**xDVZ&su&NVLe`B%IDx8(d2GbIEoKMs
z465iJMCb2Og`JokN$DYMVm^%8cQ%{&S2Os|LNj`}K54cdRL+KQ2VRLfiCo&|P@h}G
z!}tmBVgYf#jIXg2OSeWmiHh_H9>rUzi!B8i)H3*k73ia4l*6;A`AyX0^b&QTCFBWp
z3KN_HV{hB32~D5T#=5m0TOC#xRN=+Z*~ZxzoEB82E2ryC1*crr(Wx2Br~Bw?ss;Tm
zRA~}ziUNh~q)SVbkkfQ{qOWJ%DNZuwG(WGN$WX6ABl7w$F>1oe2}Sz9Q9n+_D*|d>
zy3#>(op9>;UvG+{a!=_v5nNwaz3A~&<ALD^iv~(OUBez}p)q${OzY5K_?i1*T<Ann
zwKKV&bk!9qPVt4$rOdcCR(tEcH5Fc8xG-(X6%$yP3V%+Yh!5S)ZAfoknCcGncJ>Yi
ZJQoAKfu7Fr&)iX0s3or~JfGL)`Ul;phdKZN

diff --git a/po/lt.po b/po/lt.po
index 16abe0ce7..cbd4cbe00 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.23.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2010-07-16 19:34+0300\n"
 "Last-Translator: Žygimantas Beručka <uid0@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
@@ -19,17 +19,23 @@ msgstr ""
 "%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Generator: Virtaal 0.6.1\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Nepavyko dekoduoti JPEG paveikslÄ—lio"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "„%s“ atlieka „%s“"
 
-msgid "Failed to decode JPEG image"
-msgstr "Nepavyko dekoduoti JPEG paveikslÄ—lio"
-
 msgid "Could not connect to server"
 msgstr "Nepavyko prisijungti prie serverio"
 
+msgid "No URL set."
+msgstr ""
+
 msgid "Server does not support seeking."
 msgstr ""
 
@@ -51,9 +57,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "No URL set."
-msgstr ""
-
 msgid "Internal data stream error."
 msgstr "Vidinė duomenų srauto klaida."
 
@@ -66,6 +69,9 @@ msgstr "Šiame faile nėra atkurtinų srautų."
 msgid "This file is invalid and cannot be played."
 msgstr "Failas netinkamas ir negali būti atkurtas."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Failas sugadintas ir negali būti atkurtas."
 
@@ -116,16 +122,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Nepavyko atverti garso įrenginio grojimui. "
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Nepavyko atverti garso įrenginio įrašymui. Jūs neturite leidimo atverti "
-"įrenginį."
-
-msgid "Could not open audio device for recording."
-msgstr "Nepavyko atverti garso įrenginio įrašymui."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -145,6 +141,45 @@ msgstr "Šis garso įrenginys nepalaiko grojimo."
 msgid "Error recording from audio device."
 msgstr "Klaida įrašant iš garso įrenginio."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Nepavyko atverti garso įrenginio įrašymui. Jūs neturite leidimo atverti "
+"įrenginį."
+
+msgid "Could not open audio device for recording."
+msgstr "Nepavyko atverti garso įrenginio įrašymui."
+
+msgid "Record Source"
+msgstr "Įrašymo šaltinis"
+
+msgid "Microphone"
+msgstr "Mikrofonas"
+
+msgid "Line In"
+msgstr "Įeinanti linija"
+
+msgid "Internal CD"
+msgstr "Vidinis CD"
+
+msgid "SPDIF In"
+msgstr "SPDIF įvestis"
+
+msgid "AUX 1 In"
+msgstr "AUX 1 įvestis"
+
+msgid "AUX 2 In"
+msgstr "AUX 2 įvestis"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Perduoti ratu"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Perduoti ratu"
+
 msgid "Volume"
 msgstr "Garsumas"
 
@@ -243,6 +278,10 @@ msgstr "Nepavyko nustatyti įvesties %d įrenginyje %s."
 msgid "Failed to change mute state for device '%s'."
 msgstr "Nepavyko gauti įrenginio „%s“ signalo stiprumo."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Nepavyko nustatyti įrenginio „%s“."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -267,10 +306,6 @@ msgstr "Nepavyko užklausti normalės įrenginyje „%s“."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Nepavyko gauti valdymo atributų įrenginyje „%s“."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Nepavyko nustatyti įrenginio „%s“."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Tai nėra įrenginys „%s“."
@@ -361,9 +396,6 @@ msgstr "Negali veikti be laikrodžio"
 #~ msgid "Line-in"
 #~ msgstr "Įvedimas"
 
-#~ msgid "Microphone"
-#~ msgstr "Mikrofonas"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -461,21 +493,9 @@ msgstr "Negali veikti be laikrodžio"
 #~ msgid "Telephone"
 #~ msgstr "Telefonas"
 
-#~ msgid "Line In"
-#~ msgstr "Įeinanti linija"
-
-#~ msgid "Internal CD"
-#~ msgstr "Vidinis CD"
-
 #~ msgid "Video In"
 #~ msgstr "Vaizdo įvestis"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "AUX 1 įvestis"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "AUX 2 įvestis"
-
 #~ msgid "AUX In"
 #~ msgstr "AUX įvestis"
 
@@ -488,9 +508,6 @@ msgstr "Negali veikti be laikrodžio"
 #~ msgid "Microphone Boost"
 #~ msgstr "Mikrofono pagarsinimas"
 
-#~ msgid "Loopback"
-#~ msgstr "Perduoti ratu"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Diagnostika"
 
@@ -503,9 +520,6 @@ msgstr "Negali veikti be laikrodžio"
 #~ msgid "Input"
 #~ msgstr "Įvestis"
 
-#~ msgid "Record Source"
-#~ msgstr "Įrašymo šaltinis"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Monitoriaus Å¡altinis"
 
@@ -545,9 +559,6 @@ msgstr "Negali veikti be laikrodžio"
 #~ msgid "Input Mix"
 #~ msgstr "Įvesties maiša"
 
-#~ msgid "SPDIF In"
-#~ msgstr "SPDIF įvestis"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Mikrofonas 1"
 
diff --git a/po/lv.gmo b/po/lv.gmo
index 90042e6f42321d9d23b2a6fdd08952a17619b07c..24bba87824aeb73de32b96b2fbd19a7d4d247d32 100644
GIT binary patch
delta 1852
zcmX}sPi$0G6vy#1<MfYcTRU}-78qXvi~O;6#%aMS+G!D5Q~sDrZE9NbtgkS%nbDcj
z1<{OA#Kb5jPLRZ~F_IWkyKy!qVB&&VpbJ8RE3vE);zl9rMgx9-Z(hC0?dROr_vYSv
z?s@N2-}V0DQZ#bPXfM*&&}YMD9$tv>hqk}g>_L19b<ZT$<2k$^zX`?{f^h|7T)&JD
z;SJR9{*7^LsWVGq5?7lQ?GV8xF1&{uaS=Q4r{Ma(ILf$#S>MFB@fG|XH{)(rF@|}3
z3V%dRbPqRRe1+M196%Qj;p2D-*D=4{AxLr|_JF@48^qm=U&lfG8hh|BOyE}1(TS6&
z=RQVF{5@*IKd}#68>-`R)B=k57=DS}cnKrSZ}$jTtVJ5ln8O;e72A*$Sqh`LA4!Hy
zA)B`uWbHN=TrZ-Y{{Xe%5`Kn1U>@BjvnTN?GNna0pJEq5lt4c?fLh2fK8mC0;5_O~
zPh%G@;znG;UaW1d9z`0TU_2X)KSyn(f*ikH$Gai3Ur`Ia(L(-r65MX7Ug&waYJcF~
zz;Rs5ebe{|9!F*73@YW{;x7CJRcsqrt!gNZoAEGe!6i)Ld7QvMV&s3GVDCz^ELKoE
zOfieb9`3-a*pAUv)nZMd#*=sq-$B*FKd3YAWZT{NGCKGnj^RRJq|I!I@kEiJpWrL(
z!QXH@wzIu$IF8!Er#OP&q0X?GZR&a&HJ-&Zo<SYqQs6D*`0WmA!6DMP4%Z`Vwc;)U
z-Ea_96j{^{yoIWX6G&F=6VyV_;%U5z?_-g7Z7bGLFl5z|s2UhVo$-9&yQuq4qJ!s=
z1r_ZYfl_xDmHGt#)ob?}YG(_m|No2$Y~(3T)Q4K&D28ykX%gzoo~0|r+9l=XH$5Mv
zZ=vfqR_OiLZq-yEYDzz^u>TEs9(h~*4~hy(jrshhcUo1gg5pK+zmDL)qLhn0L)Ujf
z1*(myX~Al$5x+6N|23*XYR|%SrF#>dg#6!LAnK)a{PrAOsa3_R$aE}f9I>A%#i|`;
z(V;K5r-LA}d;t$A9-!YxR{?UY{woRoyQ?GUq^m~y=xTo9RYSj+6za@(&{acirE@jY
zv7xM`4~#hpXW!8|KT0}7*>bdYq%J(Lv-E1izLnfDoXL9r4SO<E`P>_ab6Kyv*zi%P
z&Kb!a%};ryWYhLAk4-hThU*jEz1=-qx{~GN%~wLLo_E9zX2={{j+0KtE04CEt*>=6
z1&4WVuRho@d~qS0IpP-hpY9u(aVsY@@}Jt1naSs-bJ;?9V$EVGHss~qnZn$~g~}Ih
amYdx9++3k_ZSAU3dpsV|^W|;vrO<!P5znUp

delta 1555
zcmZA1OGwmF6vy#1YNn>9qoro*n3id!V>4=5maiU4FElbGg`w;zLeGUn)1rbRA{{IO
zw^7i$sR*J6p{r;SM4PadMXPFIloWk`|Cu7XaOZRHe;n_<=bZb0-#A<!eCLiEHd+&X
zHr*d%)`{!l_@LdMVwQ||uoa(RA|}R1%)lAU^Dqs4sQ=T9`4~Vy9>-j~kEQquOU!~c
z$zUE2il#=sXvHne58-}%fgM<vU{;31xD}tF4|CX!7Fv(R*oQ?phylEh^D!&QY!24r
zV%(0otZx?>tl`03T#G-j8k?q>RpJ1a<8{;z-=Y>yB`jL75$kbRbbb}JftNTJzhD(+
zrI;zG>ybTK8|JXSZDXL&96>h@A&0Ze$l>iKvZg&iZR|N-!0&hf&!?JIVC-}=FZxgm
z?7#x-M-QGurRo;y@5V4#!eD|yE#{NJGVH`fcp^H#i#g24k!;yF{N<vfHujTUH)CQ(
zWWFJ47v}MNCuZRZ)Imp3k$ady{8uv==Yfi*I5ScU4XBOmMr|;Jetd-8_!*Dj29DE@
zW9UWy%*ebK>zKdBLUglwslG?edvE}cXAytpbdm?kRe5$KSDVqp{0yqtu0@R_3@yyN
zu@SFeHGaY+SUAh92D?xP7{YdZj1`#9@%6j`HSY^DXkajc%GtZ9A5lB~imKX7!owb{
z21&bZLe)qQ5)9jg+R#zFh)?k(b`bxCIF3qb5?4hjTY`EXY-ZqLuphPH5Go?~P$B(*
zx)s?}l6D+GeLsl09iynCnm}zR*<<EH{g$9OjWal#uSKOrDUG(E6Amq`-PO|-#(x{P
z=Wp{dVjZL4jno?NB8#Cb0+f(bY<iKcr2lCi1`W~40wmMU`#_u3`^O2JGv-6Ni>0er
zbShQp|4nyWjpBDAp)0D?=_RI!ETbz$WWc#CdUqtzm(vw;)tOStrLzh@A64{py7IDu
zuBM`*W}K?mOM@Hcw55FJhg#xy#%?@(C_Eb9J~dR7y2_axOFiofWv5k!+tS=I35&h8
zUf%+5Ww_7%$`xwKOb!P!FC~N$^R}e4?+c8b3LNz88R*>`2%pTm;R>xSs0yDhc;osF
Df3}p`

diff --git a/po/lv.po b/po/lv.po
index 97226f8cd..621a33238 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2011-09-02 11:23-0000\n"
 "Last-Translator: Rihards Priedītis <rprieditis@gmail.com>\n"
 "Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
@@ -20,17 +20,23 @@ msgstr ""
 "2);\n"
 "X-Generator: Lokalize 1.0\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Neizdevās atkodēt JPEG attēlu"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "\"%s\"ko \"%s\""
 
-msgid "Failed to decode JPEG image"
-msgstr "Neizdevās atkodēt JPEG attēlu"
-
 msgid "Could not connect to server"
 msgstr "Nevar savienoties ar serveri"
 
+msgid "No URL set."
+msgstr "URL nav uzstādīts."
+
 msgid "Server does not support seeking."
 msgstr "Serveris neatbalsta meklēšanu."
 
@@ -50,9 +56,6 @@ msgstr "Notika tīkla kļūda, vai serveris negaidīti aizvēra savienojumu."
 msgid "Server sent bad data."
 msgstr "Serveris nosūtija sliktus datus."
 
-msgid "No URL set."
-msgstr "URL nav uzstādīts."
-
 msgid "Internal data stream error."
 msgstr "Iekšējās datu plūsmas kļūda."
 
@@ -65,6 +68,9 @@ msgstr "Šis fails nesatur nevienu atskaņojamu straumi."
 msgid "This file is invalid and cannot be played."
 msgstr "Šis fails ir nederīgs un nevar tikt atskaņots."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Šis fails ir bojāts un nevar tikt atskaņots."
 
@@ -116,16 +122,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Nav iespējams atvērt audio ierīci atskaņošanai."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Nevar atvērt audio ierīci ierakstīšanai. Jums nav nepieciešamo piekļuves "
-"tiesību, lai atvērtu ierīci."
-
-msgid "Could not open audio device for recording."
-msgstr "Nevarēja atvērt audio ierīci ierakstīšanai."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -145,6 +141,45 @@ msgstr "Šī audio ierīce neatablsta ierkastīšanu."
 msgid "Error recording from audio device."
 msgstr "Kļūda ierakstot no audio iekārtas."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Nevar atvērt audio ierīci ierakstīšanai. Jums nav nepieciešamo piekļuves "
+"tiesību, lai atvērtu ierīci."
+
+msgid "Could not open audio device for recording."
+msgstr "Nevarēja atvērt audio ierīci ierakstīšanai."
+
+msgid "Record Source"
+msgstr "Ierakstīšanas avots"
+
+msgid "Microphone"
+msgstr "Mikrofons"
+
+msgid "Line In"
+msgstr "LÄ«nijas ieeja"
+
+msgid "Internal CD"
+msgstr "Iekšējais CD"
+
+msgid "SPDIF In"
+msgstr "SPDIF ieeja"
+
+msgid "AUX 1 In"
+msgstr "AUX 1 ieeja"
+
+msgid "AUX 2 In"
+msgstr "AUX 2 ieeja"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Atpakaļcikls"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Atpakaļcikls"
+
 msgid "Volume"
 msgstr "Skaļums"
 
@@ -245,6 +280,10 @@ msgstr "Neizdevās uzstādīt ievadi %d uz ierīces %s."
 msgid "Failed to change mute state for device '%s'."
 msgstr "Neizdevās saņemt signāla stiprumu no ierīces \"%s\"."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Nevar atpazīt ierīci \"%s\""
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -269,10 +308,6 @@ msgstr "Neizdevās noskaidrot normu ierīcei \"%s\"."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Neizdevās iegūt kontroles atribūtus ierīcei \"%s\"."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Nevar atpazīt ierīci \"%s\""
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Šī nav ierīce \"%s\""
@@ -364,9 +399,6 @@ msgstr "Nevar veikt darbības bez pulksteņa"
 #~ msgid "Line-in"
 #~ msgstr "Skaņas ieeja"
 
-#~ msgid "Microphone"
-#~ msgstr "Mikrofons"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -464,21 +496,9 @@ msgstr "Nevar veikt darbības bez pulksteņa"
 #~ msgid "Telephone"
 #~ msgstr "Telefons"
 
-#~ msgid "Line In"
-#~ msgstr "LÄ«nijas ieeja"
-
-#~ msgid "Internal CD"
-#~ msgstr "Iekšējais CD"
-
 #~ msgid "Video In"
 #~ msgstr "Video ieeja"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "AUX 1 ieeja"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "AUX 2 ieeja"
-
 #~ msgid "AUX In"
 #~ msgstr "AUC ieeja"
 
@@ -491,9 +511,6 @@ msgstr "Nevar veikt darbības bez pulksteņa"
 #~ msgid "Microphone Boost"
 #~ msgstr "Mikrofona pastiprinājums"
 
-#~ msgid "Loopback"
-#~ msgstr "Atpakaļcikls"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Diagnostika"
 
@@ -506,9 +523,6 @@ msgstr "Nevar veikt darbības bez pulksteņa"
 #~ msgid "Input"
 #~ msgstr "Ievads"
 
-#~ msgid "Record Source"
-#~ msgstr "Ierakstīšanas avots"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Monitora avots"
 
@@ -548,9 +562,6 @@ msgstr "Nevar veikt darbības bez pulksteņa"
 #~ msgid "Input Mix"
 #~ msgstr "Ieejas mikseris"
 
-#~ msgid "SPDIF In"
-#~ msgstr "SPDIF ieeja"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Mikrofons 1"
 
diff --git a/po/mt.gmo b/po/mt.gmo
index a37a46bf1e86d64d7443bf835dafbb28cc61df13..3f248aa6cbb5b0f311ebc7e52a82a3afc392026c 100644
GIT binary patch
delta 978
zcmXZaPe{{Y9LMqR{<+Pjl{!nb9A<7)_jAr>Z52f}qhhDRBqFFNTH#hwK@?aJ1f7!M
zP5N_*ZUuwz(oG_&Lr`?=ke3RA4vRYW{_MAh{hrtJdw#I*_xpUGMdy{X@U_FgWQ;UV
zAJ4MKY)We%6C>d_i((S>eIIVcQ@8_fVK2VKIDWt(tYZ>;17<T=z^k~7!`R+pHet44
zITqX4n8OS%;vlZ#8T^3*cr@sKFQWoJ#e?`751}_?Hi<`Y9PgroHPrupLjqbf?Ee2@
z+)sQfH#c6O68Vf-{D%}_PODiDPM`u8k)M^Ah;7$Ufp6m&)=;Op*0gJ#dol&gvp<K!
z_#9Kjw@=LtPs9y0iWF_r_?~tYQGt8f&9-0`x8pG!#hciV&(Og)&HX<Z<9%Sg+tMji
zy!)sV3U1(CmF8F|^9rhx#~8yecnSYv3eRqIkMJQXfmKuse&R_S>!8p00QcZW+=XqO
zW_xiOb+_(e9N%`5&v6#N*+^rd%e^!=@Br^mP%T(PUApfW!yq@3?pOlVf($Bf9(Up$
z+>I-k!#b)!r<)6mr*Q-yb#rb>7Vp?lMs*|?>)T`&z;re2JCW5PZ{|@bjf6{M9%5FC
zl-d{yqvpk{OTPY``m971Lj?@-Xz29lLL&(kuAvsIy&Sfss=s{w9;epkFSdkB=jJO{
nE>_CtYqPDh-q3h9pPd{@XKE{vnNX;7dA@R?Qode`L<8RcZFOMH

delta 943
zcmXxiPe{{Y9LMpm{x+R%X8xII<u=mPZMyy3S~*RMRJ_<FWKq(<V}C$Ac<>}aovMSZ
zpj$zBi14(EppG2`kwN02h)yCMJb950N$-!p`M|T+^Lu{d_x<xcpHi!-mEWztm&Qml
z&oN)rm`z~F;fK-bGYexE>U|m`ID;4Q0iMM-*pFYa4|g$+LBCl6bGV4lFo8#yHCwTG
zommeXcQJ#HuopkzJpRD*I9BhyFQNjj;v}x)G#=n391WNa<07W;E$X}9k$~oJ@V=kN
zYs9x=b>lTEk#Cs8KS&W4X{37WK?NR1V%cp}z<E^nUZIN{RsUi?&xs&O;Z027a~#6Y
zdM3W@u~2}PkQv2V5;r-93@YGJlUX;OIc0VMM{p2}7{#ZU!uQqvpBUr0zS%p<0aToa
zsLt%83XGg)Kh0v6g(`WBG5mt}@fRx7=@zebOQ;0ip;}+TJJ{Z8HiZj#1wY~l9^g18
z+q^{Xp*pgTv$)enUM`D7yLVaU@H)>=P_5rUUA8TZ;XbPMP25NY4C7^-!!ayj9xJHA
z8am9bVjh#YjB#8;B~t026(nPaZ1^!)>T+)7^w&<NLTTu)CqwlsHA*`kYP=4uue9bw
z^ZGc~#s-*5yq9@02z7k^N=!pXt7E0fHdy-SL~Dl1-M$-j<)y|#Z6M>0y4j>VT;2{9
K0_AMjsr?T%R9O%J

diff --git a/po/mt.po b/po/mt.po
index af429836a..604706be3 100644
--- a/po/mt.po
+++ b/po/mt.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-0.10.10.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2008-10-26 19:09+0100\n"
 "Last-Translator: Michel Bugeja <michelbugeja@rabatmalta.com>\n"
 "Language-Team: Maltese <translation-team-mt@lists.sourceforge.net>\n"
@@ -16,17 +16,23 @@ msgstr ""
 "X-Poedit-Language: Maltese\n"
 "X-Poedit-Country: MALTA\n"
 
-#. TRANSLATORS: 'song title' by 'artist name'
-#, c-format
-msgid "'%s' by '%s'"
+msgid "Jack server not found"
 msgstr ""
 
 msgid "Failed to decode JPEG image"
 msgstr "Problem fid-decoding tal-istampa JPEG"
 
+#. TRANSLATORS: 'song title' by 'artist name'
+#, c-format
+msgid "'%s' by '%s'"
+msgstr ""
+
 msgid "Could not connect to server"
 msgstr "Mhux possibli naqbad mas-server"
 
+msgid "No URL set."
+msgstr ""
+
 #, fuzzy
 msgid "Server does not support seeking."
 msgstr "Appart '%s' ma jagħmilx video capture"
@@ -49,9 +55,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "No URL set."
-msgstr ""
-
 msgid "Internal data stream error."
 msgstr "Problema interna fid-data stream"
 
@@ -64,6 +67,9 @@ msgstr "Il-fajl ma fiħ l-ebda stream li tista tindaqq."
 msgid "This file is invalid and cannot be played."
 msgstr "Il-fajl mhux validu u ma jistax jindaqq"
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Il-fajl huwa korrott u ma jistax jinfetaħ."
 
@@ -108,16 +114,6 @@ msgstr "Audio device ma jistax jintuża. M'għandex aċċess għalih."
 msgid "Could not open audio device for playback."
 msgstr "Audio device ma jistax jintuża."
 
-#, fuzzy
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Audio device ma jistax jintuża biex tirrekordja. M'għandex aċċess għalih."
-
-msgid "Could not open audio device for recording."
-msgstr "Audio device ma jistax jintuża biex tirrekordja."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -137,6 +133,45 @@ msgstr "Irrekordjar mhux issapportjat minn dan l-apparat tal-awdjo."
 msgid "Error recording from audio device."
 msgstr "Żball fl-irrekordjar mill-apparat tal-awdjo."
 
+#, fuzzy
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Audio device ma jistax jintuża biex tirrekordja. M'għandex aċċess għalih."
+
+msgid "Could not open audio device for recording."
+msgstr "Audio device ma jistax jintuża biex tirrekordja."
+
+#, fuzzy
+msgid "Record Source"
+msgstr "Record"
+
+msgid "Microphone"
+msgstr "Mikrofonu"
+
+#, fuzzy
+msgid "Line In"
+msgstr "Line-in"
+
+msgid "Internal CD"
+msgstr ""
+
+msgid "SPDIF In"
+msgstr ""
+
+msgid "AUX 1 In"
+msgstr ""
+
+msgid "AUX 2 In"
+msgstr ""
+
+msgid "Codec Loopback"
+msgstr ""
+
+msgid "SunVTS Loopback"
+msgstr ""
+
 msgid "Volume"
 msgstr "Volum"
 
@@ -239,6 +274,10 @@ msgstr "Problema biex nissettja input %d fuq apparat %s."
 msgid "Failed to change mute state for device '%s'."
 msgstr "Problema biex inġib signal strength fuq l-apparat '%s'."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Device '%s' mhux identifikat."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -263,10 +302,6 @@ msgstr "Ma stajx nfittex norm fuq apparat '%s'."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "L-attributi ta' kontroll ta' device '%s' ma nqrawx."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Device '%s' mhux identifikat."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Dan mhux device %s."
@@ -360,9 +395,6 @@ msgstr "Ma nistax nħaddem mingħajr arloġġ"
 #~ msgid "Line-in"
 #~ msgstr "Line-in"
 
-#~ msgid "Microphone"
-#~ msgstr "Mikrofonu"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -372,9 +404,6 @@ msgstr "Ma nistax nħaddem mingħajr arloġġ"
 #~ msgid "PCM-2"
 #~ msgstr "PCM-2"
 
-#~ msgid "Record"
-#~ msgstr "Record"
-
 #~ msgid "In-gain"
 #~ msgstr "In-gain"
 
@@ -449,10 +478,6 @@ msgstr "Ma nistax nħaddem mingħajr arloġġ"
 #~ msgid "Telephone"
 #~ msgstr "Headphones"
 
-#, fuzzy
-#~ msgid "Line In"
-#~ msgstr "Line-in"
-
 #, fuzzy
 #~ msgid "Microphone Boost"
 #~ msgstr "Mikrofonu"
diff --git a/po/nb.gmo b/po/nb.gmo
index 3b470fc6d2f86b2302057c107b834130b8a0662d..baebcba2b80f85a617b509d1f1770e1e8eeb6338 100644
GIT binary patch
delta 1190
zcmYL{O-NKx6vt0~q%&&TG&4GBdM8Ju35PeMlOQEUF8oX}1XEgE^*KFt-i!C1LT!W=
z5m8`VY8izPeSiy#T2zZ9TC@;~s7)9V7PKj77cKgqnKyNKhu^tp?mHj<d3XE21eUh~
zCD#eo2ycK_?jSk<{sGx;6(I-S2Ft-U&<8&8&M&<4Yp@3ScOci<2DxTYF;P7j1-b4K
zj~Osdv`p6!wBv_oAiwYvjDgi9`4>AtZa4x~fD>MR7A(X00?3112K}J&@;5=ge+O&=
z*Fgck1w-I3FoOQ%D<#^AL^F5^TgO4(<ROyW_$9~<Hofx)@BA6$Lf^q=kf-5BF_0DL
z0kI)TkT<^qwt$bpH24vWp+5ysJqmV$0z3us<mW*i;360SSG@Cm5Dz`__#8wndIeU4
zn_vvw0{4N%D8d6pK~}gM#Ex_tT*kr##dC&5sLG3XgRBA@|9>oP5WW|_3y#_ph8K(n
z2zUo>#>U@G!Ju|-3091U;stAo#sQ)|aGs2($9F?@aGsD2LlU*NIIUvpoM6(iv2l?U
zeWn)-FS@xXRY;`-QfjJfSbc^6_J!3|pHHopM^%mAuYUMy)VO~{byq~xo5}{+tIL_Q
zXDm~vKGW50Q!a?(J^$kw=}O_awl1?mw{6Q#(4b-J+$%@!K4eVWR=&oNWg4z!(+NwA
zjSdP&cN1zLFcCH!VK`>1E2NmwmyBsWw~AT|Cd#x#QcI-L>Qiu3OQyThhYo5fP4kZo
zw~gYaV_0Tek974ek<yY{8=h2$NF}?{?YO68C>R}>leQ~OF(hp%9dUR*n+uL+Oe?D=
zEIXrag!<KXXtI+w9<(?cPla3(`N)&dFbiV-)3T6C326B~JgMeuPpYcOE)}nfD>u@p
zzC~tBSRA#|&>ZTuW^`9y&}S{vlMW)Pd!oJ_BF*W7tL3AdT=TZYHw$9*nHk;8>m^+X
Rw!VK#t;U*4t%b!b{RN$W(e?lU

literal 9512
zcmbuETWlOx8OJB31!_{-G*IsCX~CpzvK!k;+tleL7dwg5ICf(vDXI{f-8s8E-r1S$
zT<mNp;wB+z;Q>U8Ks+GYzO*leJP_0usLK-%s0dLcP(_6*fkY}K1P@#!e&0DWd+{})
zBaQzvJKy=vcfR{Me*MO)pK`b!=Kd)6vsXDz3*2=Lf4KhmPRH2_z5yNw-vX}%?|qlW
z!{GaQp9XILtDx{n!JENvf_uRi!H<A%f_H#h-t9O$z@6YH!8uTVKM$S(p9LQS{|%l6
zTTFT<_zUn6@NeKAaB9fT^EvS2yni1Y1AhkI3H}}24&MA8$N2;}1`6F-P~`b6xD)&i
z=z`1O?cgwrz70GH3cts|UEs5zjC&QF055?@!LjQc=NNb%yc=8wW&VGGqu}s+EuXVs
znfE91_n(5Yj=zE;pSs?04uF%Oynh80d0zmB!C!%Qf&T!n26v)#RN;((9|Ffgk#8Qn
z5p08~(D^cm>YcBHEYbNkD02P)d>VWWjKOf5<Ln0C07t-WFcJQTz+1o*paKI>?EVe#
zLGT%HKlmq5#@&L_#lExPICu^eeOv%b;OqJO*7sSt?*Zle!{8q9aS&H?UId@n;y6D6
z5z%?{CUgS^psef1Ilcrkwet!na=iwM-Y$V6_qGq<v*0Kw{@Da&zORBJ&jrw|8@z+}
zZ69=;8E`+i2tEml-(7{0#SV{x^WYajvBz&gvDelQ+wY^`81H96@$V-<NSq&mw}QU}
zh0i5Wf!i^f(C-C(unvkmuYw}~7KGjp-U{voKMgAITcG&e1#k}hPyRmpF~>Q``*%U1
z|2=pZyn&z;{mp~-g5Lwj!QX&)gV!^e$aMrf2?n6(=Os||@)uCzV7s#X4}fB)FM;A$
zUjs3f^AsrSeI7)m&MTnU>kpv#;hW&~;3e>W@W0^G;Qm`3=kwsNL7DdyK`8Tn0hIC2
zgQDjPAWL$72eM@6pWp#-J4Tmv%;)$dxRdvnL7C?*P{!}#kMTE9*84b!3Y;H;Vy~Zr
zqMtv5*MPS{v<1AKTfRTcEtlx_5cfWL;hMEz)+qY8id*IpU0%yAbI1i-=Q?ij^$Bjd
zL~l27m$}7<ujZCZ)<4OO=*Fg^hZEegp5i*r1Fm8&iIXXA(aSry#a`k|sK{IrpIf=b
zpG1dZe_5mCDX~>?;hNox^yDaRvGp{!TtnQF`ySv%J>5(ESYkr-S6rC0dlC8$;bbm}
zv18nlE5uIX6Jo#qOZ?y-?uWSV<9?7^eCr6eT%;;vdwIT5{&3-@#^0SC!^sX+=_o<x
zpbB-m6va)Y<2Z^{RIO&Q_I4?r(}q@wju&;TszH=!&-_x2!cbRJKMGYA>T_+LwHI{C
z&cV}<s8KbOrRHhOK4qRCsdnIYDsDBOqwE~Y{2(p)p_*%Jx2a?2up5R^s(ep}sbA|T
zPcQmaZ6qugAEUO8-Bhb3KW#)=s$3DO+H?*#+_3J4brtI*3Nj;@o2od2RZA;BQNp^T
zQ<Y@xb`&EmJfke|%!hnADvk2B_I=Yy>Q(|jX{f$McM1Es)M4LtW4EPK9VZIi^ev%}
zW6N!;N>-~0Q7w*I>yWY5P`O5TIiDK#DAd?L@g|gN!fFyNRJ1556Ek9b7o{{XtlMq}
ze$^GNT?yOy1{`sWMBE^%8ON9rq35D3^weA@Np-8xeOK=?aVjHqpj(*wN@o02lqoL?
zcciM}E^37{wEV<Ok3ozU#9ghnHs>4bY7~1Y<Vr}@+mfNrA(U7%)~*PEB|Nnh`{@c{
zj5o8;JOD#ntL)^~G!b02F;jKhDG{r1`C;$eu(uHn5ocnWnDuKuj({93Hys$_McPJ8
zZZ)+?R7NVFW`I<jDoZ*mf0J+{ICHrQi}Z`mKubg%w+ZD9X;QLGTy`c+dLqt5QNrD=
z_yJl&TG6Iuk!Os{ryW;Qq@6_E%2kVdgE8gBK7L(RhZ~xN<=2!i1orD_@imvGFyXL-
zR4S6J2<bxXuDe-^{>UynM_fO^7Tu*qVH!sPQ>JO`S2E!{m`}Px@cgP|KdoAjDY6xR
zS7{^X53z^Wds-czojj`imRr}w+<env*0Kq<9T8WRK<AdXK9cln81;wB6b(tneM}?`
zQa@s1Tlt}wc7^0>+U<~ux=M|S0g+46{W^SdA9?$Xj3Z$H{aB{MYG)%w$vUiPYp-I3
zs7daXk_g3HiNuu)UwZ_Wz5F45J#+(%jCSj3V>9s=-5|5hK<yHT+E^%b5>plWTn^7S
z7Gy2tjXb`FlfH%6F(El*gVmy&u1joU0ja^mL8gwK@Aq(F(3Pa;1;fcoA|uEK-Y<-D
zXBx22YED*n5DB*p)OXbNL+2QIyxoXG?M#Iff3cD0rmm_5(UNVd$}7Hz3Efuj8`Jq7
zx~CmT{PU#w6Mm>o`!pSeej3Hj$w-|(b%I(z$>bTS{LqfFnlTAwmpXW6%J>J&m;4}*
zK%>mXS=$cl)!|%%C0CLs1-ooYTg$IEQu;wnqZcVRkOj0NYD*fsVIr-QYR6F;RV6zi
zLyK58UBr@~Xqn7ZWU{jqnb<HpI%n2ONSvCVn^pQ;szXz>+d)RtW>#}$V)-Fyj<vaJ
z6W+#nr!?khY0r0a#o#rwMK_w4q2ByOdoq}xPZhnw`u)t{fVtU;sUyaIb6UFT{_YVI
zW^Gk7DZlK@+3tE(%}um!ntmWBNF<?FT+et`*_oG4$J8mwAAO~d4rxX8cEgTphS5@}
zre;tCtux*46^s{Cc1Myz%vjqJm~H|c)+k??-uMosU%FJ|c5Dn}TVPs6LnDzy#7OZs
zRP@$Tv?LfX%NlfP6yap7pdeB+VbC#Sr3t9{aUxw$-%!NKJ>K+Hd5?r^id540_hy0A
z535nD9niC19(5k5G;HfIE;@-mla!q^rh&?Ts`fS>tec7LZa}r8C|E)2krYguRITc^
z#N`sji#CwTB*os=9LBKeX=!IRjuy~(Y04{|v3>ctswZj523k_8N0FyS%OmAIL#MRF
za%noL`(Ei#R!>Uv(YR`)X?uM4?n+iaPwsHb^)RC4jN<z4q1l=F(qR#oZof3a?Bi-|
zWOPqy<et*#D39YKdv=bDj*LK9Iz=s)2=CF2l}5)(W6+I_kLGkITqK*9tP+s+;&F96
zYJ}MNV3`d>P|4JN3+9Id?C2_4nJwxALnml-GJ2NMJpMASPDb&PuKP41hoWZ7CCu;h
zNB4!LuyTMM8;Q8wmI%uHs2oPU(c>zteCFiL(Dc;wWKU7(W#};8Ntl)9J8jmNlB#y&
zG=8{WdaM|A-+y}kNNHb>PQ+&;SDM6&q>~?4`zn4q^hoKbrU$U=nvKXkDSE%Fym!cX
z`Gw)+<(HJZsO*z7DP~Pm8qTJwX+K~i(@xTe?Y9mBl4iOftk_lsS+hy`$`+9jO#Pr4
zu`{LhBZu0JcX!{-!-<aPE+%d42nj;^0VOEZl}=qco5u3RPD&EhvGWl6^I=_Vy-DQc
zD;+i<voe-@H0-is`An}FLZg~N#8784Bp1m>W>LfsmM<ouyi!(JL33gGqWPMn%NJAW
zWzBRt^jtV+2xWhe<xpr)fnD>!M=jfMnYp*_^+;>W&-FIqggvijHHh0?Pj6QEu?<89
z8-?^svAYrd@^fv7gAV5uq9JJydU_rZd61IXSJ0|S;lS^eIBTL6lm|n$bo`~r)(P}0
z<2Rv2m$D^apcmovK%8vVmK^UJGz4TG9*E8DmRvfFKC^7PjERi>IPHk|5ZWZ1bwD#9
zhD7ytcy53V7#r>2JgM8<fGXEwPN&}9)YgJ|M2c|&orv2;b(J)!tvnBik_4=Wsa5DM
zhQ_Z7M>Uqry-PKVfU22&*&@A^-Ii}e<%<n4e%%*KAWRE2rUX_m3=6a6sx}qaD#DVX
zn|v(<o%xWiV6Z|m=~3C9_D{jcJU9vQI^xiFAVE$wFhfC?Z_bZM?vk}O$WM7LsAXZ(
z_+o6VYgl!8(7UfOL@&zbNsKW_J+3CuPoH=LJN3B*-E1mzmS%{Ugzvq*dUvMW!tUa*
z>TTG2@xEhNk)8V_v-&kTp$K_Nw*%p!B;oiW$<Xey2mrflrvmk|PcQcbE(efS%?u<B
zlGQxjYU@%f@-lmtF}Qdp93157X0eMeaR%b)eu<JcZd|izyp;t$X9LDpa;M5QTlk9j
zgd1}*$f*Ebaz7)nq*nC>%>-m}S)<w3tdUU_RU~OH$U+JOn9Z|U$7-HgYWGL0Q|%^<
z2Gt;n?}^unsAwD|v%POpB-d8tw4Vf>rYS;_orHrCl%wc%7q?n|h!aV5_&Kgd0xjm|
zjXmQU3fhE+EjyRNWl#agVU3iSlYu1d#7#t49X<mtYll!LJl~KOe!HIN-RS8$cG9M#
z7ZtzIT>rw=FsB4Xc+0N5)Em;(4n(UwTYB1lpDR?dfl*DRDGm)*1d3&cgp$h!)@LX0
z^#PVrMD17LdQoesZHioj?Vyz`vDG(966<WH@;PHk=NM5=HPy8!q<fR21+)FD1)a2p
zc8gO5+c;7}Na*a7mM_vcoUV5Q&!;8hOhM{BCvsF}bFe^|(jXQG3sc62&DjF>6_(=D
zw)xC*Cb@}8f#!svWG4|#Et2)=LMfOoq86j`27~{%7-^uu!9~|;S!#BRs3Y%~gpqd)
zoRygFt~h2erwq-=w7^yta*!#l>;~(wlh@cd%itkEDN7~Wu~rkITH4+JL#+IaL1bd0
z!70#QF-6{|$s(A^n6`V~fB<3&j#TN-yRCRp#q%!MG+)xT^_Q0!(*|7*r9EfBnhX&)
zlU$TYWoF~h-5?nE5G~A`y+pw`FZIdtMSIXtd?nWtg1PBYwCNHi%vl4fV1mKow1Qn2
ziJh1T9#b<V&KvMyG;rAr>`?=QB$e8oGmp|AiJIgTAyj5xL(5z^k?BQ{tjSTAZnDxN
zh77mWjfm>SQjJ%eaTOP%_St3?tpuoeSw9v3rxY8<9KkTUMm({>6anpMKG+D5=21$j
zkti3l5C@{HmIVPLLkZ1INb}fRlZs}D>1AEgb)ykulWw*;Bj*kFr>-!xGB#f9MyI)a
gu~4qvg}BXxGX~x5P1uW@)}qL~D6^<}`H6$`Khp?@_W%F@

diff --git a/po/nb.po b/po/nb.po
index b84679240..d86fdd11d 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -1,34 +1,37 @@
 # Norwegian bokmaal translation of gst-utils.
 # This file is put in the public domain.
-#
 # Kjartan Maraas <kmaraas@gnome.org>, 2004-2010.
-# Johnny A. Solbu <johnny@solbu.net>, 2012.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good 1.0.3\n"
+"Project-Id-Version: gst-plugins-good 0.10.25.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
-"PO-Revision-Date: 2012-12-21 22:13+0100\n"
-"Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
+"PO-Revision-Date: 2010-10-24 21:53+0200\n"
+"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
-"Language: nb_NO\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.5.4\n"
+
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Klarte ikke å dekode JPEG-bilde"
 
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "«%s» av «%s»"
 
-msgid "Failed to decode JPEG image"
-msgstr "Klarte ikke å dekode JPEG-bilde"
-
 msgid "Could not connect to server"
 msgstr "Kunne ikke koble til tjener."
 
+msgid "No URL set."
+msgstr "Ingen URL satt."
+
 msgid "Server does not support seeking."
 msgstr "Tjener støtter ikke søking."
 
@@ -43,112 +46,127 @@ msgstr "Oppsett av sikker tilkobling feilet."
 
 msgid ""
 "A network error occured, or the server closed the connection unexpectedly."
-msgstr "Et nettverk feil oppstod, eller tjeneren lukket uventet tilkoblingen."
+msgstr ""
 
 msgid "Server sent bad data."
 msgstr "Tjener sendte ugyldige data."
 
-msgid "No URL set."
-msgstr "Ingen URL satt."
-
 msgid "Internal data stream error."
 msgstr "Intern feil i datastrøm."
 
 msgid "No or invalid input audio, AVI stream will be corrupt."
-msgstr "Ingen eller ugyldig inndatalyd, AVI-strømmen vil bli skadet."
+msgstr ""
 
 msgid "This file contains no playable streams."
-msgstr "Filen inneholder ingen spillbare strømmer."
+msgstr ""
 
 msgid "This file is invalid and cannot be played."
-msgstr "Filen er ugyldig og kan ikke spilles."
+msgstr ""
+
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
 
 msgid "This file is corrupt and cannot be played."
-msgstr "Filen er skadet og kan ikke spilles."
+msgstr ""
 
 msgid "Invalid atom size."
-msgstr "Ugyldig atomstørrelse."
+msgstr ""
 
 msgid "This file is incomplete and cannot be played."
-msgstr "Filen er ufullstendig og kan ikke spilles."
+msgstr ""
 
 msgid "The video in this file might not play correctly."
-msgstr "Videoen i denne filen spilles kanskje ikke av korrekt."
+msgstr ""
 
 #, c-format
 msgid "This file contains too many streams. Only playing first %d"
-msgstr "Filen inneholder for mange strømmer. Spiller bare første %d"
+msgstr ""
 
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
 msgstr ""
-"Ingen støttet strøm ble funnet. Du må kanskje installere en GStreamer RTSP "
-"utvidelsesprogramtillegg for Real mediestrømmer."
 
 msgid ""
 "No supported stream was found. You might need to allow more transport "
 "protocols or may otherwise be missing the right GStreamer RTSP extension "
 "plugin."
 msgstr ""
-"Ingen støttet strøm ble funnet. Du må kanskje tillate flere "
-"transportprotokoller eller den kan mangle den rette GStreamer RTSP-"
-"utvidelsestillegget."
 
 msgid "Internal data flow error."
-msgstr "Intern dataflytfeil."
+msgstr ""
 
 msgid ""
 "Could not open audio device for playback. Device is being used by another "
 "application."
 msgstr ""
-"Kunne ikke åpne lydenheten for avspilling. Enheten brukes av et annet "
-"program."
 
 msgid ""
 "Could not open audio device for playback. You don't have permission to open "
 "the device."
 msgstr ""
-"Kunne ikke åpne lydenheten for avspilling. Du har ikke tillatelse til å åpne "
-"enheten."
 
 msgid "Could not open audio device for playback."
 msgstr "Kunne ikke åpne lydenhet for avspilling."
 
+msgid ""
+"Could not open audio device for playback. This version of the Open Sound "
+"System is not supported by this element."
+msgstr ""
+
+msgid "Playback is not supported by this audio device."
+msgstr ""
+
+msgid "Audio playback error."
+msgstr ""
+
+msgid "Recording is not supported by this audio device."
+msgstr ""
+
+msgid "Error recording from audio device."
+msgstr ""
+
 msgid ""
 "Could not open audio device for recording. You don't have permission to open "
 "the device."
 msgstr ""
-"Kunne ikke åpne lydenheten for opptak. Du har ikke tillatelse til å åpne "
-"enheten."
 
 msgid "Could not open audio device for recording."
 msgstr "Kunne ikke åpne lydenhet for opptak."
 
-msgid ""
-"Could not open audio device for playback. This version of the Open Sound "
-"System is not supported by this element."
+#, fuzzy
+msgid "Record Source"
+msgstr "Opptak"
+
+msgid "Microphone"
+msgstr "Mikrofon"
+
+msgid "Line In"
+msgstr "Linje inn"
+
+msgid "Internal CD"
+msgstr "Intern CD"
+
+msgid "SPDIF In"
 msgstr ""
-"Kunne ikke åpne lydenheten for avspilling. Denne versjonen av «Open Sound "
-"System» støttes ikke av dette elementet."
 
-msgid "Playback is not supported by this audio device."
-msgstr "Avspilling støttes ikke av denne lydenheten."
+msgid "AUX 1 In"
+msgstr "AUX 1 inn"
 
-msgid "Audio playback error."
-msgstr "Lydavspillingsfeil"
+msgid "AUX 2 In"
+msgstr "AUX 2 inn"
 
-msgid "Recording is not supported by this audio device."
-msgstr "Opptak støttes ikke av denne lydenheten."
+msgid "Codec Loopback"
+msgstr ""
 
-msgid "Error recording from audio device."
-msgstr "Feil ved opptak fra lydenheten."
+msgid "SunVTS Loopback"
+msgstr ""
 
 msgid "Volume"
 msgstr "Volum"
 
 msgid "Gain"
-msgstr "Styrke"
+msgstr ""
 
 msgid "Monitor"
 msgstr "Monitor"
@@ -163,7 +181,7 @@ msgid "Line Out"
 msgstr "Linje ut"
 
 msgid "SPDIF Out"
-msgstr "SPDIF ut"
+msgstr ""
 
 msgid "AUX 1 Out"
 msgstr "AUX 1 ut"
@@ -171,103 +189,101 @@ msgstr "AUX 1 ut"
 msgid "AUX 2 Out"
 msgstr "AUX 2 ut"
 
-#, c-format
+#, fuzzy, c-format
 msgid "Error reading %d bytes from device '%s'."
-msgstr "Feil ved lesing av% d bytes fra enheten '% s»."
+msgstr "Kunne ikke lukke VFS-fil «%s»."
 
 #, c-format
 msgid "Failed to enumerate possible video formats device '%s' can work with"
-msgstr "Kunne ikke spesifisere mulige videoformater enhet «%s» kan arbeide med"
+msgstr ""
 
-#, c-format
+#, fuzzy, c-format
 msgid "Could not map buffers from device '%s'"
-msgstr "Kunne ikke tilordne buffere fra enheten «%s»."
+msgstr "Kunne ikke lukke VFS-fil «%s»."
 
 #, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
-msgstr "Driveren av enheten «%s» støtter ikke IO metoden %d"
+msgstr ""
 
 #, c-format
 msgid "The driver of device '%s' does not support any known IO method."
-msgstr "Driveren av enheten «%s» støtter ikke noen kjente IO-metoder."
+msgstr ""
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' does not support video capture"
-msgstr "Enhet «%s» støtter ikke videoopptak"
+msgstr "Enhet «%s» kan ikke fange data."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is busy"
-msgstr "Enheten «%s» er opptatt"
+msgstr "Enhet «%s» kan ikke fange data."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' cannot capture at %dx%d"
-msgstr "Enhet «%s» kan ikke fange ved %dx%d"
+msgstr "Enhet «%s» kan ikke fange data."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' cannot capture in the specified format"
-msgstr "Enhet «%s» kan ikke fange i det angitte formatet"
+msgstr "Enhet «%s» kan ikke fange data."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Could not get parameters on device '%s'"
-msgstr "Kunne ikke få parametere på enheten «%s»."
+msgstr "Kunne ikke lukke VFS-fil «%s»."
 
 msgid "Video device did not accept new frame rate setting."
-msgstr "Videoenheten aksepterte ikke ny bildefrekvensinnstilling."
+msgstr ""
 
 msgid "Video device could not create buffer pool."
-msgstr "Videoenhet kan ikke opprette bufferkø"
+msgstr ""
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get settings of tuner %d on device '%s'."
-msgstr "Kunne ikke hente innstillingene fra mottakeren %d på enheten «%s»."
+msgstr "Kunne ikke lukke VFS-fil «%s»."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Error getting capabilities for device '%s'."
-msgstr "Feil ved henting av funksjoner for enheten «%s»."
+msgstr "Kunne ikke lukke VFS-fil «%s»."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is not a tuner."
-msgstr "Enheten «%s» er ikke en tuner."
+msgstr "Enhet «%s» kan ikke fange data."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get radio input on device '%s'. "
-msgstr "Mislyktes i å få radio-inndata på enheten «%s»."
+msgstr "Kunne ikke lukke VFS-fil «%s»."
 
 #, c-format
 msgid "Failed to set input %d on device %s."
-msgstr "Klarte ikke å sette inngang %d på enhet %s."
+msgstr ""
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to change mute state for device '%s'."
-msgstr "Klarte ikke å endre dempe-modus for enheten «%s»."
+msgstr "Kunne ikke lukke VFS-fil «%s»."
+
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Kan ikke identifisere enhet «%s»."
 
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
 "it is a v4l1 driver."
 msgstr ""
-"Feil ved henting av evner for enheten «%s»: Det er ikke en v4l2 driver. "
-"Sjekk om det er en v4l1 driver."
 
 #, c-format
 msgid "Failed to query attributes of input %d in device %s"
-msgstr "Feil ved attributtspørring av inndata %d på enhet %s"
+msgstr ""
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get setting of tuner %d on device '%s'."
-msgstr "Kunne ikke hente innstillingen av mottakeren %d på enheten «%s»."
+msgstr "Kunne ikke lukke VFS-fil «%s»."
 
 #, c-format
 msgid "Failed to query norm on device '%s'."
-msgstr "Feil ved norm-spørring på enhet %s."
+msgstr ""
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed getting controls attributes on device '%s'."
-msgstr "Kunne ikke å få inn kontrollattributter på enhet «%s»."
-
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Kan ikke identifisere enhet «%s»."
+msgstr "Kunne ikke lukke VFS-fil «%s»."
 
 #, c-format
 msgid "This isn't a device '%s'."
@@ -281,62 +297,53 @@ msgstr "Kunne ikke åpne enhet «%s» for lesing og skriving."
 msgid "Device '%s' is not a capture device."
 msgstr "Enhet «%s» kan ikke fange data."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is not a output device."
-msgstr "Enhet «%s» er ikke en utgangsenhet."
+msgstr "Enhet «%s» kan ikke fange data."
 
 #, c-format
 msgid "Failed to set norm for device '%s'."
-msgstr "Kunne ikke sette normen for enhet «%s»."
+msgstr ""
 
 #, c-format
 msgid "Failed to get current tuner frequency for device '%s'."
-msgstr "Klarte ikke å få gjeldende mottakerfrekvens for enheten «%s»."
+msgstr ""
 
 #, c-format
 msgid "Failed to set current tuner frequency for device '%s' to %lu Hz."
 msgstr ""
-"Klarte ikke å sette gjeldende mottakerfrekvens for enheten «%s» til %lu Hz."
 
 #, c-format
 msgid "Failed to get signal strength for device '%s'."
-msgstr "Klarte ikke å innhente signalstyrken for enheten «%s»."
+msgstr ""
 
 #, c-format
 msgid "Failed to get value for control %d on device '%s'."
-msgstr "Kunne ikke hente verdi for kontroll %d på enheten «%s»."
+msgstr ""
 
 #, c-format
 msgid "Failed to set value %d for control %d on device '%s'."
-msgstr "Klarte ikke å sette verdi %d for kontroll %d på enheten «%s»."
+msgstr ""
 
 #, c-format
 msgid "Failed to get current input on device '%s'. May be it is a radio device"
 msgstr ""
-"Kunne ikke hente gjeldende inndata på enheten «%s». Kanskje det er en "
-"radioenhet"
 
 #, c-format
 msgid ""
 "Failed to get current output on device '%s'. May be it is a radio device"
-msgstr "Kunne ikke hente utdata fra enheten «%s». Kanskje det er en radioenhet"
+msgstr ""
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to set output %d on device %s."
-msgstr "Klarte ikke å sette utgang %d på enhet %s."
+msgstr "Kunne ikke lukke VFS-fil «%s»."
 
 msgid "Changing resolution at runtime is not yet supported."
-msgstr "Endring av oppløsning under kjøring støttes ikke enda."
+msgstr ""
 
 msgid "Cannot operate without a clock"
 msgstr "Kan ikke operere uten en klokke"
 
-#~ msgid "Could not establish connection to sound server"
-#~ msgstr "Kunne ikke etablere tilkobling til lydtjener"
-
-#~ msgid "Failed to query sound server capabilities"
-#~ msgstr "Klarte ikke å etterspørre lydtjenerens evner"
-
 #~ msgid "Bass"
 #~ msgstr "Bass"
 
@@ -355,9 +362,6 @@ msgstr "Kan ikke operere uten en klokke"
 #~ msgid "Line-in"
 #~ msgstr "Linje inn"
 
-#~ msgid "Microphone"
-#~ msgstr "Mikrofon"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -367,15 +371,6 @@ msgstr "Kan ikke operere uten en klokke"
 #~ msgid "PCM-2"
 #~ msgstr "PCM-2"
 
-#~ msgid "Record"
-#~ msgstr "Opptak"
-
-#~ msgid "In-gain"
-#~ msgstr "Innstyrke"
-
-#~ msgid "Out-gain"
-#~ msgstr "Utstyrke"
-
 #~ msgid "Line-1"
 #~ msgstr "Linje 1"
 
@@ -406,15 +401,9 @@ msgstr "Kan ikke operere uten en klokke"
 #~ msgid "Radio"
 #~ msgstr "Radio"
 
+#, fuzzy
 #~ msgid "Could not open audio device for mixer control handling."
-#~ msgstr "Kunne ikke åpne lydenheten for mikserkontrollhåndtering."
-
-#~ msgid ""
-#~ "Could not open audio device for mixer control handling. This version of "
-#~ "the Open Sound System is not supported by this element."
-#~ msgstr ""
-#~ "Kunne ikke åpne lydenheten for mikserkontrollhåndtering. Denne versjonen "
-#~ "av «Open Sound System» støttes ikke av dette elementet."
+#~ msgstr "Kunne ikke åpne filen «%s» for lesing."
 
 #~ msgid "Master"
 #~ msgstr "Hovedvolum"
@@ -431,9 +420,6 @@ msgstr "Kan ikke operere uten en klokke"
 #~ msgid "Center"
 #~ msgstr "Senter"
 
-#~ msgid "LFE"
-#~ msgstr "LFE"
-
 #~ msgid "Surround"
 #~ msgstr "Surround"
 
@@ -449,99 +435,18 @@ msgstr "Kan ikke operere uten en klokke"
 #~ msgid "3D Center"
 #~ msgstr "3D senter"
 
-#~ msgid "3D Enhance"
-#~ msgstr "3D-forbedring"
-
 #~ msgid "Telephone"
 #~ msgstr "Telefon"
 
-#~ msgid "Line In"
-#~ msgstr "Linje inn"
-
-#~ msgid "Internal CD"
-#~ msgstr "Intern CD"
-
 #~ msgid "Video In"
 #~ msgstr "Video inn"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "AUX 1 inn"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "AUX 2 inn"
-
 #~ msgid "AUX In"
 #~ msgstr "AUX inn"
 
-#~ msgid "Record Gain"
-#~ msgstr "Innspillingsstyrke"
-
-#~ msgid "Output Gain"
-#~ msgstr "Utdatastyrke"
-
-#~ msgid "Microphone Boost"
-#~ msgstr "Mikrofonforsterkning"
-
-#~ msgid "Loopback"
-#~ msgstr "Loopback"
-
-#~ msgid "Diagnostic"
-#~ msgstr "Diagnose"
-
-#~ msgid "Bass Boost"
-#~ msgstr "BassBoost"
-
-#~ msgid "Playback Ports"
-#~ msgstr "Avspillingsporter:"
-
-#~ msgid "Input"
-#~ msgstr "Inngang"
-
-#~ msgid "Record Source"
-#~ msgstr "Opptakskilde"
-
-#~ msgid "Monitor Source"
-#~ msgstr "Monitorkilde"
-
-#~ msgid "Keyboard Beep"
-#~ msgstr "Tastaturpip"
-
-#~ msgid "Simulate Stereo"
-#~ msgstr "Simulert stereo"
-
 #~ msgid "Stereo"
 #~ msgstr "Stereo"
 
-#~ msgid "Surround Sound"
-#~ msgstr "Surroundlyd"
-
-#~ msgid "Microphone Gain"
-#~ msgstr "Mikrofonstyrke"
-
-#~ msgid "Speaker Source"
-#~ msgstr "Høyttalerkilde"
-
-#~ msgid "Microphone Source"
-#~ msgstr "Mikrofonkilde"
-
-#~ msgid "Jack"
-#~ msgstr "Jack"
-
-#~ msgid "Center / LFE"
-#~ msgstr "Senter / LFE"
-
-#~ msgid "Stereo Mix"
-#~ msgstr "Stereomiks"
-
-#~ msgid "Mono Mix"
-#~ msgstr "Monomiks"
-
-#~ msgid "Input Mix"
-#~ msgstr "Inndatamiks"
-
-#~ msgid "SPDIF In"
-#~ msgstr "SPDIF Inn"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Mikrofon 1"
 
@@ -599,107 +504,16 @@ msgstr "Kan ikke operere uten en klokke"
 #~ msgid "Production"
 #~ msgstr "Produksjon"
 
-#~ msgid "Front Panel Microphone"
-#~ msgstr "Fronpanelmikrofon"
-
-#~ msgid "Front Panel Line In"
-#~ msgstr "Frontpanel innlinje"
-
-#~ msgid "Front Panel Headphones"
-#~ msgstr "Frontpanelhodetelefoner"
-
-#~ msgid "Front Panel Line Out"
-#~ msgstr "Frontpanel utlinje"
-
-#~ msgid "Green Connector"
-#~ msgstr "Grønn kontakt"
-
-#~ msgid "Pink Connector"
-#~ msgstr "Rosa kontakt"
-
-#~ msgid "Blue Connector"
-#~ msgstr "Blå kontakt"
-
-#~ msgid "White Connector"
-#~ msgstr "Hvit kontakt"
-
-#~ msgid "Black Connector"
-#~ msgstr "Sort kontakt"
-
-#~ msgid "Gray Connector"
-#~ msgstr "Grå kontakt"
-
-#~ msgid "Orange Connector"
-#~ msgstr "Oransje kontakt"
-
-#~ msgid "Red Connector"
-#~ msgstr "Rød kontakt"
-
-#~ msgid "Yellow Connector"
-#~ msgstr "Gul kontakt"
-
-#~ msgid "Green Front Panel Connector"
-#~ msgstr "Grønn frontpanelkontakt"
-
-#~ msgid "Pink Front Panel Connector"
-#~ msgstr "Rosa frontpanelkontakt"
-
-#~ msgid "Blue Front Panel Connector"
-#~ msgstr "Blå frontpanelkontakt"
-
-#~ msgid "White Front Panel Connector"
-#~ msgstr "Hvit frontpanelkontakt"
-
-#~ msgid "Black Front Panel Connector"
-#~ msgstr "Sort frontpanelkontakt"
-
-#~ msgid "Gray Front Panel Connector"
-#~ msgstr "Grå frontpanelkontakt"
-
-#~ msgid "Orange Front Panel Connector"
-#~ msgstr "Oransje frontpanelkontakt"
-
-#~ msgid "Red Front Panel Connector"
-#~ msgstr "Rød frontpanelkontakt"
-
-#~ msgid "Yellow Front Panel Connector"
-#~ msgstr "Gul frontpanelkontakt"
-
-#~ msgid "Spread Output"
-#~ msgstr "Spredningsutgang"
-
-#~ msgid "Downmix"
-#~ msgstr "Nedmiks"
-
-#~ msgid "Virtual Mixer Input"
-#~ msgstr "Virtuell mikserinngang"
-
-#~ msgid "Virtual Mixer Output"
-#~ msgstr "Virtuell mikserutgang"
-
-#~ msgid "Virtual Mixer Channels"
-#~ msgstr "Virtuelle mikserkanaler"
-
-#~ msgid "%s %d Function"
-#~ msgstr "%s %d Funksjon"
-
-#~ msgid "%s Function"
-#~ msgstr "%s Funksjon"
-
-#~ msgid "Got unexpected frame size of %u instead of %u."
-#~ msgstr "Fikk uventet rammestørrelsen %u istedenfor %u."
-
+#, fuzzy
 #~ msgid "Error reading %d bytes on device '%s'."
-#~ msgstr "Feil ved lesing av %d byte på enheten «%s»."
+#~ msgstr "Kunne ikke lukke VFS-fil «%s»."
 
+#, fuzzy
 #~ msgid "Could not enqueue buffers in device '%s'."
-#~ msgstr "Kunne ikke legge i kø buffere i enheten «%s»."
-
-#~ msgid "Failed trying to get video frames from device '%s'."
-#~ msgstr "Mislyktes i å få videobilder fra enhet «%s»."
+#~ msgstr "Kunne ikke lukke VFS-fil «%s»."
 
-#~ msgid "Failed after %d tries. device %s. system error: %s"
-#~ msgstr "Mislyktes etter %d forsøk. Enhet %s. Systemfeil: %s"
+#~ msgid "Could not establish connection to sound server"
+#~ msgstr "Kunne ikke etablere tilkobling til lydtjener"
 
 #~ msgid "Describes the selected input element."
 #~ msgstr "Beskriver valgt inndataelement."
diff --git a/po/nl.gmo b/po/nl.gmo
index f2efee1479c792ce9e72e721e2ded4adbcf6ec7b..524d32855698d7aaf8730f683b7018f173396eb3 100644
GIT binary patch
delta 1951
zcmX}sUu;uV9Ki9@u5N>EwRY<U`^TM|n{Kq+cHJK)+vvK<h8vp@VUkF)KONSMTc{fk
z8d4G;R78C^5z+8wVuG;vr-?7lgv9KD8G{e<L_qNmnqV{%@xfs5`#bGC$?4~uliPcK
z_xyhM{yuhdAald-d0WwT(`)GqZlw~q;^BujQK(cYK8144AuPu8xB)-S&sXyERSd9x
z1%3E4%6<RFdMqzeDvA-TQ7WSjGkA=Jm$3zxu^F%C*YDwe=FRMS3{T(z`~zEY7g0=N
z8r$(Jl#T9V6V`83suANjg@^G`yo?XCzq-R9!a|_LM5Kms7xP&h#*5gAcQK4xIgSt>
zLiyhtC>viw+3+viiJQxE^Mfb>WbhGuA3N|ede~pxXF#yZ<5h}1lovN+HF88Mihi6x
z4nxf#53lBt*wtcwJ%jT9S5N}hcm~%njZ+UQwGF>Twp1SSld&228OROeD1nUP7Tk{(
z9!JUPJ80uFw%`ry!NP}fsfb~a`9gmF9?FBPBI#G(;i^liTS!dmVmar(m%-=dxd6Ns
zxd5tA0&2+5TX7TfC|2Sa%2Cdug{QC|FQBC0HcEg#qLvhO<5rx<FrLL3TnljiCmDpe
z>nwhR@`M#txeJD{llghH@OzYvT|^^A+JbN59+Zu)=huBawwz2C%JpfS#Irb#f8utG
zWvX+<@)CBlu!1}AF7{%C0%*gd_#~dg5dNB9uj1X3BadSr9z&^tk5O{Gf>I-EC?|6j
zCAI$`F{n&+U9PC2C`Y~nr3Qxb>*Gjv)B)_lc|3<7;AxEWu65xzC>s@XcR8_gl>6;Q
zx!*o)#b;3heiaEQqdsFW$ig+0C$%i4MsO76M9$>Bf^y^H2Hp(pM=7d<=)(0Td8WS1
zDaw7wh<N}ox%Z>&LkSRYCKnxJQ!t`z$}4QX0sY9^Vm>I6Z)xmjn!M8zK$OmlV7`uE
zUQx<KJx-VJf*iZllr%XJX;KrWvA_8mJ%H4n;_Is@Uh_rdK>lw-jO6%9yUDZU_z8Lk
zeSj{Fl$s)xv7}^}Zqe796r40q4)gnr{Kn}8bU9wqYSICwK;(lV1?Q#jq)U@L#>_}Q
zp}8hG?WIf6NqUsNUN{{Xaa8Q-Nh@rPFD;r;#2Rt314VNMy04^He_3){Un{NEUze5Y
z;j&A*-P@jh*ZZN%9Us)&edCq<eKhGL%)iHyGwIaP=Tc50`?~M6tH|1yT1w9(w9nt|
z9&vQcKbLJR-{#VvRJ3idLt#4<=?+Eo&58*-+|kp~*=9#<d*j4-aBt#x@`Yr|2@Xyz
zCVH%h9S#TWXfV=c*>;cJ!F75n@S7{F_f+aYG9Q01wH|*k>12PZyj7r=Yl`(-HC@@-
z+9sENv94MFQum|&w?39Vv8B@Oo|)CB8m2cr?{K|&26G4V40EZJlfBdMg{x@lNMbsj
ca`c79K6ld5KQz9Uz1MWoRhU{>I+9TT0j%TcHUIzs

delta 3097
zcma*nTWlQF8Nl(gabkjF9A_QE+Hvp!YI1SB*lQqQ3Q3&A#DT;iAOaGo9q*j=j=eiG
znVq$<A#9;4LJ$xzTpmCIiKqy{Ly%h#h)S&}JhTtMOQ}FajZ%m}1dyV>6p;G=W^C7n
zJaFXW-`vjaJKxz817Gj09ZxTPN>Og2wo{KTQL2oam+_DCuX?2#@dWO{ukl>G`kcfa
zcs}=gu^ICy{e*ZSK8}~;F<gtE;YLg?S8BadHPyw%r98M9<;67KibwGfeuoFK%&432
zUAzsy#XcNrNCrBLmvH|a=J3zB3C~~)UbsT3UtkX9yMwrv@zvd2bn)OBwD29=fSoM+
zV%&$);UV0NM^RStA@0P}cs=IMQ))L(<CXXh$^`z4z1Z25^m7oi+&?7ujIZA0LRRt>
z$_({NrMBTNl=}xzX8a0v;`?|7{s)(07jY*Tss~%KA7z5KU>bcSi0ZdU^wkk$jp|9P
z$xL71;%WQ{19Vp@bs3((9$ZB)GQa?K;EkxUgtGUK;8uJQufdZj?K+4%d#v_jKi-8B
zks0j9<1NHr9yG2_X1)dG{wD0hdysrn$M7#HrQSe-q^8y=bpRhknb;?@euf$Dzd`=g
z@(YrPb)e>c7s^BnD3SgB1;k%w_;()U@C?cxUrH~sXE$RWe}})pFVMy@;w&qCALYGj
zOZMDG&F!-&D|{OV@JqZLyV)0+*a*s2PSv=O?0+8R*t~~V;YoZH+j%Gxdj;jY<JgbO
z)^P-J8%jshIEXLcZFmZY<vnLmzIzO%pTFTY`~k1S+I4KG40srSiLc|ecn0NE^lGJU
zz&kOEFQYvFC&~(!UX*l{LrJPbNW!bbC?S3r=}H|#f~7t{NyaacWUQ$(T#ygyJCv2J
z<jg&Xd+-RJ!Yvqb1g^waQTF^KO0JwnnMj7wWWYiG4dFOSME;07@q3hsZzo*xzKmDN
z`F|t6;0Fa|fQ`hN?NYx+X>d1g#h0)iPhko-P`QkMIU(NP0hDM;*`E*}If={?s!Vtv
zRTjVw$oi96OUNYSWu{U{^f*x@<Z{H8Ql)I9?xM12wVf)VypbwfHdpp=LHfj{ng6m{
z(ni%$CAsBj6V$lWB#RrV*HFosB)L$spTjU;BqDRAi3?4YXzZm*X`o(Dm82q&^F@+Q
zeyk)3=L$PLSH|MK&&=LR#_p!dk(AJ{q{@~oEV9><4>wRHVP$J1u?DG9_{~z=<bsk;
zh!b!}w6}hwZnzrG{I$MNSIb+j>xDXR`C&CM+6r~2eOITgcA5z%Z}j@k%6eWd`o?i}
zSTwrgo4iwSjI9e^P`1KFO>ECpv~*ml`o0&0dcv`dH#f}xKW(6Ur=mxym8oc5!=7kI
z!}-g?s%wJCG;F4xUX?Fe?x@k_YRHhG6`JVr^V*{WE86>wTP>S_C))Qa6=$SmW=Bcp
zQ_=R~HRwq%7}t|dSd8*3K57pv+wrvH`qfZ-?!u3=I_hd1ILCyc<BnElwm1GG6<yM_
zD-PPdO-E8urnxsd(EO{K9XJyv&|YC-YyFe8Tkez|cfCnh4-M<G35%YcRkskrpV?lb
zJ>Qc3iQ5v;nLjjdPTdg)c6O<GuUfL>xaR{Skr}BL3e3>=yi!)(y6{umNj|jldE<xL
zHIup!SY@N*h*pxtN1v|BF6+(qWc#Ak>HW)dJ^ej>T|K=~DV=G~b@%pm=dRYdTz_AW
zJbW_!RqBf9zLu!YBfB=P{=BX>Zn=8Y7*~6~D}9%(ac&5~Y?f{JeJij?x;W3y{x#`V
zq`|0}O}M-<fo+ncBkLA-;kmX6Dxs;mA+0WBXMNX{8FPY}Bsu6h=Etoh1I@GvpUCWs
z)@RmiiZd{)23dz5amM2DJ-=v`=!l`q-l!=#W8+0*N3XT6j+$Cm%pA<DO{I4lrfHk9
zKbx!7O7vk{OUtA)HtmekmT}5XrBodcBfoXS;IQv{izk<4E?-VsR!}ya$Dagf(gYI2
z1zkPU`tQaAlFZ$XJK=G37&ARL-38xGwe4seatThUL|z*=I?~p0mhWcXYRfE%K5f6f
z-ZkB_ll#{FDHW~h=#OsixIev{t*C_6YTyUnDEU&hWVkI0;~sDLh+&q*YG}AS$#|1h
zXK#Da!nTWAkR)1mYv$vQ`%-}<?|eAMIkCw&ae_;JYs+%u{F+Vl`EQHH6hhfI`l?Qn
dIg;kx71xxCMh*cZ&{uK}B)4eqmH25<{{z@}Y=r;-

diff --git a/po/nl.po b/po/nl.po
index 2de852789..cb9d2393d 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,33 +1,39 @@
-# translation of gst-plugins-good-1.0.3.nl.po to Dutch
+# translation of gst-plugins-good-0.10.28.2.nl.po to Dutch
 # This file is put in the public domain.
 #
-# Freek de Kruijf <f.de.kruijf@gmail.com>, 2007, 2008, 2009, 2010, 2011, 2012.
+# Freek de Kruijf <f.de.kruijf@gmail.com>, 2007, 2008, 2009, 2010, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good 1.0.3\n"
+"Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
-"PO-Revision-Date: 2012-11-29 22:30+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
+"PO-Revision-Date: 2011-04-27 00:05+0200\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
 "Language: nl\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.5\n"
+"X-Generator: Lokalize 1.1\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Kan de JPEG-afbeelding niet decoderen"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "'%s' door '%s'"
 
-msgid "Failed to decode JPEG image"
-msgstr "Kan de JPEG-afbeelding niet decoderen"
-
 msgid "Could not connect to server"
 msgstr "Kan geen verbinding maken met server"
 
+msgid "No URL set."
+msgstr "Geen URL ingesteld."
+
 msgid "Server does not support seeking."
 msgstr "Zoeken wordt door de server niet ondersteund."
 
@@ -49,9 +55,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr "De server stuurde onjuiste gegevens."
 
-msgid "No URL set."
-msgstr "Geen URL ingesteld."
-
 msgid "Internal data stream error."
 msgstr "Interne fout in gegevensstroom."
 
@@ -64,6 +67,9 @@ msgstr "Dit bestand bevat geen afspeelbare stromen."
 msgid "This file is invalid and cannot be played."
 msgstr "Dit bestand is ongeldig en kan niet afgespeeld worden."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Dit bestand is beschadigd en kan niet afgespeeld worden."
 
@@ -117,16 +123,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Kan het audio-apparaat niet openen voor afspelen."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Kan het audio-apparaat niet openen voor opnemen. U hebt geen toestemming om "
-"het apparaat te openen."
-
-msgid "Could not open audio device for recording."
-msgstr "Kan het audio-apparaat niet openen voor opnemen."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -146,6 +142,45 @@ msgstr "Opnemen wordt niet ondersteund door dit audio-apparaat"
 msgid "Error recording from audio device."
 msgstr "Fout bij opnemen vanaf audio-apparaat."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Kan het audio-apparaat niet openen voor opnemen. U hebt geen toestemming om "
+"het apparaat te openen."
+
+msgid "Could not open audio device for recording."
+msgstr "Kan het audio-apparaat niet openen voor opnemen."
+
+msgid "Record Source"
+msgstr "Opnamebron"
+
+msgid "Microphone"
+msgstr "Microfoon"
+
+msgid "Line In"
+msgstr "Lijn-in"
+
+msgid "Internal CD"
+msgstr "Interne cd"
+
+msgid "SPDIF In"
+msgstr "SPDIF-in"
+
+msgid "AUX 1 In"
+msgstr "AUX 1-in"
+
+msgid "AUX 2 In"
+msgstr "AUX 2-in"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Loopback"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Loopback"
+
 msgid "Volume"
 msgstr "Volume"
 
@@ -179,70 +214,77 @@ msgstr "Fout bij het lezen van %d bytes van apparaat '%s'."
 
 #, c-format
 msgid "Failed to enumerate possible video formats device '%s' can work with"
-msgstr "Opnoemen van videoformaten waarmee apparaat '%s' kan werken is mislukt"
+msgstr ""
 
 #, c-format
 msgid "Could not map buffers from device '%s'"
 msgstr "Kan de buffers van apparaat '%s' niet vinden"
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
-msgstr "Het stuurprogramma van apparaat '%s' ondersteunt de IO-methode %d niet"
+msgstr ""
+"Het stuurprogramma van apparaat '%s' ondersteunt geen  bekende opnamemethode."
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
-"Het stuurprogramma van apparaat '%s' ondersteunt geen bekende IO-methode."
+"Het stuurprogramma van apparaat '%s' ondersteunt geen  bekende opnamemethode."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' does not support video capture"
-msgstr "Apparaat '%s' ondersteunt het opnemen van video niet"
+msgstr "Apparaat '%s' is geen uitvoerapparaat."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is busy"
-msgstr "Apparaat '%s' is bezet"
+msgstr "Apparaat '%s' is geen uitvoerapparaat."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' cannot capture at %dx%d"
-msgstr "Apparaat '%s' kan geen opname maken met %dx%d"
+msgstr "Apparaat '%s' is geen opnameapparaat."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' cannot capture in the specified format"
-msgstr "Apparaat '%s' kan geen opname maken in het gespecificeerde formaat"
+msgstr "Apparaat '%s' is geen opnameapparaat."
 
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Kan de parameters op apparaat '%s' niet verkrijgen"
 
+#, fuzzy
 msgid "Video device did not accept new frame rate setting."
-msgstr "Videoapparaat heeft de nieuwe frame-snelheid niet geaccepteerd."
+msgstr ""
+"Invoerapparaat voor video heeft de nieuwe frame-snelheid niet geaccepteerd."
 
 msgid "Video device could not create buffer pool."
-msgstr "Videoapparaat kon geen bufferpool aanmaken."
+msgstr ""
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get settings of tuner %d on device '%s'."
-msgstr "Instellingen van tuner %d op apparaat '%s' ophalen is mislukt."
+msgstr "Kan de instelling van tuner %d op apparaat '%s' niet verkrijgen."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Error getting capabilities for device '%s'."
-msgstr "Fout bij het ophalen de mogelijkheden van apparaat '%s'."
+msgstr "Fout bij het lezen van %d bytes van apparaat '%s'."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is not a tuner."
-msgstr "Apparaat '%s' is geen tuner."
+msgstr "Apparaat '%s' is geen uitvoerapparaat."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get radio input on device '%s'. "
-msgstr "Radio-invoer van apparaat '%s' ophalen is mislukt."
+msgstr "Kan invoer %d op apparaat '%s' niet instellen."
 
 #, c-format
 msgid "Failed to set input %d on device %s."
 msgstr "Kan invoer %d op apparaat '%s' niet instellen."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to change mute state for device '%s'."
-msgstr "De gedempte status van apparaat '%s' wijzigen is mislukt."
+msgstr "Kan de signaalsterkte van apparaat '%s' niet verkrijgen."
+
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Kan apparaat '%s' niet identificeren."
 
 #, c-format
 msgid ""
@@ -268,10 +310,6 @@ msgstr "Kan de norm op apparaat '%s' niet opvragen."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Kan de knopeigenschappen op apparaat '%s' niet verkrijgen."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Kan apparaat '%s' niet identificeren."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Dit is geen apparaat '%s'."
@@ -336,11 +374,14 @@ msgstr "Tijdens het draaien kan de resolutie nog niet gewijzigd worden."
 msgid "Cannot operate without a clock"
 msgstr "Kan niet werken zonder een klok."
 
-#~ msgid "Could not establish connection to sound server"
-#~ msgstr "Kan geen verbinding maken met de geluidsserver"
+#~ msgid "Got unexpected frame size of %u instead of %u."
+#~ msgstr "Onverwachte framegrootte, %u in plaats van %u."
 
-#~ msgid "Failed to query sound server capabilities"
-#~ msgstr "Kan de eigenschappen van de geluidsserver niet opvragen"
+#~ msgid "Failed trying to get video frames from device '%s'."
+#~ msgstr "Kan geen videoframes verkrijgen van apparaat '%s'."
+
+#~ msgid "Failed after %d tries. device %s. system error: %s"
+#~ msgstr "Fout na %d pogingen. Apparaat %s. Systeemfout: %s"
 
 #~ msgid "Bass"
 #~ msgstr "Lage tonen"
@@ -360,9 +401,6 @@ msgstr "Kan niet werken zonder een klok."
 #~ msgid "Line-in"
 #~ msgstr "Lijn-in"
 
-#~ msgid "Microphone"
-#~ msgstr "Microfoon"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -460,21 +498,9 @@ msgstr "Kan niet werken zonder een klok."
 #~ msgid "Telephone"
 #~ msgstr "Telefoon"
 
-#~ msgid "Line In"
-#~ msgstr "Lijn-in"
-
-#~ msgid "Internal CD"
-#~ msgstr "Interne cd"
-
 #~ msgid "Video In"
 #~ msgstr "Video-in"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "AUX 1-in"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "AUX 2-in"
-
 #~ msgid "AUX In"
 #~ msgstr "AUX-in"
 
@@ -487,9 +513,6 @@ msgstr "Kan niet werken zonder een klok."
 #~ msgid "Microphone Boost"
 #~ msgstr "Microfoon-boost"
 
-#~ msgid "Loopback"
-#~ msgstr "Loopback"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Diagnose"
 
@@ -502,9 +525,6 @@ msgstr "Kan niet werken zonder een klok."
 #~ msgid "Input"
 #~ msgstr "Invoer"
 
-#~ msgid "Record Source"
-#~ msgstr "Opnamebron"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Monitorbron"
 
@@ -544,9 +564,6 @@ msgstr "Kan niet werken zonder een klok."
 #~ msgid "Input Mix"
 #~ msgstr "Invoer-mix"
 
-#~ msgid "SPDIF In"
-#~ msgstr "SPDIF-in"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Microfoon-1"
 
@@ -691,17 +708,14 @@ msgstr "Kan niet werken zonder een klok."
 #~ msgid "%s Function"
 #~ msgstr "%s-function"
 
-#~ msgid "Got unexpected frame size of %u instead of %u."
-#~ msgstr "Onverwachte framegrootte, %u in plaats van %u."
-
 #~ msgid "Error reading %d bytes on device '%s'."
 #~ msgstr "Fout bij het lezen van %d bytes van apparaat '%s'."
 
 #~ msgid "Could not enqueue buffers in device '%s'."
 #~ msgstr "Kan geen buffers toekennen in apparaat '%s'."
 
-#~ msgid "Failed trying to get video frames from device '%s'."
-#~ msgstr "Kan geen videoframes verkrijgen van apparaat '%s'."
+#~ msgid "Could not establish connection to sound server"
+#~ msgstr "Kan geen verbinding maken met de geluidsserver"
 
-#~ msgid "Failed after %d tries. device %s. system error: %s"
-#~ msgstr "Fout na %d pogingen. Apparaat %s. Systeemfout: %s"
+#~ msgid "Failed to query sound server capabilities"
+#~ msgstr "Kan de eigenschappen van de geluidsserver niet opvragen"
diff --git a/po/or.gmo b/po/or.gmo
index 5731504f6eb9fddac9aafe217cd962e131c7d9ce..e8246757948ae0f4f3973ea7d48d6ca96f318ef4 100644
GIT binary patch
delta 205
zcmey(dVsC|o)F7a1|VPsVi_QI0b+I_&H-W&=m26aAnpWWkoXiJHUr{0K+Fcjmw~u~
zk%8eBkX8iZU?v6zIUrpMq(KHx0n(yCT8o*10jP|D1&Cn)C?x{67%0cU;G3CTlwXjM
zpO-qZU=N3(sg<djwt>-P6UKk?>mIDx_h3!?gEdnhtnGcUX2XNE-4E8R29qm*B9rx*
G&Hw=Jpe+*s

delta 152
zcmX@W_M5f-o)F7a1|VPoVi_Q|0b*7ljsap2C;(!1AT9)AGa#-6Vm2V&0K^rH3=G?W
zv>Xr{FflNI4DtukqCom7kOoRK04WA$AO@Ka2EO@unI-u}41W0v`9%s77p>(mGO#i*
Q);2Jl9M1S}ayipU079V_JOBUy

diff --git a/po/or.po b/po/or.po
index 66b5be203..673ec9f92 100644
--- 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: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\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"
@@ -17,18 +17,24 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#. TRANSLATORS: 'song title' by 'artist name'
-#, c-format
-msgid "'%s' by '%s'"
+msgid "Jack server not found"
 msgstr ""
 
 msgid "Failed to decode JPEG image"
 msgstr ""
 
+#. TRANSLATORS: 'song title' by 'artist name'
+#, c-format
+msgid "'%s' by '%s'"
+msgstr ""
+
 #, fuzzy
 msgid "Could not connect to server"
 msgstr "\"%s\" ନିୟନ୍ତ୍ରଣ ଯନ୍ତ୍ର ବନ୍ଦ କରିହେଲା ନାହିଁ."
 
+msgid "No URL set."
+msgstr ""
+
 #, fuzzy
 msgid "Server does not support seeking."
 msgstr "\"%s\" ଯନ୍ତ୍ର ଗୋଟିଏ ଅନୁଲିପିକାର ନୁହେଁ."
@@ -51,9 +57,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "No URL set."
-msgstr ""
-
 msgid "Internal data stream error."
 msgstr ""
 
@@ -66,6 +69,9 @@ msgstr ""
 msgid "This file is invalid and cannot be played."
 msgstr ""
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr ""
 
@@ -111,6 +117,23 @@ msgstr "\"%s\" ଧ୍ବନି ଯନ୍ତ୍ର ଲେଖିବା ପାଇ
 msgid "Could not open audio device for playback."
 msgstr "\"%s\" ଧ୍ବନି ଯନ୍ତ୍ର ଲେଖିବା ପାଇଁ ଖୋଲିହେଲା ନାହିଁ."
 
+msgid ""
+"Could not open audio device for playback. This version of the Open Sound "
+"System is not supported by this element."
+msgstr ""
+
+msgid "Playback is not supported by this audio device."
+msgstr ""
+
+msgid "Audio playback error."
+msgstr ""
+
+msgid "Recording is not supported by this audio device."
+msgstr ""
+
+msgid "Error recording from audio device."
+msgstr ""
+
 #, fuzzy
 msgid ""
 "Could not open audio device for recording. You don't have permission to open "
@@ -121,21 +144,33 @@ msgstr "ସି.ଡି. ଯନ୍ତ୍ର ପଢ଼ିବା ପାଇଁ ଖୋ
 msgid "Could not open audio device for recording."
 msgstr "ସି.ଡି. ଯନ୍ତ୍ର ପଢ଼ିବା ପାଇଁ ଖୋଲିହେଲା ନାହିଁ."
 
-msgid ""
-"Could not open audio device for playback. This version of the Open Sound "
-"System is not supported by this element."
+#, fuzzy
+msgid "Record Source"
+msgstr "ପ୍ରଦର୍ଶିକା"
+
+msgid "Microphone"
+msgstr "ମାଇକ୍ରୋଫୋନ୍"
+
+#, fuzzy
+msgid "Line In"
+msgstr "ଲାଇନ-ଇନ"
+
+msgid "Internal CD"
 msgstr ""
 
-msgid "Playback is not supported by this audio device."
+msgid "SPDIF In"
 msgstr ""
 
-msgid "Audio playback error."
+msgid "AUX 1 In"
 msgstr ""
 
-msgid "Recording is not supported by this audio device."
+msgid "AUX 2 In"
 msgstr ""
 
-msgid "Error recording from audio device."
+msgid "Codec Loopback"
+msgstr ""
+
+msgid "SunVTS Loopback"
 msgstr ""
 
 msgid "Volume"
@@ -236,6 +271,10 @@ msgstr "\"%s\" ଧ୍ବନି ଯନ୍ତ୍ର ବନ୍ଦ କରିହେ
 msgid "Failed to change mute state for device '%s'."
 msgstr "\"%s\" ଯନ୍ତ୍ରରୁ ଅସ୍ଥାୟୀ ସଞ୍ଚୟ ସ୍ଥାନ ଆଣିହେଲା ନାହିଁ."
 
+#, fuzzy, c-format
+msgid "Cannot identify device '%s'."
+msgstr "\"%s\" ଯନ୍ତ୍ରରେ ଲେଖିହେଲା ନାହିଁ."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -258,10 +297,6 @@ msgstr ""
 msgid "Failed getting controls attributes on device '%s'."
 msgstr ""
 
-#, fuzzy, c-format
-msgid "Cannot identify device '%s'."
-msgstr "\"%s\" ଯନ୍ତ୍ରରେ ଲେଖିହେଲା ନାହିଁ."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr ""
@@ -343,9 +378,6 @@ msgstr ""
 #~ msgid "Line-in"
 #~ msgstr "ଲାଇନ-ଇନ"
 
-#~ msgid "Microphone"
-#~ msgstr "ମାଇକ୍ରୋଫୋନ୍"
-
 #~ msgid "CD"
 #~ msgstr "ସି.ଡି."
 
@@ -412,10 +444,6 @@ msgstr ""
 #~ msgid "Side"
 #~ msgstr "ଭିଡିଓ"
 
-#, fuzzy
-#~ msgid "Line In"
-#~ msgstr "ଲାଇନ-ଇନ"
-
 #, fuzzy
 #~ msgid "Output Gain"
 #~ msgstr "ନିର୍ଗମ-ବୃଦ୍ଧି"
@@ -424,10 +452,6 @@ msgstr ""
 #~ msgid "Microphone Boost"
 #~ msgstr "ମାଇକ୍ରୋଫୋନ୍"
 
-#, fuzzy
-#~ msgid "Monitor Source"
-#~ msgstr "ପ୍ରଦର୍ଶିକା"
-
 #, fuzzy
 #~ msgid "Microphone Gain"
 #~ msgstr "ମାଇକ୍ରୋଫୋନ୍"
diff --git a/po/pl.gmo b/po/pl.gmo
index 983e062b72188f498b532901cefda7c59c9a41dd..d44cc0c67923dddaffe26c8fab6db57c4e3b9a22 100644
GIT binary patch
delta 2033
zcmY+^ZA@EL7{Kw<u7cxjNGS?qaK}4ibZvPVt1<?ZK^aJO86Y1>I##fb++qb5OiUMD
zviTNFZZ<Q~ec1=M>5{pdm}q9QWb23d5<jRhMmJ)jXfhKM<M^~>{-4`R)RR8_opalJ
z&$-We?p=#q>Py`za-CMRL86?Pbt)CZYc9TMku0V1@F|r4Oya|M5jW#idwk6vr_sal
zudxt+MY--eR-ijusa6c&R;5yEhE5{~Ucq|2jCJ^(ef&O-GOlCR=kX;R!#{Bc_Ops{
zOkxXufilqptig&LrK+(Pqd0>NcnhnTU;RZVzyVLLwIVfu{fv*`0Dg$=cn|%!lXQ4-
z66L%%Q6|2QGU4C24@>hi;|Y`nq_7sxV;kN=7xSwJbXcr%6)43VssKx|3`vn{#UhL#
z$xu_s&8wrx+SR;$JcV-pNt6W}cm_YmBu2L=wF|#Rrc^HWC*`A4L`N>zi?Wa*ti(~&
za1mus-$ox^#(KPiLCkt2vlZRg%y`xwzk_lkX=MA=DlR*eT0=MEMK}2$qVpOf7OB3s
zU9-Js>nc`i8^61;1pT-Z2T&HefMGn1Qah{If?2FuQXRzIIETG>0T=KO5BWbu=P*~D
z#k<&p<ByVFT){5Pe#|a5>|mTkncxFl#8s3#ALVwvcmm}*CQ7E(aTqJgGR|Uz@uw*|
zd+Fq|(VaMmvcgj+$G=2bc`nb;1omPpp2NrS8+*Kk^c-LuLaBkbP-^2{l+3=5QhXoV
z{)F6{N;!E}<PT-GjVQIyfl_SUNH$d%2XPXw;6;2DC&<4n_!pG_HE5YT??k!oaoc4K
zGCqe@_yh7usr!6)aA4c^OsYq5KjSmlhPP2N;N~nz`2l3{Duq00>OFMeMw7arzSI+h
z)C4<Y6&qNOuRKXj1SLR*QkjaUZ|##Pi;)ZW6I}#Pi}ga0!ji^%tR~O2RJCje4}z5)
zu(BqpmF<xQ%R9kGNR!M;ldZ5C^ILDDhfpfpNk|$SiArLl_0f^^Q4X1ULCKP2sE3e7
zDOfKg=}X222#wfid+d(=X17Mq$hYj@CZe5?)P@LY6s`5b@S^PHK0?|KqTA|a_ENf1
z{hdTUK~3}axt(>`6V_Gtp>fTxjV#Pty?_?h&7SP(O~&5bPUA-IUE{~Ra^tJ~JYyjL
zy3tb5VxBFy<Z$+ej6H=TC7eDK*JIY%!||zPV(!_59y4Dre8Z8g9ZW1Fr(#B7QHL|E
z8{I|IX0>~l!}zGUX|vDk_jv>D-hlCQairPb7Hn&8@&$apoXAM?)3L?)3-N^B9E#4z
zf?B}m_c#0a?A8MQU|Wkh>FIYg#hy#AOvPiGwRknQ^#9?1e+`&dOHR0qobqw=v+@Rq
zQCm@OT&Y+$eyi*<V_L{rFcv$e-#j~?d{JN0xUCCS)3qDt&&Kt5{NJl*hQslr$;5O*
zH@8;*?x;+ElDuIaNxz)X^yo}-=~z^cN7a)X-Iy^~>M>SpYM8}d;=xELyx-`nT{aKZ
R9e3pSb831;CvKip{{V&o5WWBa

delta 3089
zcma*nU2GiH6~OVkabgF@PHiWFtv`~R#>Nmki|r(Y7-$lIBoGKm2*I?fRE=k^?Xh=f
z*0VENcKfj+;iIJl5r(!(Q=v%YrR62kwxCK>ts3tus1h_!AW+q+l?tj<rIp&3{?F{%
z*sWCcYVZDLW@qN!d(OH0)5$-cDu2|m{`-n{n%+&nwoa)m4sPI!_Hm<9E%*r@$ItLK
zJlIro9Jg_P0^86=c~5}b@e=OC>)3^Vz`HTAQK^2V%4&dvJGpQM<%beJiPvxu|AkYS
zWz^kR#i#JExECL8t_}1p+{O8iaRh&jyYX+h1-EZfsuxF4?wi6c##i6qV1NrhL<?`=
zUD(I6zl4vWyl@c*@fylXev1?MDIUX-R;3=o65fk9P$uwC9LB!Qwf9V6it`ucoblB!
zIFOb61!ac%3rZcvNtE;FQD*!m_ThWDA8+A$93bulLk-~<aTH~OPhbb;kRYlHNc7c9
z$QspaSeBVy<=_W+6Mb~smAVH%!69ttEi%9u?!ZS;V+JMn7x56jf%oI@QJ&jD+{v*z
zg`@a1N<=ES2S3_E{N+N+*4oSupq!t^z4%R}-qdycUP7t2k!RKT?Mwovkf5n+bt~Az
z`EQVq`k1dl{0GX!d+(rLZ~~>~UcQ6)%RoQpf`s(XcmQ`K83d;=#4Gq6Y$v`M{1J{}
zQ>Ri3cpN1HZ=o#U?|2{XBoCALRlFCkqD=56%I~+z9LNMx>=`MxX_N^(hv)E@D52WN
zQz`i!W#CIF1HO+E;;rm88y~<Ec(v|lcuKCb{KI$=zl`tJEw^f=9^}HKC@X#u;~P*W
z(z=t`<0S6Gt9U<tP(N>H){k(06s4$M#b$gRrC5Jb_dO)I>K01MTB&G?v8=i|Ag!tw
zkK;kSj?dzEaX(vN9Djvl*uY!m1xIld&m!+sub{>X9>w?ZAa;>x3H4c&h`o&R`@6Vb
z_Ww5GCo6pfB^4KtsH(S7a`pjAv9<80(1KsV1VUUyr%{?jM<ytPNt3WkYobeJ*3qRl
z9;3@{A~Ul7+8%F38GM2+O(H_k#yOWQCi`64-SkO1!BI!(8|gARN#SynC{k8&YvWrg
zo-$Gm^g+68ZHbt)@(^FLD#@v=T0**kF8^4PujNKTuQUn2rZ>{1*rZ9$kI|)ei2O<$
z;YfCtq++@4Ts}~0KHksC`h}DD5S@s}f64s8#VLT5wuhrQUHAZ9a>{Oua|(+8EOl58
zX#5YwZ3o}u(TT?ChLd4XS!$eVDBG6ndV#jBToC$3TY>INKi!vB6Xu*_8{OZR@8`!g
z_c*Q&=8VqgjP1-gCaq^YKWhbR9!Yy9ujR%0FqiZEK%aBc##<id^IMyFy_46|VZIpk
zG#`(~o40KULf80_X&$71+HTKT?yS+-Fkr~Q3QTmVwL5xzQ}?KG!>sYSqH|t8?@VV*
zeU#dK@;beC4Z7g@3%cM0bCJF2X18yp9Zx%ME)2BiuD&^?qk)#OCKCjXJDaZ@Y583u
z+O>Hy4%)Xjzm$lQZNt&yZC@{^ednC<wKuc+Y5iYox7?y$aJ_=7A3mwGCYbZmDfI*)
z{6C+UXs<j;e&S~dXys>ZgNd)jfvqpq_QFg$j=Sv}iOh63Gs6sXo|j3fCs*H^c4{|T
zwrz5Oc1=Og_*T~FIHLL5;-e4SQyYd;L#e&d){avfM}|g+_6`gUN12Xf>&Twr;XNbw
z>EVN;BL^y%I*uh;i}Tehwqx{>vrp;aO2gJ?*YC=Cfp5(?I_H;+Jy$3O#e%i;g7&6;
zs}$C1Em}<8KJ>ruE3kqzVa(QQjWOh*L*8`0dOn;D=P7|z?{^)mK7cywmzJJOmyFA-
z;#!_J`9PPf`K8NL(qht${AA~$xZ+GUrN*k~xm^acOI9AI9V$%Tm-VXeWSoL03)JEA
zORe~&l@F7<6UnT@C@hU4bwgb!+D=}^wW7tY{;09@t}}&V#<5F9Zb^IjVCizsE!uPS
z&2ytts84xNm-Iq#qv98{PCP1QQgW>7c?nziAIquqbT%dW3nq@cMd~Q&f|>Pr$LF`!
zCP`8EbaqC)U56^YT^H6xZ}pg!d}SQhaVm$m|0xkYs3)RV^u^oG1jeUgorUO`?k)R>
z-l|wv-?7rJnb#%P5~ye|UDO40PobDnYaZ-b`{3$3$$h1J=QD}2r08-zMfI|fY-PRK
z>UmFx0lPL1S}x2uQqP`Guu^L>yXrCOph$A%QFfe!A|xRN$&ICLM#=|Xu#(7yjMWjC
Qg_JtR1Jx@oedz`DZ+Q@Wga7~l

diff --git a/po/pl.po b/po/pl.po
index 107d65795..f9abe161e 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,13 +1,13 @@
 # Polish translation for gst-plugins-good.
 # This file is distributed under the same license as the gst-plugins-good package.
-# Jakub Bogusz <qboosh@pld-linux.org>, 2007-2012.
+# Jakub Bogusz <qboosh@pld-linux.org>, 2007-2011.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good 1.0.3\n"
+"Project-Id-Version: gst-plugins-good 0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
-"PO-Revision-Date: 2012-11-28 19:27+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
+"PO-Revision-Date: 2011-01-07 21:53+0100\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
 "Language: pl\n"
@@ -15,17 +15,23 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Nie udało się zdekodować obrazu JPEG"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "'%s' autorstwa '%s'"
 
-msgid "Failed to decode JPEG image"
-msgstr "Nie udało się zdekodować obrazu JPEG"
-
 msgid "Could not connect to server"
 msgstr "Nie udało się połączyć z serwerem"
 
+msgid "No URL set."
+msgstr "Nie ustawiono URL-a."
+
 msgid "Server does not support seeking."
 msgstr "Serwer nie obsługuje przewijania."
 
@@ -45,9 +51,6 @@ msgstr "Wystąpił błąd sieciowy lub serwer nieoczekiwanie zamknął połącze
 msgid "Server sent bad data."
 msgstr "Serwer przysłał błędne dane."
 
-msgid "No URL set."
-msgstr "Nie ustawiono URL-a."
-
 msgid "Internal data stream error."
 msgstr "Błąd wewnętrzny strumienia danych."
 
@@ -60,6 +63,9 @@ msgstr "Ten plik nie zawiera strumieni nadajÄ…cych siÄ™ do odtworzenia."
 msgid "This file is invalid and cannot be played."
 msgstr "Ten plik jest błędny i nie może być odtworzony."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Ten plik jest uszkodzony i nie może być odtworzony."
 
@@ -112,16 +118,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Nie udało się otworzyć urządzenia dźwiękowego do odtwarzania."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Nie udało się otworzyć urządzenia dźwiękowego do nagrywania. Brak uprawnień "
-"do otwarcia urzÄ…dzenia."
-
-msgid "Could not open audio device for recording."
-msgstr "Nie udało się otworzyć urządzenia dźwiękowego do nagrywania."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -141,6 +137,45 @@ msgstr "Nagrywanie nie jest obsługiwane przez to urządzenie dźwiękowe."
 msgid "Error recording from audio device."
 msgstr "Błąd nagrywania z urządzenia dźwiękowego."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Nie udało się otworzyć urządzenia dźwiękowego do nagrywania. Brak uprawnień "
+"do otwarcia urzÄ…dzenia."
+
+msgid "Could not open audio device for recording."
+msgstr "Nie udało się otworzyć urządzenia dźwiękowego do nagrywania."
+
+msgid "Record Source"
+msgstr "Źródło nagrywania"
+
+msgid "Microphone"
+msgstr "Mikrofon"
+
+msgid "Line In"
+msgstr "Wejście linii"
+
+msgid "Internal CD"
+msgstr "Wewnętrzny CD"
+
+msgid "SPDIF In"
+msgstr "Wejście SPDIF"
+
+msgid "AUX 1 In"
+msgstr "Wejście AUX 1"
+
+msgid "AUX 2 In"
+msgstr "Wejście AUX 2"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Pętla zwrotna"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Pętla zwrotna"
+
 msgid "Volume"
 msgstr "Głośność"
 
@@ -175,71 +210,77 @@ msgstr "Błąd odczytu %d bajtów z urządzenia '%s'."
 #, c-format
 msgid "Failed to enumerate possible video formats device '%s' can work with"
 msgstr ""
-"Nie udało się wyliczyć dostępnych formatów obrazu, z którymi może działać "
-"urzÄ…dzenie '%s'"
 
 #, c-format
 msgid "Could not map buffers from device '%s'"
 msgstr "Nie udało się odwzorować buforów z urządzenia '%s'"
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
-msgstr "Sterownik urządzenia '%s' nie obsługuje metody we/wy %d"
+msgstr ""
+"Sterownik urządzenia '%s' nie obsługuje żadnej znanej metody przechwytywania."
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support any known IO method."
-msgstr "Sterownik urządzenia '%s' nie obsługuje żadnej znanej metody we/wy."
+msgstr ""
+"Sterownik urządzenia '%s' nie obsługuje żadnej znanej metody przechwytywania."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' does not support video capture"
-msgstr "Urządzenie '%s' nie obsługuje przechwytywania obrazu"
+msgstr "Urządzenie '%s' nie jest urządzeniem wyjściowym."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is busy"
-msgstr "Urządzenie '%s' jest zajęte"
+msgstr "Urządzenie '%s' nie jest urządzeniem wyjściowym."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' cannot capture at %dx%d"
-msgstr "Urządzenie '%s' nie potrafi przechwytywać obrazu %dx%d"
+msgstr "UrzÄ…dzenie '%s' nie jest urzÄ…dzeniem przechwytujÄ…cym."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' cannot capture in the specified format"
-msgstr "Urządzenie '%s' nie potrafi przechwytywać obrazu w podanym formacie"
+msgstr "UrzÄ…dzenie '%s' nie jest urzÄ…dzeniem przechwytujÄ…cym."
 
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Nie udało się uzyskać parametrów urządzenia '%s'"
 
+#, fuzzy
 msgid "Video device did not accept new frame rate setting."
 msgstr ""
-"Urządzenie obrazu nie przyjęło nowego ustawienia częstotliwości klatek."
+"Urządzenie wejściowe obrazu nie przyjęło nowego ustawienia częstotliwości "
+"klatek."
 
 msgid "Video device could not create buffer pool."
-msgstr "Urzędzenie obrazu nie mogło utworzyć puli buforów."
+msgstr ""
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get settings of tuner %d on device '%s'."
 msgstr "Nie udało się uzyskać ustawień tunera %d urządzenia '%s'."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Error getting capabilities for device '%s'."
-msgstr "Błąd podczas pobierania możliwości uządzenia '%s'."
+msgstr "Błąd odczytu %d bajtów z urządzenia '%s'."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is not a tuner."
-msgstr "UrzÄ…dzenie '%s' nie jest tunerem."
+msgstr "Urządzenie '%s' nie jest urządzeniem wyjściowym."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get radio input on device '%s'. "
-msgstr "Nie udało się uzyskać wejścia radiowego z urządzenia '%s'. "
+msgstr "Nie udało się ustawić wejścia %d urządzenia %s."
 
 #, c-format
 msgid "Failed to set input %d on device %s."
 msgstr "Nie udało się ustawić wejścia %d urządzenia %s."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to change mute state for device '%s'."
-msgstr "Nie udało się zmienić stanu wyciszenia dla urządzenia '%s'."
+msgstr "Nie udało się uzyskać siły sygnału dla urządzenia '%s'."
+
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Nie można zidentyfikować urządzenia '%s'."
 
 #, c-format
 msgid ""
@@ -265,10 +306,6 @@ msgstr "Nie udało się odpytać normalizacji urządzenia '%s'."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Nie udało się uzyskać atrybutów sterujących urządzenia '%s'."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Nie można zidentyfikować urządzenia '%s'."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "To nie jest urzÄ…dzenie '%s'."
@@ -332,3 +369,350 @@ msgstr "Zmiana rozdzielczości w czasie działania nie jest jeszcze obsługiwana
 
 msgid "Cannot operate without a clock"
 msgstr "Nie można pracować bez zegara"
+
+#~ msgid "Got unexpected frame size of %u instead of %u."
+#~ msgstr "Otrzymano nieoczekiwany rozmiar klatki %u zamiast %u."
+
+#~ msgid "Failed trying to get video frames from device '%s'."
+#~ msgstr "Nie udało się uzyskać klatek obrazu z urządzenia '%s'."
+
+#~ msgid "Failed after %d tries. device %s. system error: %s"
+#~ msgstr "Niepowodzenie po %d próbach. Urządzenie %s. Błąd systemowy: %s"
+
+#~ msgid "Bass"
+#~ msgstr "Niskie"
+
+#~ msgid "Treble"
+#~ msgstr "Wysokie"
+
+#~ msgid "Synth"
+#~ msgstr "Syntezator"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Speaker"
+#~ msgstr "Głośniczek"
+
+#~ msgid "Line-in"
+#~ msgstr "Wejście"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Mixer"
+#~ msgstr "Mikser"
+
+#~ msgid "PCM-2"
+#~ msgstr "PCM-2"
+
+#~ msgid "Record"
+#~ msgstr "Nagrywanie"
+
+#~ msgid "In-gain"
+#~ msgstr "Wzmocnienie we"
+
+#~ msgid "Out-gain"
+#~ msgstr "Wzmocnienie wy"
+
+#~ msgid "Line-1"
+#~ msgstr "Linia 1"
+
+#~ msgid "Line-2"
+#~ msgstr "Linia 2"
+
+#~ msgid "Line-3"
+#~ msgstr "Linia 3"
+
+#~ msgid "Digital-1"
+#~ msgstr "Cyfrowe 1"
+
+#~ msgid "Digital-2"
+#~ msgstr "Cyfrowe 2"
+
+#~ msgid "Digital-3"
+#~ msgstr "Cyfrowe 3"
+
+#~ msgid "Phone-in"
+#~ msgstr "Mikrofon"
+
+#~ msgid "Phone-out"
+#~ msgstr "SÅ‚uchawki"
+
+#~ msgid "Video"
+#~ msgstr "Obraz"
+
+#~ msgid "Radio"
+#~ msgstr "Radio"
+
+#~ msgid "Could not open audio device for mixer control handling."
+#~ msgstr ""
+#~ "Nie udało się otworzyć urządzenia dźwiękowego do sterowania mikserem."
+
+#~ msgid ""
+#~ "Could not open audio device for mixer control handling. This version of "
+#~ "the Open Sound System is not supported by this element."
+#~ msgstr ""
+#~ "Nie udało się otworzyć urządzenia dźwiękowego do sterowania mikserem. Ta "
+#~ "wersja Open Sound System nie jest obsługiwana przez ten element."
+
+#~ msgid "Master"
+#~ msgstr "Główna"
+
+#~ msgid "Front"
+#~ msgstr "Przód"
+
+#~ msgid "Rear"
+#~ msgstr "Tył"
+
+#~ msgid "Headphones"
+#~ msgstr "SÅ‚uchawki"
+
+#~ msgid "Center"
+#~ msgstr "Åšrodek"
+
+#~ msgid "LFE"
+#~ msgstr "LFE"
+
+#~ msgid "Surround"
+#~ msgstr "Surround"
+
+#~ msgid "Side"
+#~ msgstr "Boki"
+
+#~ msgid "AUX Out"
+#~ msgstr "Wyjście AUX"
+
+#~ msgid "3D Depth"
+#~ msgstr "Głębia 3D"
+
+#~ msgid "3D Center"
+#~ msgstr "Åšrodek 3D"
+
+#~ msgid "3D Enhance"
+#~ msgstr "Rozszerzenie 3D"
+
+#~ msgid "Telephone"
+#~ msgstr "Telefon"
+
+#~ msgid "Video In"
+#~ msgstr "Wejście video"
+
+#~ msgid "AUX In"
+#~ msgstr "Wejście AUX"
+
+#~ msgid "Record Gain"
+#~ msgstr "Wzmocnienie nagrywania"
+
+#~ msgid "Output Gain"
+#~ msgstr "Wzmocnienie wyjścia"
+
+#~ msgid "Microphone Boost"
+#~ msgstr "Podbicie mikrofonu"
+
+#~ msgid "Diagnostic"
+#~ msgstr "Diagnostyka"
+
+#~ msgid "Bass Boost"
+#~ msgstr "Podbicie basów"
+
+#~ msgid "Playback Ports"
+#~ msgstr "Porty odtwarzania"
+
+#~ msgid "Input"
+#~ msgstr "Wejście"
+
+#~ msgid "Monitor Source"
+#~ msgstr "Źródło monitora"
+
+#~ msgid "Keyboard Beep"
+#~ msgstr "Piszczenie klawiatury"
+
+#~ msgid "Simulate Stereo"
+#~ msgstr "Symulacja stereo"
+
+#~ msgid "Stereo"
+#~ msgstr "Stereo"
+
+#~ msgid "Surround Sound"
+#~ msgstr "Dźwięk surround"
+
+#~ msgid "Microphone Gain"
+#~ msgstr "Wzmocnienie mikrofonu"
+
+#~ msgid "Speaker Source"
+#~ msgstr "Źródło głośniczka"
+
+#~ msgid "Microphone Source"
+#~ msgstr "Źródło mikrofonu"
+
+#~ msgid "Jack"
+#~ msgstr "Gniazdo jack"
+
+#~ msgid "Center / LFE"
+#~ msgstr "Åšrodek / LFE"
+
+#~ msgid "Stereo Mix"
+#~ msgstr "Miksowanie stereo"
+
+#~ msgid "Mono Mix"
+#~ msgstr "Miksowanie mono"
+
+#~ msgid "Input Mix"
+#~ msgstr "Miksowanie wejścia"
+
+#~ msgid "Microphone 1"
+#~ msgstr "Mikrofon 1"
+
+#~ msgid "Microphone 2"
+#~ msgstr "Mikrofon 2"
+
+#~ msgid "Digital Out"
+#~ msgstr "Wyjście cyfrowe"
+
+#~ msgid "Digital In"
+#~ msgstr "Wejście cyfrowe"
+
+#~ msgid "HDMI"
+#~ msgstr "HDMI"
+
+#~ msgid "Modem"
+#~ msgstr "Modem"
+
+#~ msgid "Handset"
+#~ msgstr "Zestaw słuchawkowy"
+
+#~ msgid "Other"
+#~ msgstr "Inne"
+
+#~ msgid "None"
+#~ msgstr "Brak"
+
+#~ msgid "On"
+#~ msgstr "WÅ‚Ä…czone"
+
+#~ msgid "Off"
+#~ msgstr "Wyłączone"
+
+#~ msgid "Mute"
+#~ msgstr "Wyciszenie"
+
+#~ msgid "Fast"
+#~ msgstr "Szybko"
+
+#~ msgid "Very Low"
+#~ msgstr "Bardzo małe"
+
+#~ msgid "Low"
+#~ msgstr "Małe"
+
+#~ msgid "Medium"
+#~ msgstr "Åšrednie"
+
+#~ msgid "High"
+#~ msgstr "Duże"
+
+#~ msgid "Very High"
+#~ msgstr "Bardzo duże"
+
+#~ msgid "Production"
+#~ msgstr "Produkcja"
+
+#~ msgid "Front Panel Microphone"
+#~ msgstr "Mikrofon na panelu przednim"
+
+#~ msgid "Front Panel Line In"
+#~ msgstr "Wejście linii na panelu przednim"
+
+#~ msgid "Front Panel Headphones"
+#~ msgstr "SÅ‚uchawki na panelu przednim"
+
+#~ msgid "Front Panel Line Out"
+#~ msgstr "Wyjśćie linii na panelu przednim"
+
+#~ msgid "Green Connector"
+#~ msgstr "ZÅ‚Ä…cze zielone"
+
+#~ msgid "Pink Connector"
+#~ msgstr "Złącze różowe"
+
+#~ msgid "Blue Connector"
+#~ msgstr "ZÅ‚Ä…cze niebieskie"
+
+#~ msgid "White Connector"
+#~ msgstr "Złącze białe"
+
+#~ msgid "Black Connector"
+#~ msgstr "ZÅ‚Ä…cze czarne"
+
+#~ msgid "Gray Connector"
+#~ msgstr "ZÅ‚Ä…cze szare"
+
+#~ msgid "Orange Connector"
+#~ msgstr "Złącze pomarańczowe"
+
+#~ msgid "Red Connector"
+#~ msgstr "ZÅ‚Ä…cze czerwone"
+
+#~ msgid "Yellow Connector"
+#~ msgstr "Złącze żółte"
+
+#~ msgid "Green Front Panel Connector"
+#~ msgstr "ZÅ‚Ä…cze zielone na panelu przednim"
+
+#~ msgid "Pink Front Panel Connector"
+#~ msgstr "Złącze różowe na panelu przednim"
+
+#~ msgid "Blue Front Panel Connector"
+#~ msgstr "ZÅ‚Ä…cze niebieskie na panelu przednim"
+
+#~ msgid "White Front Panel Connector"
+#~ msgstr "Złącze białe na panelu przednim"
+
+#~ msgid "Black Front Panel Connector"
+#~ msgstr "ZÅ‚Ä…cze czarne na panelu przednim"
+
+#~ msgid "Gray Front Panel Connector"
+#~ msgstr "ZÅ‚Ä…cze szare na panelu przednim"
+
+#~ msgid "Orange Front Panel Connector"
+#~ msgstr "Złącze pomarańczowe na panelu przednim"
+
+#~ msgid "Red Front Panel Connector"
+#~ msgstr "ZÅ‚Ä…cze czerwone na panelu przednim"
+
+#~ msgid "Yellow Front Panel Connector"
+#~ msgstr "Złącze żółte na panelu przednim"
+
+#~ msgid "Spread Output"
+#~ msgstr "Rozprowadzenie wyjścia"
+
+#~ msgid "Downmix"
+#~ msgstr "Miksowanie w dół"
+
+#~ msgid "Virtual Mixer Input"
+#~ msgstr "Wejście miksera wirtualnego"
+
+#~ msgid "Virtual Mixer Output"
+#~ msgstr "Wyjście miksera wirtualnego"
+
+#~ msgid "Virtual Mixer Channels"
+#~ msgstr "Kanały miksera wirtualnego"
+
+#~ msgid "%s %d Function"
+#~ msgstr "Funkcja %s %d"
+
+#~ msgid "%s Function"
+#~ msgstr "Funkcja %s"
+
+#~ msgid "Error reading %d bytes on device '%s'."
+#~ msgstr "Błąd odczytu %d bajtów z urządzenia '%s'."
+
+#~ msgid "Could not enqueue buffers in device '%s'."
+#~ msgstr "Nie udało się skolejkować buforów urządzenia '%s'."
+
+#~ msgid "Could not establish connection to sound server"
+#~ msgstr "Nie udało się nawiązać połączenia z serwerem dźwięku"
+
+#~ msgid "Failed to query sound server capabilities"
+#~ msgstr "Nie udało się odpytać o możliwości serwera dźwięku"
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 76cc75cbad06eee29e342cc4095a791385d403e6..9fb0bdf9827a12899be83948de6d240e765e7ae5 100644
GIT binary patch
delta 1881
zcmY+^QEXFH9LMp0YuT96O*S^!VDwHDWMgx!+Z>w$qZ_OUZn^+dB6`!6(QLHZYzPmg
z4=yn#`XCLOnDAgolqD`2N@7fAG%h?aO-zhFiU}w&#>B*kPbz+Y_ugqd*}0!{?%I3)
z=YRgUKkfNwsCcb5a?WV`=^N?OVY3V_M!3*ME6mp56R6J|!__#CRd^|wF9!1~SkL{h
z@NWDO_1r&j6V_FlbzuTGm=$f3!8UHZj9YO5x8S$I{Xg+A^DV6U0=|St@K<cbeMB*i
z1$+p<KrM6|@54=Znr+4;x;Tjs;8nbr_3bwX32xNi<waz}xR3b+4&(dSgSRk_+et?U
z9z%Wab=1P2p%(ldcVlDJpFfQXposV51?<MF7-4<8&46GnQf<Z>R*j9=grvy2uog#=
zWLO&6yiFmo+e~o3i2D93sDMlOCN5(E-5Rq8@f&1Gi*P>0P6o9M^uQ!4kOLUQ!|32C
z)S148ow$Ho@f!AF#ajO;2C$v^bTEG#wUH~x@!R+KX~^s*Du8$E$bX8#<vMnaf1~~p
zUFXj?pysWpfO?TX8|R{(oW$*T9v{PHRA3E6y90M(Kc2>Jyo^cw8P8xx1NlG8;9`T>
zi`ajU*#MSt7H{ERoLcWMcnS5O>)3_s+1?Z$#BKO7s<>|84qVfuBI6mTBF*9v{2cY%
zrXmNdfs6XWMcj$k16z1^l=A2BNqi%i|9~pG`er|{6l!N@a20-n%IFfRM!rU6@Vmgj
zkQl7k%)7!dS}#%;mO|CQQ>bD}BU!aP>aCc=Mf?)y@Kv6=3#%RfbC2Vr%+si&dk1+T
z>;qJW7EwoZ6M00@s$2XWx1)ACjYD`I`|(C#j66Qf{3x<{E1`<&Lk!_cQ$0{$_6S|I
z#Yq`u<+V6hy-96!N`TC8{@SgYqEhRnD`M?dJ5yGO)ca8aBOb5momK#<17&bOU9FN%
z*?7V0i1eGFjj8D^Q`7H&*I3^x7@Zk4Xkoh2tyIP6D@_^cqf-`MeduUZH!8+GbTwrq
z;f?%E4KsFvxlnznMSQ&LAzf8CchL2tL0#A&U5z64Ub7BVG3}<SwbBQ?kzd^!w$pX)
zI`gK|{Ho*ishkZQ8h7H($n1<aN;s)pxwc}gGMpSN9gU7O@QDN2T*mvr!ECyafBr;1
zmnknqUkg<_WBJ)aI#Wv2^oIFbx~4I_I^Nya-P6{YD9^1u8)_TM%@o`T*Kuc0cQ|ny
zbC(wWoBi*fiSp*U`Kqeqpp(tbWD2>`^2TRcS3WV3ai+7m6Yk0b{+)Xf9alg-&A)`!
ojTEwznUfCxo-DYh+@<%HF62usv0c%X2aSymruLSfja7yJ0c@q&-~a#s

delta 1567
zcmY+^NlcSL6u|LUzyiu<K^C!C0a+CaWk+@qLD2*f0nx+?h(;t4!R=r@aMKv20#`#~
zq6v%AAQuFqcoGvm3ml9G4<yEmMoo<W_x0o8B-7u_*Y=y4H*aRX{%fsg-4-+|lsf7z
zYC(WV2ObULgYs;PNEklHCS1f&47K`=#vSzS7=<p>_Z-9|bYlVD#zdUMO#F!HA|Cle
zBaH_s!Tv9r@C5xqyo~R#4J$%KvTzjJ@fEr-f!XLl&6tXPn1T<`jdPfRaa%=_u^RKS
z3lkY%#%MI~U=|PKZ!E&PZ6bMi6LWA9^^c!W2aX^tI$$kUW3SnNf;xfsxEH@;A;yJ^
zXi%GxIY|p9Fut6kp`p2oHXK0~Cy$ZE%QP~kyg;4UYaGL0IDq#fL~=1OQpAZa)B(D2
zH}<0g@1bth4C?RRq9>ik4;p2d#0F+z2kysVvp<Uo^w*HxlApL_5&4VEK^B>HBd(zK
zW2611qD~+mW3UBtu^0E@cr@`pLSvZ+I*}-TRf;88jsvKnn?_C0FL(npSjGrW;596a
z6{*1~9KvsS2z%oE15Tp8XB7+37B6xU8{&z7CJi4CG)dM_Ctzi{MzWwLTNk$B0_uxn
zcKYqaQu-5EiL0iG?5C6dNo>J8W`7-B^dmVU8i_g&4PDt4<YdV_vYql0HFPVc8_2sQ
z%+8-N9W^J4k)TK&Y7)2O0zSfFJk8Ol!p~TN$-I<&lryLc_gtc(p&v&*MoXwGSw~%g
z-62ws$FLk9nts4y`eA#_^NyMuZnU8OmtYx%MGJv7a!e<o<C(={Bpm-S60RCc%x^Z)
z*=`mM9rH3G#1<P7<GwN?Kne+qHlkUDo5ew+#_VJxDPU~1o-n<Cq}FKoKXgTbR1FQe
zWt?yLujtv<Lh>8;K`@3=)2Mo1Xq5C6uwzC<^zPtFkpooCdc6}gw{#nGH5)ZEw^MaL
zHS}7FsJh?!y<QreETd?$C3zdI=K_xp4f>X?t-;=uh<c-QE8?!j8y}VDYl*T2gycKR
zoUUwVp0Cd~VhL|`znSWGJKRIpa~yfT%$TR4-Zgt?r1`kJ$I*A8|Ge9GHfh7+?Q&H5
JW*i{_{{V-DnZf`7

diff --git a/po/pt_BR.po b/po/pt_BR.po
index 2ad42db46..3beabc4eb 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2011-01-08 01:28-0300\n"
 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
@@ -21,17 +21,23 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Falha ao decodificar a imagem JPEG"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "\"%s\" por \"%s\""
 
-msgid "Failed to decode JPEG image"
-msgstr "Falha ao decodificar a imagem JPEG"
-
 msgid "Could not connect to server"
 msgstr "Não foi possível conectar ao servidor"
 
+msgid "No URL set."
+msgstr "Nenhum URL definido."
+
 msgid "Server does not support seeking."
 msgstr "Nâo há suporte a busca pelo servidor."
 
@@ -52,9 +58,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr "O servidor enviou dados ruins."
 
-msgid "No URL set."
-msgstr "Nenhum URL definido."
-
 msgid "Internal data stream error."
 msgstr "Erro interno no fluxo de dados."
 
@@ -67,6 +70,9 @@ msgstr "Este arquivo não contêm fluxos reproduzíveis."
 msgid "This file is invalid and cannot be played."
 msgstr "Este arquivo é inválido e não pôde ser reproduzido."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Este arquivo está corrompido e não pôde ser reproduzido."
 
@@ -119,16 +125,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Não foi possível abrir o dispositivo de áudio para reprodução."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Não foi possível abrir o dispositivo de áudio para gravação. Você não tem "
-"permissão para abrir o dispositivo."
-
-msgid "Could not open audio device for recording."
-msgstr "Não foi possível abrir o dispositivo de áudio para gravação."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -148,6 +144,45 @@ msgstr "Não há suporte a gravação por este dispositivo de áudio."
 msgid "Error recording from audio device."
 msgstr "Erro ao gravar do dispositivo de áudio."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Não foi possível abrir o dispositivo de áudio para gravação. Você não tem "
+"permissão para abrir o dispositivo."
+
+msgid "Could not open audio device for recording."
+msgstr "Não foi possível abrir o dispositivo de áudio para gravação."
+
+msgid "Record Source"
+msgstr "Origem de gravação"
+
+msgid "Microphone"
+msgstr "Microfone"
+
+msgid "Line In"
+msgstr "Entrada de linha"
+
+msgid "Internal CD"
+msgstr "CD interno"
+
+msgid "SPDIF In"
+msgstr "Entrada SPDIF"
+
+msgid "AUX 1 In"
+msgstr "Entrada aux. 1"
+
+msgid "AUX 2 In"
+msgstr "Entrada aux. 2"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Loopback"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Loopback"
+
 msgid "Volume"
 msgstr "Volume"
 
@@ -252,6 +287,10 @@ msgstr "Falha ao definir a entrada %d no dispositivo %s."
 msgid "Failed to change mute state for device '%s'."
 msgstr "Falha ao obter a força do sinal para o dispositivo \"%s\"."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "O dispositivo \"%s\" não pôde ser identificado."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -276,10 +315,6 @@ msgstr "Falha ao examinar as normas no dispositivo \"%s\"."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Falha ao obter atributos de controle no dispositivo \"%s\"."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "O dispositivo \"%s\" não pôde ser identificado."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "\"%s\" não é um dispositivo."
@@ -372,9 +407,6 @@ msgstr "Não é possível operar sem um temporizador"
 #~ msgid "Line-in"
 #~ msgstr "Entrada de linha"
 
-#~ msgid "Microphone"
-#~ msgstr "Microfone"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -475,21 +507,9 @@ msgstr "Não é possível operar sem um temporizador"
 #~ msgid "Telephone"
 #~ msgstr "Telefone"
 
-#~ msgid "Line In"
-#~ msgstr "Entrada de linha"
-
-#~ msgid "Internal CD"
-#~ msgstr "CD interno"
-
 #~ msgid "Video In"
 #~ msgstr "Entrada de vídeo"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "Entrada aux. 1"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "Entrada aux. 2"
-
 #~ msgid "AUX In"
 #~ msgstr "Entrada aux."
 
@@ -502,9 +522,6 @@ msgstr "Não é possível operar sem um temporizador"
 #~ msgid "Microphone Boost"
 #~ msgstr "Aumento do microfone"
 
-#~ msgid "Loopback"
-#~ msgstr "Loopback"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Diagnóstico"
 
@@ -517,9 +534,6 @@ msgstr "Não é possível operar sem um temporizador"
 #~ msgid "Input"
 #~ msgstr "Entrada"
 
-#~ msgid "Record Source"
-#~ msgstr "Origem de gravação"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Origem de monitoração"
 
@@ -559,9 +573,6 @@ msgstr "Não é possível operar sem um temporizador"
 #~ msgid "Input Mix"
 #~ msgstr "Mixagem de entrada"
 
-#~ msgid "SPDIF In"
-#~ msgstr "Entrada SPDIF"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Microfone 1"
 
diff --git a/po/ro.gmo b/po/ro.gmo
index dcfd5923c7b3e1382f13d800480d233318d72e90..d58785afb95d4c6dc754c23bbfa3e6ec82bd5593 100644
GIT binary patch
delta 1681
zcmYk+Uu;ZS9KiA4R9DL=tACWLb#3*ZYMG(cZA&ZdPTTm~G%O;K;?hav4%0T##JZL4
zS`W67OjJrpJb01VkP#9gf<B0sCSFJ+{)LC#WIYNG!uNO1El%dl=bSTh?>YB(e&-%*
zy0^xEo|}1EC@s`ttr;TQ)l9x9LqCYjz+;$=BRCDu1pSLa|1uUZejR_rN2vFEhCks4
zT#1EKMdssrEEn;mmqr-_r?3)l;#Pcxhp;|N<Tt#GOE7~~Y{P0?fyZ$%-og@mfju~d
zRaT&jKjR2S@fzv^-e5cPi%b`(gAR<Kk2QD=^@5kE6Xk{NMD5r@|3J{cf;#bIti|`J
z!COk$m_s7SkTl{vY)4%{4`%87ztdpR@+UHvjOY(IhPtqeIEqg(iHRJMW%wHTNbXFL
z<>;W^rweuB9l`isB-C;m8}JS;!4K$H(<qr`2f9#Kcm#>QjAD#@IFI@C-^{iXehkdY
zwf%y?64d`ikb6rEYj6uX_y@M)C9K4MbBX_I8hLqkWnH+6{z>e`aXf+5+%=9ja1A<S
zS^{_BuQ-AASTM(4zY&M&A4lDi>4kPHTd;$EA1=b%g~We9jpqz>V{ER-COnHV{12Nj
zLRfSn4}ZbyxD(%DBd#m56aR(l=-)-%^DrB&TUm&@B@0n=r801XPeb?cP@wj85C2BJ
za1=M<1-y&@;}BlqZ0VELEU+Qpi@MN3)cf5C97m1JV_bn@&SEn*qvnk7(^yI4D(YUn
z#WKuaD8iAIMhv0;Mlej_;e>#h8#iF78MR-UXj~#y)Ya5wR4tlkQK}}M7F|52%{Sqj
zX@+dlk#8o6*n0B<S%vy!lZEw}9MFCRl`S?4*6`|s=+jM>IvN^HEu@Hf517u^FW)AD
z_Vul$A=0A9P+uw<q86%#l*pScS&F*1ng^Q2x}Oe}L-Mt7K+Icna$pJ#QpH46-whl9
zTXe;2jV<M+edW&XK}VIfTedk7r_&1>n+Ez#E6Py%bLP3J8Le%pQ{kpL{9}FGa~=J|
zhWMUj;$UyWbJG*yp-`67oft^&aZ?>R^%-0?m~%gr9jR@ot*crdO}EZ^5~}d}lRZh-
zF_THB`*1A&t@qt;(RA7DPubI2+nl)9?<T!etf(~AUR1Tf{zq33cb&Ms-Y#Qb!b=}6
pnh5204<!4>hn)xicu9AEyw6OSiWN7{2=3p#xvevn9xgr_`U1ZT!&CqO

delta 1380
zcmXxkUr19?9KiA4n$Bf&{>jp{teeiwKWUpfH8U+NEh~*eQ|O^TNJ&I#MHs;}g`_~N
zVHA}QL4nlUC?e@Uk<ddzMLkpxAyE(Y&_gc~_5Izu{ow3#&hG9#=l;&`>}kVLedKdi
z(u5GJX-jEyHj#F`W9NhTmL%fB?>HZS$CYG}MT}E10}a&sL%0mvunG^O7jIwyAE6(=
zVzEd>(i|e4d{KjaIEK4WQbbCi3%hU_EAb=xFvBTQfMMK=-B^Uvn2&Q<fhnw77f^>S
z*ooCRi6Q2fcXZ12hpE;L)u<EoqE2)j*Wt7H*uKD;xCq01zZFS}oIxHXXVHTfP$#~P
ztVLcTYnNHn1$@9u%rEKWw;yleD)gj@1aUL!15d@rBN$+O7whm7mSC=1qzs!-$9<>^
zxP~NC?qTyhk%ySgI4M(vTg8JB?F8uPg)s6PX~lBvMgvE&38%0af8bio$+8yGfi;ZB
z@gUCND25i2MSOq_=wp&2xF0v-n{4u5OUFYc=>vA)FrGtAt$VSxB^z)P<CC}opWp%f
zf;+J_$12)MY-aou>oJ^bP1KKC;P-Ji{=zlb?jip=@p<yK1)n3^BI!%4z4D?KSwY+u
z)Qla9Umw6W#zXiRXK@h6*?4_{Opb&uqy_c95v;|Fs5SN~LZ^|=Kh!;M%(IToQPeHC
ziGF;GoEZ6ooKUkc!7MOd#>|S2wa|)a`nGy(*(vK3pw<HGGoJ@$M06E;ToR!Lx00q=
zp=N~nI3`xGMzPa$VTs^Sm>JWz($N0`jZzxBW7bO<vZH2bRt&4FpAliJ%r~P(%<6aR
z*YTi^%!=1P6b;SLavHlN=``J%L{!tMqG=)PDM&;i9X*~Jx&;y_JQgta4H&9K$C4fP
z_7lfrQ^{8y(e17Zb8y);Xp8#Yq1Ybxw9Q!&tP56_21BuejQ2KI&&-wH{vKm}N0$+b
f<!AkMMz?u=v{Hw4B{t!GZHo@%HN;-zowof4^1_C2

diff --git a/po/ro.po b/po/ro.po
index 5827443e0..8dd3fae69 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.23.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2010-08-16 03:22+0300\n"
 "Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -18,17 +18,23 @@ msgstr ""
 "X-Generator: Virtaal 0.6.1\n"
 "X-Launchpad-Export-Date: 2010-08-16 00:08+0000\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Nu s-a putut decoda imaginea JPEG"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "„%s” de „%s”"
 
-msgid "Failed to decode JPEG image"
-msgstr "Nu s-a putut decoda imaginea JPEG"
-
 msgid "Could not connect to server"
 msgstr "Nu se poate stabili o conexiune la server"
 
+msgid "No URL set."
+msgstr ""
+
 msgid "Server does not support seeking."
 msgstr ""
 
@@ -50,9 +56,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "No URL set."
-msgstr ""
-
 msgid "Internal data stream error."
 msgstr "Eroare internă a fluxului de date."
 
@@ -66,6 +69,9 @@ msgstr "Acest fișier nu conține fluxuri ce pot fi redate."
 msgid "This file is invalid and cannot be played."
 msgstr "Fișierul nu este valid și nu poate fi redat."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Acest fișier este corupt și nu poate fi redat."
 
@@ -118,16 +124,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Nu s-a putut deschide dispozitivul audio pentru redare."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Nu s-a putut deschide dispozitivul audio pentru înregistrare Nu aveți "
-"permisiunea de a deschide dispozitivul."
-
-msgid "Could not open audio device for recording."
-msgstr "Nu s-a putut deschide dispozitivul audio pentru înregistrare."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -147,6 +143,45 @@ msgstr "Înregistrarea nu este suportată de acest dispozitiv audio."
 msgid "Error recording from audio device."
 msgstr "Eroare la înregistrarea de la dispozitivul audio."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Nu s-a putut deschide dispozitivul audio pentru înregistrare Nu aveți "
+"permisiunea de a deschide dispozitivul."
+
+msgid "Could not open audio device for recording."
+msgstr "Nu s-a putut deschide dispozitivul audio pentru înregistrare."
+
+msgid "Record Source"
+msgstr "Sursă înregistrare"
+
+msgid "Microphone"
+msgstr "Microfon"
+
+msgid "Line In"
+msgstr "Linie intrare"
+
+msgid "Internal CD"
+msgstr "CD intern"
+
+msgid "SPDIF In"
+msgstr "Intrare SPDIF"
+
+msgid "AUX 1 In"
+msgstr "Intrare AUX 1"
+
+msgid "AUX 2 In"
+msgstr "Intrare AUX 2"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Buclă"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Buclă"
+
 msgid "Volume"
 msgstr "Volum"
 
@@ -251,6 +286,10 @@ msgstr "Definirea valorii %d pentru dispozitivul „%s” a eșuat."
 msgid "Failed to change mute state for device '%s'."
 msgstr "Obținerea nivelului semnalului pentru dispozitivul „%s” a eșuat."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Dispozitivul „%s” nu poate fi identificat."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -276,10 +315,6 @@ msgstr "Interogarea normei pentru dispozitivul „%s” a eșuat."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Obținerea atributelor de control pentru dispozitivul „%s” a eșuat."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Dispozitivul „%s” nu poate fi identificat."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Acesta nu este un dispozitiv „%s”."
@@ -373,9 +408,6 @@ msgstr "Nu se poate opera fără un ceas"
 #~ msgid "Line-in"
 #~ msgstr "Linie intrare"
 
-#~ msgid "Microphone"
-#~ msgstr "Microfon"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -476,21 +508,9 @@ msgstr "Nu se poate opera fără un ceas"
 #~ msgid "Telephone"
 #~ msgstr "Telefon"
 
-#~ msgid "Line In"
-#~ msgstr "Linie intrare"
-
-#~ msgid "Internal CD"
-#~ msgstr "CD intern"
-
 #~ msgid "Video In"
 #~ msgstr "Intrare video"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "Intrare AUX 1"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "Intrare AUX 2"
-
 #~ msgid "AUX In"
 #~ msgstr "Intrare AUX"
 
@@ -503,9 +523,6 @@ msgstr "Nu se poate opera fără un ceas"
 #~ msgid "Microphone Boost"
 #~ msgstr "Amplificare microfon"
 
-#~ msgid "Loopback"
-#~ msgstr "Buclă"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Diagnostic"
 
@@ -518,9 +535,6 @@ msgstr "Nu se poate opera fără un ceas"
 #~ msgid "Input"
 #~ msgstr "Intrare"
 
-#~ msgid "Record Source"
-#~ msgstr "Sursă înregistrare"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Sursă monitor"
 
@@ -560,9 +574,6 @@ msgstr "Nu se poate opera fără un ceas"
 #~ msgid "Input Mix"
 #~ msgstr "Mix intrare"
 
-#~ msgid "SPDIF In"
-#~ msgstr "Intrare SPDIF"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Microfon 1"
 
diff --git a/po/ru.gmo b/po/ru.gmo
index 283495d35a6733d5c5534ef1925d8a14c65ea603..f980b1781ade0c64f24953a169cb9774d9c0c193 100644
GIT binary patch
delta 2032
zcmYk+Yitx%6u|MbTj+yrm$mevwAg_ng+7+uZMRQ>mKI72wS~2%M#Mm^r4Y9*Pty>W
z5+o9um@t4qf{*A2A(9AVLq&@*e$l9L3O=et4H*5P_#hhegGT>nc0;_$+21|4ow;}J
zJu@$E`FBI?o6Kp)gw{sn69?QPeRy*kKeT6(MbhyQw&HP2#p{@cKPK`&68S%v&3H<R
zh!5wW-q(-!;%cnGt(YeglNabLV&E+-!tZebW-yD6S6~-z#33BR^;pF0#TdhGJd5R+
zG$TGy6&8|rVF-tDKAuaAU%^exFSqF|<PY5*k$E_RdciBm3gruI!r!qOtJ#iKxDPAw
z0}P^M@RSfjy?ztwf{vn2{65y>&xzdcWr55u5jywb9t`7Y)ZM>|Jd{i!bIT392Y*3b
zSn5oXOq`Ewnp7d1Bg>Fyl2wWE2<r6@qb|4)kK^+g+fFCUK`q8tk;Tar2Ji>e8|K~>
zUx<MP<i%)UE9zNqL;e2|)FZrrwfGelV>YWS!+O*_iuxcYGueOYMJxvXc8Od<gZyF^
z=Y><q!%Bo%Sc_~%&37d7{a8hAqMr4KxB`DojE8gBP4XvjDSC26)?q6~@N_Qw-$~~d
z1O3>1x5(Rg9zVq>%e1g@cD(5R#Fxn1+5aBAh0Cy$5+A^0xErU>i5KNw>>~dRZ(}L1
zfYwkU+qeX`#ppan=L~95c@2>hxIW=;c#8bc-1uubp9+1Hd=zy7H*qg^@c0kn$G95j
zQE@vkiVxroY{wvl)`25<5Mx*9=$1ajJEv|zHbeH{{rGIck1$A{#sTZu)u9$)C+g7*
zA*Ut#6F!GW$zQ`%j<#W;$S35ji$n%-Hif`5#pE!ZjSQSaT|jzC{DyhBmb?@z@hM!6
zV;IH1unqf4`AF$F>X|O3()0<B;ClQHE3nQVzyBbz9;f;A{m-DwCO9{*$7#f3B8Skn
zhS0Zw>zt+)tc}%61K}o;2yInyoFizY&!@pDOiszE6V@m*3Ef$3Ma=Jf<uuW4UrE$y
zLSx6AFQIPh3_`yJwZtmo|Bafv)27pFC8`N(*!d87QCm4-5PEFdcu7R-PilxJLSGSW
z6sgnN5{9vb@DS{}^U>i&a9Rq#TFDf+Qy<CBX#7WyjorV~^ceUgINyrq_$V(tjpCG9
zgcjBc^Xufz*)36N=<GIvM*FUvPA_D%M6Km16G`S$&l2-J&rjC1^fH%O?k%@Yde6Gt
zjZJ2auRVwB*7Qevoy*$#d$tb@ZW)O7T8Dk3t`s9Ouxooyuj$LIcDF>$hRnyU!dZ)5
z=J~9Ww17Vt@Q14XA@h1xM`<uz8?Gz~gaUyX9qnc7dUyBl=pTrdHEr72TWf>@!C+aS
zqAXNtgo3p}^O5Xpu7FjOljAbi=H~f=Vjr1&+P-YRVdxWttPQ#OspcAEk(qDwnFopt
zt9|b0F6%_$R<~&s6_~>d8Z4veR8opPZog^p7-x##o$g$3c9s|!<MyS=efH(a1Ke@K
z8Y=N5nO6(4((Q}(>-IbL_~eK^ZVvl<Jn<PL9ZfAO%`g4mT9*S)y1g&!rS=7T%$}GW
GmHz;<E*Gr;

delta 2963
zcma*n4{Vg>9l-JDC@r<Ll(w`~rRA~ZtZ?n^dIcSwe+t3?p%etE+1!@%?geh6cjfMi
zf-a}6D3L1a!`%F{seu?B%XV<ZwnDoFHxm~U-<K>dnTe4s`;%=hCi}y(Epy-Bb4N$w
zmh4HM`@GNlKJWWH&+qv?_sKmk@6LWuJNp}ovX#1sdVH2r1K3{559Px$r7H0v-hqF_
zt8nF<g12Km?OvRZQIzjwuo<7m<(R{3@mIJMedS8EDV0?LF0SXsHk1bka0ed8z4#C8
z#{ouNhCji(@nh`54HbofzK*T5U&Ju}2$$iXunwE&DzyZ|DE<2JTE<roa1r3fH!*^5
z;SK0#*)6yk<%4^%9gm}|#KSfC5w62<l~U{R0N#jip-kZK*oppmh41uZkoM!!W_&ft
zg{<TcC^OX6O7-Acl=h=2Gd_WSd>2>XUvM@Ch&#bhA-o#9Q6{(@YjF?>q8dS>uSStI
zs-u{dnZC@$v-opNVWLK<&)`K2VGUoA0aoK;+=LqUpzQq<cpDzW&*3jo-djxE*<-Z@
zyYYUMh~%*YKd2-Aa-(uVVdgiXw6|gxK8WO-%HiL9N{yqIb^~EX51F&tw6Nfp@Fv;`
zl!(2GYw@SW`|}%>`Zn$Lcq{(8k@(-qg`c=>!~5|rJdbf~xkjn8IEp{R4a7B%&7^og
zUcgsySreI$=TRaNBK4Cvi2LwE+=~5#Pjc&Zlq9~8<zfdH0j<<397Y-V$M{zaUROvi
zKbd$7?E#G82~6R9mMKX$g5SdPMI937dD{QNUHBY{BLn(4YG1)GpnNC$CKpjI7PC<g
z;s|a>ndU~g3)A=tZpQkhO7&q3x8N8)ilyuu`Kv~YzJNE={%+CVpqzpwfkJZbKz1{$
zQiTik7#^j=i&*ZXGiU8x+TCQzAXWsG`Z7L%vgf}*3F+_gM!bcLU5y!h7RNDxn?nVs
zu$Oi_vp9qYaGRX}l5k-q{V03-8ZJl4KxwbQ5qtvYVGR$NpWR1-XD0#n9htyqr9s(J
zz#h4|T+gBs1RKSxkd%=17tT2U5jNx3$W02NQ4LfUXOGxyltQ#^MzhT}U&?V4RdVBU
zxq}Ni|57AU8>r-|Dxnfod$dU(Te3vO{=dt)C3)>REk)TYPR&f=0L&DLf~J;HC8Sa+
zsOzY=QpvTMLNM*0)ykPWN|Do-OV<83Hx`?HxSmQ5+P~y#l)b&OkPh~YZ$wG3+o+sY
z^?9n48fuSRP-+X<Kdsy4y3L<%)A#PzqFSXBj(NVUx1?_<lmBPgR7p6NbkaJJ%;@yc
z;9xS9(fi^tC#j>6!OT#~QEQxi@u*{8*73BycPPEzcohxiT*Y#8p`yMtGn8;r=Fb)F
z)Q@VSyCaERjvg4wI69q)WE|61wJ3jaZilZl6^X@@rnhpT`J{5Ssje!kNbBTIU3mYY
zs^<L7RX^~VOY_#+sohyU>MMyScA4D#8;q`TvawWrpOca|Vpq)QQ<IM*_Uo@DlJ_O_
zhCV&uWOgTGLA8CiqyNwMGjyGKQ~P7~T_Tb{RMYOe$3~_&el$6>CuRc|O*yQT(CpmF
z3<s0RJwdhO%C50^p<^T(bp|u+z<qjWDl*{cl)RUAG8tLv$=YCPXD}4(GQX|eQXUR<
zhq?lxPSaD@SQ+l<40nV&b!S(1*u?7I_bt!&ENJi<r@khCu)eX}JQcX+>Tx&c9du9e
zJFH>C9dl2+)5<+&E;iORoIBx9pF5*ndbv~H5pQ_rk@;QI3iEc;F7sYfc=fRNq&wxF
z_8xMl-LpaEe#bk+mrlBGx;gFsklPc$voqd^_ZZ)w;^~C;9_Ho*zjQMjn^&04t*!aq
z=J$LnCm8T-p`SPGjY`jH?_n9;J7QlxUHq(@x8FQe?0dwV^f#HF#xj%jFU+^<ug)^n
zdV#sLWL^W4$g#Ewce=wp#fqohG3`#7h`+&i+N^6`YQER9N;<dvXPy&wY{tvU*miM~
z%yl9^-SSR}dFlF`iMP$oA8eabV!ppDVwwZ*R~@y(OcF?fVLo2G$UGj<Uu3yj24wUp
z&Cj^~v7Ka5Q{G|kpq2&83h6fOo|3&dWg9t}@8Qc0g8N^`STghW|9X?O%wGx|m^J4a
zX22$!z1J;VMF?DCd6tphkl}5l3I3Sm1A%u>vSW|fon@Bpq=bFMJ;N-n_)4bu6}!=r
zChi$`TJEt9D&HTsLA<>4-1t;XwIqQ%W`is*O==Rw#+^MM_6{@RvEoD0#~W4u2H17;
A?f?J)

diff --git a/po/ru.po b/po/ru.po
index 52a34d231..df3351baf 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -3,34 +3,40 @@
 #
 # Артём Попов <artfwo@gmail.com>, 2009.
 # Pavel Maryanov <acid_jack@ukr.net>, 2009.
-# Yuri Kozlov <yuray@komyakino.ru>, 2011, 2012.
+# Yuri Kozlov <yuray@komyakino.ru>, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good 1.0.3\n"
+"Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
-"PO-Revision-Date: 2012-12-01 13:23+0400\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
+"PO-Revision-Date: 2011-04-26 21:13+0400\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@mx.ru>\n"
 "Language: ru\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.4\n"
+"X-Generator: Lokalize 1.0\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"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Не удалось декодировать JPEG-изображение"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "«%s» исполняет «%s»"
 
-msgid "Failed to decode JPEG image"
-msgstr "Не удалось декодировать JPEG-изображение"
-
 msgid "Could not connect to server"
 msgstr "Не удалось соединиться с сервером"
 
+msgid "No URL set."
+msgstr "URL не задан."
+
 msgid "Server does not support seeking."
 msgstr "Сервер не поддерживает поиск."
 
@@ -50,9 +56,6 @@ msgstr "Произошла сетевая ошибка или сервер не
 msgid "Server sent bad data."
 msgstr "Сервер прислал некорректные данные."
 
-msgid "No URL set."
-msgstr "URL не задан."
-
 msgid "Internal data stream error."
 msgstr "Внутренняя ошибка потока данных."
 
@@ -67,6 +70,9 @@ msgstr "Файл не содержит воспроизводимых поток
 msgid "This file is invalid and cannot be played."
 msgstr "Файл некорректен и не может быть воспроизведён."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Файл повреждён и не может быть воспроизведён."
 
@@ -119,16 +125,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Не удалось открыть аудио-устройство для воспроизведения."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Не удалось открыть аудио-устройство для записи. Отсутствуют права доступа к "
-"устройству."
-
-msgid "Could not open audio device for recording."
-msgstr "Не удалось открыть аудио-устройство для записи."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -148,6 +144,45 @@ msgstr "Запись не поддерживается данным аудио-
 msgid "Error recording from audio device."
 msgstr "Ошибка записи с аудио-устройства."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Не удалось открыть аудио-устройство для записи. Отсутствуют права доступа к "
+"устройству."
+
+msgid "Could not open audio device for recording."
+msgstr "Не удалось открыть аудио-устройство для записи."
+
+msgid "Record Source"
+msgstr "Устройство записи"
+
+msgid "Microphone"
+msgstr "Микрофон"
+
+msgid "Line In"
+msgstr "Линейный вход"
+
+msgid "Internal CD"
+msgstr "Внутренний CD"
+
+msgid "SPDIF In"
+msgstr "Вход SPDIF"
+
+msgid "AUX 1 In"
+msgstr "Вход AUX 1"
+
+msgid "AUX 2 In"
+msgstr "Вход AUX 2"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Петля"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Петля"
+
 msgid "Volume"
 msgstr "Уровень"
 
@@ -189,23 +224,23 @@ msgstr ""
 msgid "Could not map buffers from device '%s'"
 msgstr "Не удалось распределить буферы устройства «%s»"
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
-msgstr "Драйвер устройства «%s» не поддерживает метод ввода-вывода %d"
+msgstr ""
+"Драйвер устройства «%s» не поддерживает ни один из известных методов захвата."
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
-"Драйвер устройства «%s» не поддерживает ни один из известных методов ввода-"
-"вывода."
+"Драйвер устройства «%s» не поддерживает ни один из известных методов захвата."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' does not support video capture"
-msgstr "Устройство «%s» не поддерживает захват видео"
+msgstr "Устройство «%s» не является устройством вывода."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is busy"
-msgstr "Устройство «%s» занято"
+msgstr "Устройство «%s» не является устройством вывода."
 
 #, c-format
 msgid "Device '%s' cannot capture at %dx%d"
@@ -219,35 +254,40 @@ msgstr "Устройство «%s» не может осуществлять з
 msgid "Could not get parameters on device '%s'"
 msgstr "Не удалось получить параметры устройства «%s»"
 
+#, fuzzy
 msgid "Video device did not accept new frame rate setting."
-msgstr "Видео-устройство не приняло новое значение настройки кадровой частоты."
+msgstr "Устройство видео-захвата не приняло новый параметр кадровой частоты."
 
 msgid "Video device could not create buffer pool."
-msgstr "Видео-устройство не может создать буферный пул."
+msgstr ""
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get settings of tuner %d on device '%s'."
-msgstr "Не удалось получить настройки тюнера %d устройства «%s»."
+msgstr "Ошибка получения установок тюнера %d устройства «%s»."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Error getting capabilities for device '%s'."
-msgstr "Ошибка при получении списка возможностей устройства «%s»."
+msgstr "Ошибка чтения %d байт из устройства «%s»."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is not a tuner."
-msgstr "Устройство «%s» не является тюнером."
+msgstr "Устройство «%s» не является устройством вывода."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get radio input on device '%s'. "
-msgstr "Не удалось выбрать радио-вход на устройстве «%s»."
+msgstr "Не удалось выбрать вход %d для устройства %s."
 
 #, c-format
 msgid "Failed to set input %d on device %s."
 msgstr "Не удалось выбрать вход %d для устройства %s."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to change mute state for device '%s'."
-msgstr "Не удалось изменить состояние приглушения для устройства «%s»."
+msgstr "Ошибка получения мощности сигнала для устройства «%s»."
+
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Не удаётся распознать устройство «%s»."
 
 #, c-format
 msgid ""
@@ -273,10 +313,6 @@ msgstr "Ошибка запроса стандарта устройства «%s
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Ошибка получения атрибутов управления устройства «%s»."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Не удаётся распознать устройство «%s»."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "«%s» не является устройством."
@@ -343,11 +379,14 @@ msgstr ""
 msgid "Cannot operate without a clock"
 msgstr "Операция невозможна без часов"
 
-#~ msgid "Could not establish connection to sound server"
-#~ msgstr "Не удалось установить соединение с сервером звука"
+#~ msgid "Got unexpected frame size of %u instead of %u."
+#~ msgstr "Получен неожиданный размер кадра: %u вместо %u."
 
-#~ msgid "Failed to query sound server capabilities"
-#~ msgstr "Ошибка при запросе возможностей сервера звука"
+#~ msgid "Failed trying to get video frames from device '%s'."
+#~ msgstr "Ошибка при попытке получения кадров видео с устройства «%s»."
+
+#~ msgid "Failed after %d tries. device %s. system error: %s"
+#~ msgstr "Ошибка после %d попыток. Устройство: %s. Системная ошибка: %s"
 
 #~ msgid "Bass"
 #~ msgstr "Низкие"
@@ -367,9 +406,6 @@ msgstr "Операция невозможна без часов"
 #~ msgid "Line-in"
 #~ msgstr "Линейный вход"
 
-#~ msgid "Microphone"
-#~ msgstr "Микрофон"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -468,21 +504,9 @@ msgstr "Операция невозможна без часов"
 #~ msgid "Telephone"
 #~ msgstr "Телефон"
 
-#~ msgid "Line In"
-#~ msgstr "Линейный вход"
-
-#~ msgid "Internal CD"
-#~ msgstr "Внутренний CD"
-
 #~ msgid "Video In"
 #~ msgstr "Видео вход"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "Вход AUX 1"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "Вход AUX 2"
-
 #~ msgid "AUX In"
 #~ msgstr "Вход AUX"
 
@@ -495,9 +519,6 @@ msgstr "Операция невозможна без часов"
 #~ msgid "Microphone Boost"
 #~ msgstr "Микрофонный усилитель"
 
-#~ msgid "Loopback"
-#~ msgstr "Петля"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Диагностика"
 
@@ -510,9 +531,6 @@ msgstr "Операция невозможна без часов"
 #~ msgid "Input"
 #~ msgstr "Вход"
 
-#~ msgid "Record Source"
-#~ msgstr "Устройство записи"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Устройство вывода"
 
@@ -552,9 +570,6 @@ msgstr "Операция невозможна без часов"
 #~ msgid "Input Mix"
 #~ msgstr "Микширование входа"
 
-#~ msgid "SPDIF In"
-#~ msgstr "Вход SPDIF"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Микрофон 1"
 
@@ -699,20 +714,17 @@ msgstr "Операция невозможна без часов"
 #~ msgid "%s Function"
 #~ msgstr "Функция %s"
 
-#~ msgid "Got unexpected frame size of %u instead of %u."
-#~ msgstr "Получен неожиданный размер кадра: %u вместо %u."
-
 #~ msgid "Error reading %d bytes on device '%s'."
 #~ msgstr "Ошибка чтения %d байт из устройства «%s»."
 
 #~ msgid "Could not enqueue buffers in device '%s'."
 #~ msgstr "Не удалось добавить в очередь буферы устройства «%s»"
 
-#~ msgid "Failed trying to get video frames from device '%s'."
-#~ msgstr "Ошибка при попытке получения кадров видео с устройства «%s»."
+#~ msgid "Could not establish connection to sound server"
+#~ msgstr "Не удалось установить соединение с сервером звука"
 
-#~ msgid "Failed after %d tries. device %s. system error: %s"
-#~ msgstr "Ошибка после %d попыток. Устройство: %s. Системная ошибка: %s"
+#~ msgid "Failed to query sound server capabilities"
+#~ msgstr "Ошибка при запросе возможностей сервера звука"
 
 #~ msgid ""
 #~ "The buffer type is not supported, or the index is out of bounds, or no "
diff --git a/po/sk.gmo b/po/sk.gmo
index 49c7487b275f4001ddef6cf30d6f2ea5ef5ef698..3c6753c4a1bd57ef2f5fc91610971a0d0966b1d0 100644
GIT binary patch
delta 1832
zcmX}sPi$0G6vy#1L!sqQt;|TVSlUNHDo{#iprw|IwEP(cS_+y%69Tb;DO84;GB6F+
z)G<*>BgSAR62z#mF=5d(Wg0i4F=-477bY6ijS5jWEC3f0`IEr+_ueZvx&7Sx`rf<u
zopbJ7Yd^a=_eZGcW20@OSJIO~vjko#;ty@-46`}73w6(aEWt}S6EFMoEB^d@oX7Pa
z@oD@A_1?Q!h2dheH5kR`%yM>!!7?tqgS9w{OYxe2{UPpVzLZsu;V|yO+qfKK?4k!V
zxEg;zE%XQ%W7RAc!**PPS=9CO*vtC%ErS=h;LJ9w!8q!HB(g*M0yp8;7(<1l3ASPc
zb6Ah#sOPSuHWDuN7L4Hr=1G4(irT<W*vR^Jmw}>P_mmgX2(p%~!wQU{Hqwg(!-kQM
zxA%~}+lT)3Pf*WYL~U>s&*I;h!8gmyR^csVNvk41xdsMx4D`Z%NYtzkt8oAwJcG*V
zI5yx_ti}Ja1)aHGD)!<^=BNDm1nL9+MAC2f@P2?n$g8ObVd5WWUh<5$^H)$i+wael
z{`@5BMW>LDu?wgg8AIjz7i`A=a1qwCTWw?~YQt~gdK|+xyoE_@C@22!GWe{V!oZsO
z-i_z*81rBKdHh+gMn-T2*T-=k{*KCd1-q-m4jjZcFoJjd>op6g7v^24$eqL8_+5@c
z7lZjExC0NNifsa$@g8o&C}&9XVbnrjVGsU=+Cb|<Z)0iP!TeKHP2EJ*#BH2|4^R;+
z;g5s4S_TT~RwSLa2UP=yQN@-)f@4Ft1wX<u{0-m75enrc3_IR?cHxW6UqdZ?9+lEB
zQIVTKrRX~Hikt<R>9{OHy{H>IF^|gK4XnoyXH#F^hJ3W8P}P4L131-`ck0Yq>8dR<
zWMR6RA{BB+UO~^&`PbK~E%R`H0~D&5Kj*ZVL)ULa6Ma2h?RmPYTIo^brkbKg*|_zg
z4^yG47PNVtGPPO{eZO~frlZ0fq*KIhsQB<FZ8M`5I_a~Q=?bmV(MWHns}WB3r&Z&%
zbQPR_Xr`LdqNch~Q$2NSu#rBEPA$6UUInN|?YSvfg{qMabTx|FJw_TY(I1*pr1UA*
zmHA84`{u<{*4EwQM4Ybd33n8A;;BMt#@ofgjhpf#rLE=M(b1nuxHok6AIPK!4yRLz
z!qw6b0>#d&>1^geBHvNg9OSX#vWj3yq_L&3X+=Y{@cG=I0}GCy$PV}`3{HOYWEOP>
z3&+D}W)>wJmbqWKz1sa33mr*wpEGrDXaA8*x^J?ODr{ePBT#xUlYZS9n!Gra>OGpx
QFRyMd(qn~#)&B+_12Y`X!T<mO

delta 1547
zcmX}sOGs2v9LMqhSZPycqhqC(HmN;L9mhwOT4wf8EF;2dX;48)FEuL2aS>wCA{aCw
zdO({9!fL8TU>UY3Dk!4b^rTG%JvI^LqQ1X-Z(TU^Ip@yYIsbG1|8x6SKCg?uNgLZ|
zTq|fZXk`gzTd-*?A6!?)nI+>@Y{c8>M}MMg5T`KC#sHS0{-+*uuocU&8>iz9oR3d&
zu36MZ>CE9qUXuGoBepQ^z<u}-H(||qvjy0Pn{gORF_UOC(OS&IHjLm&%*PS${zq(O
zoIJs79`43m=C@OH^uR4tgkP{8{S(br<2tOsek{SqScHF2&lRyf3ZxY^VIS7wEpI%E
z3M@3qtQ_l6n|m1j%x_UTnRpBpzy)M+b_ZF!-ACrKC#XPPVLt{_%=Y6YEXM4~W?@{5
zEY`YkCiY?oFQQWQ0QI}K7@bQeK;o8QB`&~rEX1?k_z^0=pGdYWHP!65&nyF3oCSks
z4H!aVvz?v?QP1@tG1_@lss~Xidl6*+E9v~;#w;vKcPCztVa8p!6bErRe#JHnvy7v7
z20Jl#s{6YERL#8f#tqZlT=!xD_pf3VzDA`kGlTtKNT(^o>;N7@<@h`5elFp!!DiG>
z4PXlnV>3?6;#u5*s+sGk1^vQCjF3-_kD&hVCT_+Lr~s;?oE1g32iM_gRB?Pp<@_6J
zt41+|S=sI}t3uUA6S7#_h^ufH4&pUDj$3)S2EX89ETABiqHU;oqwRFG_2*C%-NjOT
zhk7tQL_y&OR7%cc5k5t&NDmX66(R@68qtUPEsJz6Vlg(vsWJWMeCMw75p|-_@z9^v
z(zIQA8U4GGy-qPIu%$E=lUB{U$ar5FWnq+%Q|(o_j25El%B3xLdTzjE&M9)8Fui}Q
z&gr-xi(rg5rna1F^@jhM?ezkv94ZYuZhEPxb~0$%V(q3*3$^C#Of?qLR7d$VPM`Z~
zEJsd~lW*PARYB9XmeEuXX*6BR;jCCg;`TAkogMLeiQP%D^(hf&FpzS>7mEZ+;%$Mn
zgz=H^l5lB3xFp___RN<sG8Au5Kk1JJa_SOChT1zi_r~|-y!XXgL$&eCp-;ZQ2hEnD

diff --git a/po/sk.po b/po/sk.po
index dad8b673a..f94cf9743 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.25.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2010-11-08 15:48+0100\n"
 "Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -18,17 +18,23 @@ msgstr ""
 "X-Generator: KBabel 1.11.4\n"
 "X-Poedit-Country: SLOVAKIA\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Nepodarilo sa dekódovať obrázok JPEG"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "'%s' od '%s'"
 
-msgid "Failed to decode JPEG image"
-msgstr "Nepodarilo sa dekódovať obrázok JPEG"
-
 msgid "Could not connect to server"
 msgstr "Nepodarilo sa pripojiť k serveru"
 
+msgid "No URL set."
+msgstr "Nebolo nastavené URL."
+
 msgid "Server does not support seeking."
 msgstr "Server nepodporuje zmenu pozície"
 
@@ -48,9 +54,6 @@ msgstr "Vyskytla sa sieťová chyba, alebo server neočakávane uzavrel spojenie
 msgid "Server sent bad data."
 msgstr "Server odoslal chybné údaje."
 
-msgid "No URL set."
-msgstr "Nebolo nastavené URL."
-
 msgid "Internal data stream error."
 msgstr "Vnútorná chyba prúdu údajov."
 
@@ -63,6 +66,9 @@ msgstr "Tento súbor neobsahuje žiadne prehrateľné prúdy údajov."
 msgid "This file is invalid and cannot be played."
 msgstr "Tento súbor je chybný a nedá sa prehrať."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Tento súbor je poškodený a nedá sa prehrať."
 
@@ -115,16 +121,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Nepodarilo sa otvoriť zvukové zariadenie vrežime prehrávania."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Nepodarilo sa otvoriť zvukové zariadenie v režime záznamu. Nemáte oprávnenie "
-"na otvorenie tohto zariadenia."
-
-msgid "Could not open audio device for recording."
-msgstr "Nepodarilo sa otvoriť zvukové zariadenie v režime záznamu."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -144,6 +140,45 @@ msgstr "Záznam nie je podporovaný týmto zvukovým zariadením."
 msgid "Error recording from audio device."
 msgstr "Chyba pri zázname zo zvukového zariadenia."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Nepodarilo sa otvoriť zvukové zariadenie v režime záznamu. Nemáte oprávnenie "
+"na otvorenie tohto zariadenia."
+
+msgid "Could not open audio device for recording."
+msgstr "Nepodarilo sa otvoriť zvukové zariadenie v režime záznamu."
+
+msgid "Record Source"
+msgstr "Zdroj záznamu"
+
+msgid "Microphone"
+msgstr "Mikrofón"
+
+msgid "Line In"
+msgstr "Linkový vstup"
+
+msgid "Internal CD"
+msgstr "Vnútorne CD"
+
+msgid "SPDIF In"
+msgstr "SPDIF vstup"
+
+msgid "AUX 1 In"
+msgstr "AUX 1 vstup"
+
+msgid "AUX 2 In"
+msgstr "AUX 2 vstup"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Spätná slučka"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Spätná slučka"
+
 msgid "Volume"
 msgstr "Hlasitosť"
 
@@ -247,6 +282,10 @@ msgstr "Nepodarilo sa nastaviť vstup %d na zariadení %s."
 msgid "Failed to change mute state for device '%s'."
 msgstr "Nepodarilo sa zistiť silu signálu pre zariadenie '%s'."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Neviem identifikovať zariadenie '%s'."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -271,10 +310,6 @@ msgstr "Zlyhala požiadavka norm na zariadení '%s'."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Nepodarilo sa získať atribúty ovládacích prvkov na zariadení '%s'."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Neviem identifikovať zariadenie '%s'."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Toto nie je zariadenie '%s'."
@@ -367,9 +402,6 @@ msgstr "Nemôžem fungovať bez hodín"
 #~ msgid "Line-in"
 #~ msgstr "Linkový vstup"
 
-#~ msgid "Microphone"
-#~ msgstr "Mikrofón"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -467,21 +499,9 @@ msgstr "Nemôžem fungovať bez hodín"
 #~ msgid "Telephone"
 #~ msgstr "Telefón"
 
-#~ msgid "Line In"
-#~ msgstr "Linkový vstup"
-
-#~ msgid "Internal CD"
-#~ msgstr "Vnútorne CD"
-
 #~ msgid "Video In"
 #~ msgstr "Video vstup"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "AUX 1 vstup"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "AUX 2 vstup"
-
 #~ msgid "AUX In"
 #~ msgstr "AUX vstup"
 
@@ -494,9 +514,6 @@ msgstr "Nemôžem fungovať bez hodín"
 #~ msgid "Microphone Boost"
 #~ msgstr "Zosilnenie mikrofónu"
 
-#~ msgid "Loopback"
-#~ msgstr "Spätná slučka"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Diagnostika"
 
@@ -509,9 +526,6 @@ msgstr "Nemôžem fungovať bez hodín"
 #~ msgid "Input"
 #~ msgstr "Vstup"
 
-#~ msgid "Record Source"
-#~ msgstr "Zdroj záznamu"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Monitor zdroja"
 
@@ -551,9 +565,6 @@ msgstr "Nemôžem fungovať bez hodín"
 #~ msgid "Input Mix"
 #~ msgstr "Vstup Mix"
 
-#~ msgid "SPDIF In"
-#~ msgstr "SPDIF vstup"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Mikrofón 1"
 
diff --git a/po/sl.gmo b/po/sl.gmo
index 4645a601b3f255af941f7b510c5acfb0210fbc93..5deb5d3bd1dde4bcb2a1d4c7e5dd0e0f597853b4 100644
GIT binary patch
delta 3184
zcmZ{kYiv}<701V5>|kRseu0f+k8Qw?vDfzc5y!+S#s<8^;4N+qi4>%3_F}Gg_ul31
z^`=;@wpG=a2&t4QMSUou>W7N9kxE^uUr-gPp%Q7Us8SzND^f*j+7C(8D(d4)r1W?0
zt{=2y<niy!+?hFN&i~B5HFNuD{>_@w>xy=g-b_zzQObsQO8G~NmnpRaejLi0^Y9UP
z3vP!$E{^XM$9G{p^KZav_%@Vt{|#GUZMjlIFbel6l~;=xk1_Fi*a=^O2jTCE^B=%@
z#s~3w8GZ(yg@1?L@B~qugFYODzl7rGL%1KdR4CN}C!qxwVHdmy+wrg7$A~gfUl~TE
zrr`<32{;XZ2uI+*-~j9)9T9jQ%D!t*9KQ<1;XmOK*jQB<KMN&*JUjru3y0x7Sc-r3
zAqK&!(w$1-L+yl(unCePH3Vy59Fh!m0djejgv73b;(Q*;{x3lZ*ubyD*P#!sT}t)A
z-$GofQuN99W7J^Cfs;@InSrfv9%`6_qUjCT4_|?u@J%=d%XSx}n1H>EQ^oN&p<LuH
zM1J*WI8A;16-uCeb>#mP#^JicO}+x<!`F)Ao5k@DplJG2h)?x<*be^&AB7b}HwwF;
zNMJz;<cm-O{z;K<Ly@eZL8&t^)<FIPjBhjX4BWk^kfJ1<XZ$TV4Bv-x<F3604dYNV
z&cOt{0mb15P}X&G?NN9JN<dekIQ$WugIk*lwRJX+G0DVD_&EFvJOY~$UdGQsDX!}<
z2Jb<+Q7vyuZZZW2;PX(<xdlbS_lo=vl#G^;CV5p=uni7DT&es#Mis_oNS&xWlv;QZ
zie@(;f9hraN%7o)FTi)<Wq1W$y5T!eim`#hc?`Be89xmrfO*&j7oePX6(V6?-NG1S
z;#aT-mTRTP;Sd~wK9mgHDvs~NTE=x;LjvuBC2+0D8Pu10k}erTk#Ic-GgSi*(J2K2
z%ooyy9qJ|&-FU*`Z@|YOuO%!#NuM-HpEP;XlA$5G6y-^}G<l+wi#kk~z(s$NOqv8N
zO@0T$hW{`v+aNWlcpZwO4pT@%*4r^G$rAFbr|6Q><8&#`qjYIV9oB@{QajUhO<!wI
z6phlg3HXfIQaD@bl5WvviY|>}4K<HIsf{CaX`=T;XceBJm{R>Bo79pNmNNIt7V2ZJ
zn)u{7J)mcogV2iVn7ewk{Nh&gROPt&dF4CiPdl2;ud8;L>8e-F;LgF-Z|wYj$(G3}
z^F;M*1KVdD*A91|axVB@=91^yt5>UEC@I%--m-teHq|wwTVk%6sJXb>QQKEyZr62J
z=>Et+e<V5*iJG_S;=KdIW5Xkd`lJ2*74g~LGj`6&I-c7*Wd-(_j`j}>^!5+-4n+09
z=-A+}IbYvX5lMPk$3L=|{?w|e-(B+Dx!$;EC!C;n#&Q>ztwr|DrM#T&I+k0p{&CV<
zb_4$k-)3g#kDZQ9Y<wyNJ9)|Svvx41mxGJFqZO+2K(<r&n$?CwTe7yf-_V|SQdUIG
zU-A+<%$tg>Y}o75(M{7)b=t~UNlT~ggwFVOB4;gG?vkC>D>*MIhb{WnlI_aywQH`E
zl=Z%qvvug)b#&TW<cqBnUdl6l2e(y5)RfKT<P`JiJ*UU#bT;tqyFX*Im)2QZZ`zb0
z2`g6MsCZ~_Z1#cGuKCBF`Y{!^d@F4SzL(Rk#h*mr{9gna-${52PT)k;DLawz(yn7Z
ztLsdBZ(WUgHjE$V#qeG8xxKa8+I;88!xx!9?CsnA(CrHkZr5@0N0^$D%Xo>5<6D}W
zyUPI+zO|BaUc2U8;EGN*u+x^F&5&1=brX8-icEb(0QLXl=CqTh^vw0fwuguHsHL+m
z4iMlYPORCqLa!g!UiE;qlAyzuUhw50?YKJQWD94;(l#=ztBN8UWxzcV`#Y#$X7|mQ
zb1e;KS95b@(Q};?6`*rNsc1wpm9u>(uzR%B4(D%PFksF$KiO2g0+m=SKCdXAXMWSN
z&%DvB_s=GhUV=1BfZ3FjwDrmOu@iD!76DRrKq0==(zI($g+)u}co3$$WvY79oFlJ9
zCLdXwH0hQu^S#za^KMJ)wy@sK%~ox`+<J8TiWFdC#q-U*);80lcW$==-&t4=yqu}j
zFPYbMQ>{3$^nnB`i!nRq7rMoa>A||t*~31Lv{jcCPd?VxU+QRn#lG6sP|maSvZV71
zZO1z!YQnWr-XaMX9~-0aRCUTp`rbv)HGgayKg??myriC(kLd-Ef=uQtpO+lrttB#k
zV3Ul(k_Ys2ttEWD*WPH7?d@gSN;x`XuD5rYNc*@c>u7tL`xmy^`iyO*cxetl6Q8h(
zBCTB*ZoC3E6n|J)Iw!&|>73)6pyN<Q__H(@pNbtfFLyk@`r`hUl5&b8wPfYY?E{Z*
LKasMsk^uEzJ0hZC

literal 9825
zcmb`MUyLNjUB}zO4zM^RP6z};?82}(&fU!I?p^Hjp3nCA{;qv{yS`nYoq&XDr)y_x
zr>AS&e`dXdBOxJygfJo!0fZtsCmiJ=5{ihFC@%;pz6S^rLPSCc$s!;S4}_o~@&GS<
zepTJGJ#%}vyD_cn{dP}R{p$Ds_p7>hK6vkEBd!;@f0p~L_e4=2JboX4xc>3IQFK4}
zZSZ;UKfoUapZwu~=fMy2z6^c<?0`b203QNB1D*oE4E_xGFW_U~JwFmfkAla*Uj)}c
z`F#Z50N(;%1^*X(8SJy@$H80RE8u^EC&8teu+FE!pXdE^-~#yP;K#xL0zU*k^kY%<
z3*Z7M<6Z`ZpI-%!fqwvM@EhRAz*&TT1iS_cy;s5G;9H=~`y22A_#N;vxbVIxx&n^C
z$H8xavi|>o^Wf}{2Rbi<ZQg&YdjC2oa{N0e{Hgax(X-%1P~Lw76n?)1&Vqjpeggb&
z@Lup3N=FsZ9Qf1VA}IW=gC7J3AS#T09YpofZ-a;!{T?WMejfaN@bAD3Odp7%6X3VO
zIq(692>s{4hrz3$0uxZ|{s#CA_{ZQG@Sj1M_b^Hq`>ukE;A^1h<11hbe5ZQ9|0e?9
zPk{3MMero}I*6-9Uk1N(PZWI(WJ>gfpNygxz^{WM$9+E)@B#26ynhsg_2_X>>~{qe
zz4gG;;AcS5>tBLmhwp;I??X%$TmcurUjwg$UjbLZ_oCci0dIh!pRa<y4E`%9_Bj7w
zkarh+g7=%C$np1}_|y9^3Xjp_pz!k|sK6ai;^Ys(r@^m*8{qdr(bFdhCgJlp!PDSZ
zLGiQif+FAPj|M(}slq=2*ZBP&h>Bfa0?&e<1uubr3$B9?Voc%Ff#L^W1kZu*fWo&@
zA>P-)W4yl!N}PTZlsNbvxClP{bHP78RbdSBFG?%?T@V#Te+uH_(O-dL*M9(EHTow|
z^eMvp5ikdS8vG_G>n`E^kAWp9_I?u-eSQg)`QHLX58nfy20x5(p9I%I;qP}q;rA~<
z(Zlyak@plv5IK9`Dez73L*TbS;pgALXTXmjw8YOV;60$MEqZv7TP~UV9Jkm;uGIiO
z)`Z{paEo7G<CZu={r-ZDh}7VDxDbAdaPbJY_V$+8y0`jW<iE&`h~7rR&sA=br@o%&
z0hjUD2l%_hjf+G-#4YlROrj^b#Lw^NKEo|K6g}O?J<m-zjIRgBPr-JIcd^}a_4^Dc
zxli<ty2h8pkHm!7p}sKl_!2!6R{mPy?-g#z6=LuAbBleNm&Aei>I>XYaf@BVr!H~J
zCGq~OJaCbI{Dm7w=jG|q+5Azpv8x25b1F5(j>~$=WSPs9>vYP@#K#rS#g<XI$%ZCV
zoy6rP_P=yonwm~wU8>5|yf)z3#K~?uI``5mYF@3Bg@0NIPi1VK8YFsmLwBk*+R<~R
zO^TLH)!M-5p2?!~I!#@nY;4lPZtkks3~k4F4%_udH!ztljM}lqmMaUTg{e+2I=`jU
zu1&itGr3Dj&zLS$Rzj+8l+Bfp-Zh2F%fY~9a0^XWCb9oeiK7Zv$=dj4@<MMUHs4YW
zp~nN8RJxEK=uG!bVX|DIn}!GtihVs$8|CJv4BE_G{|>{DHC5W{uA;MvJ!&;J7d~L5
zx)3yp7B-A1sT4C}e2r4JFsvR765G+DwWE+---05Jk&7F+P45^h!t|Oe(^#$T=7s6k
zx*zLZ7A|C_NlYJ8A7#Z)x>Ch1eY8+pdT12R(6_l?9)ox-h`R=D9ZWYf9hb!@<S0Yc
zyW*kY5K63>87&N8iCFDqwwPkZdozMo0hr=i?WnS*kKj&-nT{S5M6AN)XXDpq<GYO^
z;(SaKvv$+s2=LL@#l)1@nGi9R)zpxvbgEirVyHM(neR^jCgDbKR(#bKX|m45Fo-xF
z5XyHQQ;=n{c68CFC*n*LCDiqXP0$+LiZ%m@Dq|de?4nvC?d0NCS`AMn3o6bme%)5*
zw+so(ZYnDS!q@rwYsF1%!dVHaLO7WU>6-1ayM+<W$ZkiMv`w(ZSTvUwnM+u*C^EZI
z3f;+kGM<9xcO?56)n}L@Tk-ccZB+Cb9OLz|QO~blysT_rcTK%E-%MKeLxLSR;%Xx?
zmF0tv<V_8u{#5y*A<4KwMA9JjBO|tzO~tfRoU3KMOC}mCH6sRuFG=@zpi}wCyC>uw
z2?Ll{OOtkX@1`h`Be1r=6jQ9`l~+n46mKOGrv=}C29`bi6x&U8f|1c~x7a#}{h?0E
z;0)9*aj3g9g-$Z6Lc`_od~ZQyA#YUiHJdjC33F0%$X%pGH)EGLzyeZ(XOmK088tmz
z2#h(|^McuYdXQ)2F5WMMDrcIo&+U|g?ieK0?xMcS+NRMJ^7vrOr6yWRDgI)kSQlDt
zCT=G*Rqd%SVnW^D`^IuMM)$M>xgC+_uiDi3_G#Irws2W=&8e5JU!@jMGI@q8n}%6I
zGd`glSLbdldH;a;j!hB?G|F674#Kp(I$UwEqa}G#u-m@0^=)^npdU0edQRy?1n4_z
zOOfd`m)1!QGFP~cWG8s&6U)Af*s-~h#e793J4=ztJh97bURFZl`uf_cGOraT^+kJ-
zlr(K#nxnC0Q_>u=X>|Z?Z@lXUbM#GYb)^`*X0`4{t1`5=e%+o-=I85muW;vnW^%&X
z>V>6C-hOLFy6I;3hzZMq+Vm;E9j%4#`nH;z8`JasKs6wjgu0<)?^*3=T{<0KrzC$g
zN*^84RQ1;BuIi<3Csj);D1z3R?)M1u#gyZjq!2$hv;@AJK!=-@FHG-!hte-ys&_j!
z2C^;it)d?zkwnBu@%N+Xt)*y5FkqH_#ud)tWJpjCQY&e)>*q=nuxYbgx}L^V*r`0;
z_f=Joglh^{()jPK!cd!bTz`<zvmb7B6{s|9cOYDM5)G5IqZ__~s($M1Z9I^hg~M(@
z4V+7+hQ=fX-zIfBW*~97L-C>wq%ujd4>gB5Y<l`8TFu-x8gDJdts9{)UsT<^XoWz_
zTV3bk)_i-eeRAfykyvgm=Up4Oo-4a~YuzoXt)dt#o;a~lc1Pq6-R`E2meXb36EmwT
z>#g&`F5Q0X0;?~og}M2Yt+^*!^Yc6|&Ye6qH$OMWz}9tYxkUKHxcS!HC)E7jxT_k@
z)+MVXq`hoWz2G+l>IHY}rp?q-J^%XT{K;p#eL|&;nVz1xN~crOw6xZ7m_@agxS>fc
zoyb!@KS4>BE%?~VlV{ns6?r>%W!5pI@vdpJ(cL4msPbfHd1?9Lp0-fV%z0dtSZl5C
z4iK^+U!A~nY<fl-tqh%?eQEtt>-63@k%8S@>msfs?fjxTy<v-))uhaH(z--#%okOP
z5qQndo;rgg%H!FOrL!pP?Adws44Y<#gx3XL7xrFHs@GqyKb_*!Nj}Xzc4j8*;q7Rs
zw{_CdVJp9y*;_Xgr?yEB)QEm&Zv7c`B&AjE;oym7hbkWj=xwBj8jl)e_U$)x&kflQ
zlG`QeY@1ZqdwDw|T~xdI@O({(X&D;J+Ud4dqoM2R=teiwOttd*_8Y0~Mb|9Fqsxo1
zlYlhq!b~RHH`&2Z7QFy0$p(&}Efp&>BPA&lO4aOWjn(=v#%e|hp=8?*T@E!8JJ}CE
zkWYPe>!zPKaPc539JR#~B{i8!Y-Z&?ouC`rbNwcp!x61-0Ur#ilti30M|+yJR46ZY
z7+dt}cmA0hB48z>tz>Md0Xg!-_V82TeBk=2O<<y)5wy}|NCYvA4m$Ow^x7LWEkM7}
zSmTgW6o!P9QzfZ@Jd7RVtn5mC$B_LWh~(}2e~cK6@dMFAs!|gFD79O-(9k6~*tSA=
zgtP=6?oj#DVd>|o>C3z$k5})OnWp252pfTaYUse`x3QGz5z%{7e2X(Id`k4-J(k!E
zrqk+?+58b=*sB<IK$ReX6dT#eF!ARChnr_d!kAT#W3Qe))EuhYG*cL6q=}`(=aQOV
ze`*2kpbFu4%(587J7h>@68%2kjH79K1qPJeL=*AUWMZftEt3nXh^*2<LXk;*o(L<N
zpfQ+ZoX?b`Nj{Ms{qmC7B%@4H8TB2CpCBWGkg;)YiN>y0UE1^z$#R6yR;!ue48c;R
z<=BQyRhZ$#62ba?*^+JO?Si~vN3}24c_U<6VJP47&Qgg*O6a-ilpyNcpMM<=5qxTj
zM+E!SI-<7}P3a*?z^753#feaFUdvt0v4_-P42N-u(0({=ki2KSjc(mU88)FT_{F@V
z`I82HT=lHlCe|fqh(ian1xG*bE7uY1Hl%c=Vw~LXn`>%S=~2rZ|M_Yt+x+c(oP>j;
z?XOA~5C7k3avag4jp49+!k?$u-N(B{J{fgH(@Z*dFub_u^zwLSgLWv_w};qa=lfK3
z#K7xI%P_Vc$s)LeyFET8Wg60(1i#%+hKV>aT@K#r?qM%b29D0k#OxY^l0BW!w{ZT^
zq!0$y6lm;*DV>zGCV|<y(P_+?jI~3VUo26bi%evZ&{l<@-G|eOv6IW*k-H{I@9wND
zo={6aL9;n{LhBf7Ki#ivYv}^bFj`B>TQ_w=O1S2vc_-blM%7ss^plbUbU|avf(MTv
z+mgJ{J^v*^qQL<EG(|_}IE``Lx|&3v(s|-iX_sns7@s0|lO|HmSjGa5^M~(m!`X^-
zW3Hz*=#^b>s5ANz#*aHysBUBW(DF#?3FCEJUDMkXgl$u#hA7}4<$QxaCbW`L=7;9(
zHyF?9N{?oFC{uAHa-thq4wb1)XbHW9j)?zg8A{4Fz3EdBItST8*<v`^<Q$c?x^ThS
zfeT3`mxC7a1LrJ3XjWgXHwn^2bD$KuSYL8|>nR0P+Er=Q*Q&<s;E_wRCsF>0g-{gU
zeEPx~z7_IY8?RyxtYX>Pvz3k3>h`JGFIloap4a>;DT=m5j#(2erv}~&k>zq#;m4sc
z-F&5PBlyyY3?Q~o#n<u3r4uVhnckR24AmzBbW<Ex4B3!w%Mp+(*s00UoKygg5d7XP
zY{*c*Y@||j%0^uV`XR&IY?M9$iwEOhm<&Tzn>Yj<53Wa64jG2~mL?2#vK;3&Bjm%M
zDcACUPW4h=fmLYWyd!=WcgNIwyQZ*eL3cTx=3QanlJp33ge*CO&E~<A*73SJCx;f(
z$2qF<+VO{+L>5jYu{e^X!N#$<N2|v}WlxsIzSa%VM93=MAGa)L?otTod~k#gK2Y^j
G(f<K{Rl-gH

diff --git a/po/sl.po b/po/sl.po
index d349d7f9e..b827d5287 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -1,18 +1,17 @@
 # Slovenian translation for gst-plugins-good.
+# Copyright (C) 2005 - 2011 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gst-plugins-good package.
-# Copyright (C) 2005 - 2013 Free Software Foundation, Inc.
-#
 # Robert Horvat <robi@hipnos.net>, 2010.
 # Matej Urbančič <matej.urban@gmail.com>, 2010 - 2011.
-# Klemen Košir <klemen913@gmail.com>, 2012 - 2013.
+# Klemen Košir <klemen.kosir@gmx.com>, 2011.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good-1.0.3\n"
+"Project-Id-Version: gst-plugins-good 0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
-"PO-Revision-Date: 2013-01-05 10:03+0100\n"
-"Last-Translator: Klemen Košir <klemen913@gmail.com>\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
+"PO-Revision-Date: 2011-03-12 18:35+0100\n"
+"Last-Translator: Klemen Košir <klemen.kosir@gmx.com>\n"
 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
 "Language: sl\n"
 "MIME-Version: 1.0\n"
@@ -20,26 +19,35 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
 "%100==4 ? 3 : 0);\n"
+"X-Poedit-Language: Slovenian\n"
+"X-Poedit-Country: SLOVENIA\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Odkodiranje slike JPEG je spodletelo"
 
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
-msgstr "'%s' izvajalca '%s'"
-
-msgid "Failed to decode JPEG image"
-msgstr "Napaka med dekodiranjem JPEG slike"
+msgstr "'%s' - '%s'"
 
 msgid "Could not connect to server"
-msgstr "Ni se mogoče povezati s strežnikom"
+msgstr "S strežnikom se ni mogoče povezati"
+
+msgid "No URL set."
+msgstr "Ni nastavljenega naslova URL."
 
 msgid "Server does not support seeking."
 msgstr "Strežnik ne podpira iskanja."
 
 msgid "Could not resolve server name."
-msgstr "Ni mogoče razrešiti imena strežnika."
+msgstr "Imena strežnika ni mogoče razrešiti."
 
 msgid "Could not establish connection to server."
-msgstr "Ni mogoče vzpostaviti povezave s strežnikom."
+msgstr "Povezave s strežnikom ni mogoče vzpostaviti"
 
 msgid "Secure connection setup failed."
 msgstr "Nastavitev varne povezave je spodletela."
@@ -47,31 +55,31 @@ msgstr "Nastavitev varne povezave je spodletela."
 msgid ""
 "A network error occured, or the server closed the connection unexpectedly."
 msgstr ""
-"Prišlo je do omrežne napake ali pa je povezava nepričakovano prekinjena."
+"Prišlo je do omrežne napake ali pa se je povezava nepričakovano prekinila."
 
 msgid "Server sent bad data."
 msgstr "Strežnik je poslal slabe podatke."
 
-msgid "No URL set."
-msgstr "Ni nastavljenega naslova URL."
-
 msgid "Internal data stream error."
 msgstr "Notranja napaka pretoka podatkov."
 
 msgid "No or invalid input audio, AVI stream will be corrupt."
-msgstr "Napaka vhodnega zvoka, AVI pretok bo pokvarjen."
+msgstr "Napaka vhodnega zvoka, pretok AVI bo pokvarjen."
 
 msgid "This file contains no playable streams."
 msgstr "Datoteka ne vsebuje pretokov za predvajanje."
 
 msgid "This file is invalid and cannot be played."
-msgstr "Datoteka je napačna, zato je ni mogoče predvajati."
+msgstr "Datoteka je neveljavna, zato je ni mogoče predvajati."
+
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
 
 msgid "This file is corrupt and cannot be played."
 msgstr "Datoteka je pokvarjena, zato je ni mogoče predvajati."
 
 msgid "Invalid atom size."
-msgstr "Neveljavna velikost atoma"
+msgstr "Neveljavna velikost atoma."
 
 msgid "This file is incomplete and cannot be played."
 msgstr "Datoteka ni popolna, zato je ni mogoče predvajati."
@@ -88,64 +96,93 @@ msgid ""
 "extension plugin for Real media streams."
 msgstr ""
 "Ni mogoče najti podprtega pretoka. Najverjetneje je treba namestiti vstavek "
-"GStreamer RTSP razširitve za RealMedia pretoke."
+"GStreamer RTSP za pretoke RealMedia."
 
 msgid ""
 "No supported stream was found. You might need to allow more transport "
 "protocols or may otherwise be missing the right GStreamer RTSP extension "
 "plugin."
 msgstr ""
-"Ni mogoče najti podprtega pretoka. Najverjetneje je treba omogočiti več "
-"protokolov prenosa, oziroma manjka ustrezen vstavek GStreamer RTSP "
-"razširitve."
+"Podprtega pretoka ni mogoče najti. Najverjetneje je treba omogočiti več "
+"protokolov prenosa ali pa manjka ustrezen vstavek GStreamer RTSP."
 
 msgid "Internal data flow error."
-msgstr "Notranja napaka pretoka podatkov."
+msgstr "Notranja napaka pretočnosti podatkov."
 
 msgid ""
 "Could not open audio device for playback. Device is being used by another "
 "application."
 msgstr ""
-"Ni mogoče odpreti zvočne naprave za predvajanje. Napravo uporablja drug "
+"Zvočne naprave ni mogoče odpreti za predvajanje. Napravo uporablja drug "
 "program."
 
 msgid ""
 "Could not open audio device for playback. You don't have permission to open "
 "the device."
 msgstr ""
-"Ni mogoče odpreti zvočne naprave za predvajanje. Ni ustreznih dovoljenj za "
+"Zvočne naprave ni mogoče odpreti za predvajanje. Nimate dovoljenj za "
 "odpiranje naprave."
 
 msgid "Could not open audio device for playback."
-msgstr "Ni mogoče odpreti zvočne naprave za predvajanje."
-
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Ni mogoče odpreti zvočne naprave za snemanje. Ni ustreznih dovoljenj za "
-"odpiranje naprave."
-
-msgid "Could not open audio device for recording."
-msgstr "Ni mogoče odpreti zvočne naprave za snemanje."
+msgstr "Zvočne naprave ni mogoče odpreti za predvajanje."
 
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
 msgstr ""
-"Ni mogoče odpreti zvočne naprave za predvajanje. Open Sound System ni podprt."
+"Zvočne naprave ni mogoče odpreti za predvajanje. Predmet ne podpira trenutne "
+"različice sistema Open Sound System."
 
 msgid "Playback is not supported by this audio device."
-msgstr "Predvajane s to zvočno napravo ni podprto."
+msgstr "Ta zvočna naprava ne podpira predvajanja."
 
 msgid "Audio playback error."
-msgstr "Napaka predvajanja zvoka"
+msgstr "Napaka med predvajanjem zvoka."
 
 msgid "Recording is not supported by this audio device."
 msgstr "Snemanje s to zvočno napravo ni podprto."
 
 msgid "Error recording from audio device."
-msgstr "Napaka med shranjevanjem preko zvočne naprave"
+msgstr "Napaka med snemanjem z zvočno napravo."
+
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Zvočne naprave ni mogoče odpreti za snemanje. Nimate dovoljenj za odpiranje "
+"naprave."
+
+msgid "Could not open audio device for recording."
+msgstr "Zvočne naprave ni mogoče odpreti za snemanje."
+
+msgid "Record Source"
+msgstr "Snemaj vir"
+
+msgid "Microphone"
+msgstr "Mikrofon"
+
+msgid "Line In"
+msgstr "Analogni vhod"
+
+msgid "Internal CD"
+msgstr "Notranji CD"
+
+msgid "SPDIF In"
+msgstr "Vhod SPDIF"
+
+msgid "AUX 1 In"
+msgstr "Vhod AUX 1"
+
+msgid "AUX 2 In"
+msgstr "Vhod AUX 2"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Povratna zanka"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Povratna zanka"
 
 msgid "Volume"
 msgstr "Glasnost"
@@ -157,7 +194,7 @@ msgid "Monitor"
 msgstr "Zaslon"
 
 msgid "Built-in Speaker"
-msgstr "Vgrajeni zvočnik"
+msgstr "Vgrajen zvočnik"
 
 msgid "Headphone"
 msgstr "Slušalke"
@@ -169,10 +206,10 @@ msgid "SPDIF Out"
 msgstr "Izhod SPDIF"
 
 msgid "AUX 1 Out"
-msgstr "AUX 1 izhod"
+msgstr "Izhod AUX 1"
 
 msgid "AUX 2 Out"
-msgstr "AUX 2 izhod"
+msgstr "Izhod AUX 2"
 
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
@@ -181,89 +218,90 @@ msgstr "Napaka med branjem %d bajtov iz naprave '%s'."
 #, c-format
 msgid "Failed to enumerate possible video formats device '%s' can work with"
 msgstr ""
-"Med številčenjem oblik videa, ki jih podpira naprava \"%s\", je prišlo do "
-"napake."
 
 #, c-format
 msgid "Could not map buffers from device '%s'"
-msgstr "Ni mogoče preslikati medpomnilnika naprave '%s'"
+msgstr "Medpomnilnika naprave '%s' ni mogoče preslikati"
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
-msgstr "Gonilnik naprave \"%s\" ne podpira nobenega načina I/O %d."
+msgstr "Gonilnik naprave '%s' ne podpira nobenega znanega načina zajemanja."
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support any known IO method."
-msgstr "Gonilnik naprave \"%s\" ne podpira nobenega znanega načina I/O."
+msgstr "Gonilnik naprave '%s' ne podpira nobenega znanega načina zajemanja."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' does not support video capture"
-msgstr "Naprava \"%s\" ne podpira zajemanja videa."
+msgstr "Naprava '%s' ni izhodna naprava."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is busy"
-msgstr "Naprava \"%s\" je zaposlena."
+msgstr "Naprava '%s' ni izhodna naprava."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' cannot capture at %dx%d"
-msgstr "Naprava \"%s\" ne podpira zajemanja v ločljivosti %dx%d."
+msgstr "Naprava '%s' ni naprava za zajemanje."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' cannot capture in the specified format"
-msgstr "Naprava \"%s\" ne podpira zajemanja v izbrani obliki."
+msgstr "Naprava '%s' ni naprava za zajemanje."
 
 #, c-format
 msgid "Could not get parameters on device '%s'"
-msgstr "Ni mogoče pridobiti parametrov na napravi '%s'."
+msgstr "Parametrov na napravi '%s' ni mogoče pridobiti."
 
+#, fuzzy
 msgid "Video device did not accept new frame rate setting."
-msgstr "Napravi ni mogoče določiti novih nastavitev hitrosti sličic."
+msgstr ""
+"Vhodni video napravi ni mogoče določiti novih nastavitev hitrosti sličic."
 
 msgid "Video device could not create buffer pool."
-msgstr "Naprava ne more ustvariti zaloge medpomnilnika."
+msgstr ""
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get settings of tuner %d on device '%s'."
-msgstr ""
-"Med pridobivanjem nastavitev uglaševalnika %d na napravi \"%s\" je prišlo do "
-"napake."
+msgstr "Napaka med pridobivanjem nastavitev uglaševalnika %d naprave '%s'."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Error getting capabilities for device '%s'."
-msgstr "Med pridobivanjem lastnosti naprave \"%s\" je prišlo do napake."
+msgstr "Napaka med branjem %d bajtov iz naprave '%s'."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is not a tuner."
-msgstr "Naprava \"%s\" ni uglaševalnik."
+msgstr "Naprava '%s' ni izhodna naprava."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get radio input on device '%s'. "
-msgstr "Med pridobivanjem vhoda na napravi \"%s\" je prišlo do napake."
+msgstr "Napaka med nastavljanjem vhoda %d na napravi %s."
 
 #, c-format
 msgid "Failed to set input %d on device %s."
-msgstr "Napaka med določanjem vhoda %d naprave %s."
+msgstr "Napaka med nastavljanjem vhoda %d na napravi %s."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to change mute state for device '%s'."
-msgstr ""
-"Med nastavljanjem stanja glasnosti na napravi \"%s\" je prišlo do napake."
+msgstr "Napaka med pridobivanjem moči signala za napravo '%s'."
+
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Naprave '%s' ni mogoče določiti."
 
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
 "it is a v4l1 driver."
 msgstr ""
-"Napaka med pridobivanjem zmožnosti naprave '%s': ni pravega gonilnika v4l2. "
-"Preverite namestitev."
+"Napaka med pridobivanjem zmožnosti naprave '%s': ni gonilnik v4l2. "
+"Preverite, če je gonilnik v4l1."
 
 #, c-format
 msgid "Failed to query attributes of input %d in device %s"
-msgstr "Napaka med pregledovanjem atributov poizvedbe vhoda %d naprave %s"
+msgstr "Napaka med poizvedovanjem atributov vhoda %d naprave %s"
 
 #, c-format
 msgid "Failed to get setting of tuner %d on device '%s'."
-msgstr "Napaka med pridobivanjem nastavitev uglaševalnika %d na napravi '%s'."
+msgstr "Napaka med pridobivanjem nastavitev uglaševalnika %d naprave '%s'."
 
 #, c-format
 msgid "Failed to query norm on device '%s'."
@@ -273,17 +311,13 @@ msgstr "Napaka med poizvedovanjem uravnanosti naprave '%s'."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Napaka med pridobivanjem atributov nadzora naprave '%s'."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Ni mogoče določiti naprave '%s'."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "To ni naprava '%s'."
 
 #, c-format
 msgid "Could not open device '%s' for reading and writing."
-msgstr "Ni mogoče odpreti naprave '%s' za branje in pisanje."
+msgstr "Naprave '%s' ni mogoče odpreti za branje in pisanje."
 
 #, c-format
 msgid "Device '%s' is not a capture device."
@@ -295,16 +329,17 @@ msgstr "Naprava '%s' ni izhodna naprava."
 
 #, c-format
 msgid "Failed to set norm for device '%s'."
-msgstr "Napaka med nastavljanjem naprave '%s'."
+msgstr "Napaka med nastavljanjem uravnanosti naprave '%s'."
 
 #, c-format
 msgid "Failed to get current tuner frequency for device '%s'."
-msgstr "Napaka med pridobivanjem frekvence uglaševalnika naprave '%s'."
+msgstr ""
+"Napaka med pridobivanjem trenutne frekvence uglaševalnika naprave '%s'."
 
 #, c-format
 msgid "Failed to set current tuner frequency for device '%s' to %lu Hz."
 msgstr ""
-"Napaka med nastavljanjem frekvence uglaševalnika naprave '%s' na %lu Hz.."
+"Napaka med nastavljanjem frekvence uglaševalnika naprave '%s' na %lu Hz."
 
 #, c-format
 msgid "Failed to get signal strength for device '%s'."
@@ -312,31 +347,472 @@ msgstr "Napaka med pridobivanjem moči signala za napravo '%s'."
 
 #, c-format
 msgid "Failed to get value for control %d on device '%s'."
-msgstr "Napaka med pridobivanjem vrednosti %d na napravi '%s'."
+msgstr "Napaka med pridobivanjem vrednosti za nadzor %d na napravi '%s'."
 
 #, c-format
 msgid "Failed to set value %d for control %d on device '%s'."
-msgstr "Napaka med določanjem vrednosti %d za %d na napravi '%s'."
+msgstr "Napaka med nastavljanjem vrednosti %d za nadzor %d na napravi '%s'."
 
 #, c-format
 msgid "Failed to get current input on device '%s'. May be it is a radio device"
 msgstr ""
-"Napaka med pridobivanjem vhodnega signala naprave '%s'. Morda je radijska "
+"Napaka med pridobivanjem trenutnega vhoda naprave '%s'. Morda je radijska "
 "naprava."
 
 #, c-format
 msgid ""
 "Failed to get current output on device '%s'. May be it is a radio device"
 msgstr ""
-"Napaka med pridobivanjem odvodnega signala naprave '%s'. Morda je radijska "
+"Napaka med pridobivanjem trenutnega izhoda naprave '%s'. Morda je radijska "
 "naprava."
 
 #, c-format
 msgid "Failed to set output %d on device %s."
-msgstr "Napaka med določanjem odvoda %d naprave %s."
+msgstr "Napaka med nastavljanjem izhoda %d na napravi %s."
 
 msgid "Changing resolution at runtime is not yet supported."
 msgstr "Spreminjanje ločljivosti med delovanjem še ni podprto."
 
 msgid "Cannot operate without a clock"
-msgstr "Izvajanje opravil brez ure ni mogoče"
+msgstr "Delovanje brez ure ni mogoče"
+
+#~ msgid "Got unexpected frame size of %u instead of %u."
+#~ msgstr ""
+#~ "Nepričakovana vrednost velikosti okvirja (%u). Pričakovana vrednost je %u."
+
+#~ msgid "Failed trying to get video frames from device '%s'."
+#~ msgstr "Napaka med poskusom pridobivanja video sličic z naprave '%s'."
+
+#~ msgid "Failed after %d tries. device %s. system error: %s"
+#~ msgstr ""
+#~ "Neuspešen zagon po %d poskusih na napravi %s. Sporočilo sistemske napake: "
+#~ "%s"
+
+#~ msgid "Bass"
+#~ msgstr "Bas"
+
+#~ msgid "Treble"
+#~ msgstr "Visoki toni"
+
+#~ msgid "Synth"
+#~ msgstr "Sintetizator"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Speaker"
+#~ msgstr "Zvočnik"
+
+#~ msgid "Line-in"
+#~ msgstr "Analogni vhod"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Mixer"
+#~ msgstr "Mešalnik"
+
+#~ msgid "PCM-2"
+#~ msgstr "PCM-2"
+
+#~ msgid "Record"
+#~ msgstr "Snemanje"
+
+#~ msgid "In-gain"
+#~ msgstr "Vhodna ojačitev"
+
+#~ msgid "Out-gain"
+#~ msgstr "Izhodna ojačitev"
+
+#~ msgid "Line-1"
+#~ msgstr "Analogni vhod 1"
+
+#~ msgid "Line-2"
+#~ msgstr "Analogni vhod 2"
+
+#~ msgid "Line-3"
+#~ msgstr "Analogni vhod 3"
+
+#~ msgid "Digital-1"
+#~ msgstr "Digitalni vhod 1"
+
+#~ msgid "Digital-2"
+#~ msgstr "Digitalni vhod 2"
+
+#~ msgid "Digital-3"
+#~ msgstr "Digitalni vhod 3"
+
+#~ msgid "Phone-in"
+#~ msgstr "Telefonski vhod"
+
+#~ msgid "Phone-out"
+#~ msgstr "Telefonski izhod"
+
+#~ msgid "Video"
+#~ msgstr "Video"
+
+#~ msgid "Radio"
+#~ msgstr "Radio"
+
+#~ msgid "Could not open audio device for mixer control handling."
+#~ msgstr "Zvočne naprave ni mogoče odpreti za nadzor mešalnika."
+
+#~ msgid ""
+#~ "Could not open audio device for mixer control handling. This version of "
+#~ "the Open Sound System is not supported by this element."
+#~ msgstr ""
+#~ "Zvočne naprave ni mogoče odpreti za nadzor mešalnika. Predmet ne podpira "
+#~ "trenutne različice sistema Open Sound System."
+
+#~ msgid "Master"
+#~ msgstr "Glavni"
+
+#~ msgid "Front"
+#~ msgstr "Sprednji"
+
+#~ msgid "Rear"
+#~ msgstr "Zadnji"
+
+#~ msgid "Headphones"
+#~ msgstr "Slušalke"
+
+#~ msgid "Center"
+#~ msgstr "Sredinski"
+
+#~ msgid "LFE"
+#~ msgstr "LFE"
+
+#~ msgid "Surround"
+#~ msgstr "Prostorski"
+
+#~ msgid "Side"
+#~ msgstr "Stranski"
+
+#~ msgid "AUX Out"
+#~ msgstr "Izhod AUX"
+
+#~ msgid "3D Depth"
+#~ msgstr "3D globina"
+
+#~ msgid "3D Center"
+#~ msgstr "3D sredina"
+
+#~ msgid "3D Enhance"
+#~ msgstr "3D izboljšava"
+
+#~ msgid "Telephone"
+#~ msgstr "Telefon"
+
+#~ msgid "Video In"
+#~ msgstr "Video vhod"
+
+#~ msgid "AUX In"
+#~ msgstr "Vhod AUX"
+
+#~ msgid "Record Gain"
+#~ msgstr "Ojačitev snemanja"
+
+#~ msgid "Output Gain"
+#~ msgstr "Ojačitev izhoda"
+
+#~ msgid "Microphone Boost"
+#~ msgstr "Ojačitev mikrofona"
+
+#~ msgid "Diagnostic"
+#~ msgstr "Diagnostika"
+
+#~ msgid "Bass Boost"
+#~ msgstr "Ojačitev basov"
+
+#~ msgid "Playback Ports"
+#~ msgstr "Vrata predvajanja"
+
+#~ msgid "Input"
+#~ msgstr "Vhod"
+
+#~ msgid "Monitor Source"
+#~ msgstr "Nadzoruj vir"
+
+#~ msgid "Keyboard Beep"
+#~ msgstr "Pisk tipkovnice"
+
+#~ msgid "Simulate Stereo"
+#~ msgstr "Simuliran stereo"
+
+#~ msgid "Stereo"
+#~ msgstr "Stereo"
+
+#~ msgid "Surround Sound"
+#~ msgstr "Prostorski zvok"
+
+#~ msgid "Microphone Gain"
+#~ msgstr "Ojačitev mikrofona"
+
+#~ msgid "Speaker Source"
+#~ msgstr "Vir zvočnika"
+
+#~ msgid "Microphone Source"
+#~ msgstr "Vir mikrofona"
+
+#~ msgid "Jack"
+#~ msgstr "Priključek"
+
+#~ msgid "Center / LFE"
+#~ msgstr "Srednji / LFE"
+
+#~ msgid "Stereo Mix"
+#~ msgstr "Stereo mešanje"
+
+#~ msgid "Mono Mix"
+#~ msgstr "Mono mešanje"
+
+#~ msgid "Input Mix"
+#~ msgstr "Mešanje vhoda"
+
+#~ msgid "Microphone 1"
+#~ msgstr "Mikrofon 1"
+
+#~ msgid "Microphone 2"
+#~ msgstr "Mikrofon 2"
+
+#~ msgid "Digital Out"
+#~ msgstr "Digitalni izhod"
+
+#~ msgid "Digital In"
+#~ msgstr "Digitalni vhod"
+
+#~ msgid "HDMI"
+#~ msgstr "HDMI"
+
+#~ msgid "Modem"
+#~ msgstr "Modem"
+
+#~ msgid "Handset"
+#~ msgstr "Prostoročna slušalka"
+
+#~ msgid "Other"
+#~ msgstr "Drugo"
+
+#~ msgid "None"
+#~ msgstr "Brez"
+
+#~ msgid "On"
+#~ msgstr "Vključeno"
+
+#~ msgid "Off"
+#~ msgstr "Izključeno"
+
+#~ msgid "Mute"
+#~ msgstr "Nemo"
+
+#~ msgid "Fast"
+#~ msgstr "Hitro"
+
+#~ msgid "Very Low"
+#~ msgstr "Zelo nizko"
+
+#~ msgid "Low"
+#~ msgstr "Nizko"
+
+#~ msgid "Medium"
+#~ msgstr "Srednje"
+
+#~ msgid "High"
+#~ msgstr "Visoko"
+
+#~ msgid "Very High"
+#~ msgstr "Zelo visoko"
+
+#~ msgid "Production"
+#~ msgstr "Proizvodnja"
+
+#~ msgid "Front Panel Microphone"
+#~ msgstr "Mikrofon spredaj"
+
+#~ msgid "Front Panel Line In"
+#~ msgstr "Analogni vhod spredaj"
+
+#~ msgid "Front Panel Headphones"
+#~ msgstr "Slušalke spredaj"
+
+#~ msgid "Front Panel Line Out"
+#~ msgstr "Analogni izhod spredaj"
+
+#~ msgid "Green Connector"
+#~ msgstr "Zeleni priključek"
+
+#~ msgid "Pink Connector"
+#~ msgstr "Roza priključek"
+
+#~ msgid "Blue Connector"
+#~ msgstr "Modri priključek"
+
+#~ msgid "White Connector"
+#~ msgstr "Beli priključek"
+
+#~ msgid "Black Connector"
+#~ msgstr "Črni priključek"
+
+#~ msgid "Gray Connector"
+#~ msgstr "Sivi priključek"
+
+#~ msgid "Orange Connector"
+#~ msgstr "Oranžni priključek"
+
+#~ msgid "Red Connector"
+#~ msgstr "Rdeči priključek"
+
+#~ msgid "Yellow Connector"
+#~ msgstr "Rumeni priključek"
+
+#~ msgid "Green Front Panel Connector"
+#~ msgstr "Zeleni priključek spredaj"
+
+#~ msgid "Pink Front Panel Connector"
+#~ msgstr "Roza priključek spredaj"
+
+#~ msgid "Blue Front Panel Connector"
+#~ msgstr "Modri priključek spredaj"
+
+#~ msgid "White Front Panel Connector"
+#~ msgstr "Beli priključek spredaj"
+
+#~ msgid "Black Front Panel Connector"
+#~ msgstr "Črni priključek spredaj"
+
+#~ msgid "Gray Front Panel Connector"
+#~ msgstr "Sivi priključek spredaj"
+
+#~ msgid "Orange Front Panel Connector"
+#~ msgstr "Oranžni priključek spredaj"
+
+#~ msgid "Red Front Panel Connector"
+#~ msgstr "Rdeči priključek spredaj"
+
+#~ msgid "Yellow Front Panel Connector"
+#~ msgstr "Rumeni priključek spredaj"
+
+#~ msgid "Spread Output"
+#~ msgstr "Razširi izhod"
+
+#~ msgid "Downmix"
+#~ msgstr "Zmanjševanje kanalov"
+
+#~ msgid "Virtual Mixer Input"
+#~ msgstr "Vhod navideznega mešalnika"
+
+#~ msgid "Virtual Mixer Output"
+#~ msgstr "Izhod navideznega mešalnika"
+
+#~ msgid "Virtual Mixer Channels"
+#~ msgstr "Kanali navideznega mešalnika"
+
+#~ msgid "%s %d Function"
+#~ msgstr "Funkcija %s %d"
+
+#~ msgid "%s Function"
+#~ msgstr "Funkcija %s"
+
+#~ msgid "Error reading %d bytes on device '%s'."
+#~ msgstr "Napaka med branjem %d bajtov na napravi '%s'."
+
+#~ msgid "Could not enqueue buffers in device '%s'."
+#~ msgstr "Medpomnilnika na napravi '%s' ni mogoče uvrstiti."
+
+#~ msgid "Could not establish connection to sound server"
+#~ msgstr "Povezave z zvočnim strežnikom ni mogoče vzpostaviti"
+
+#~ msgid "Failed to query sound server capabilities"
+#~ msgstr "Poizvedba o zmogljivosti zvočnega strežnika je spodletela"
+
+#~ msgid "Describes the selected input element."
+#~ msgstr "Opisuje izbran vnosni predmet."
+
+#~ msgid "Describes the selected output element for Audio/Video Conferencing."
+#~ msgstr "Opisuje izbran izhodni predmet za zvočne/video konference."
+
+#~ msgid "Describes the selected output element for Music and Movies."
+#~ msgstr "Opisuje izbran predmet za glasbo in filme."
+
+#~ msgid "Describes the selected output element."
+#~ msgstr "Opisuje izbran izhodni predmet."
+
+#~ msgid "GStreamer audiosink for Audio/Video Conferencing"
+#~ msgstr "GStreamer odvod za zvočne/video konference"
+
+#~ msgid "GStreamer audiosink for Music and Movies"
+#~ msgstr "GStreamer odvod glasbe in filmov"
+
+#~ msgid ""
+#~ "GStreamer can play audio using any number of output elements. Some "
+#~ "possible choices are osssink, esdsink and alsasink. The audiosink can be "
+#~ "a partial pipeline instead of just one element."
+#~ msgstr ""
+#~ "S programom GStreamer je mogoče predvajati zvok z uporabo več izhodnih "
+#~ "predmetov. Med razpoložljivi so ossink, edsink in alsasink. Audiosink je "
+#~ "lahko delni cevovod namesto enega predmeta."
+
+#~ msgid ""
+#~ "GStreamer can play video using any number of output elements. Some "
+#~ "possible choices are xvimagesink, ximagesink, sdlvideosink and aasink. "
+#~ "The videosink can be a partial pipeline instead of just one element."
+#~ msgstr ""
+#~ "S programom GStreamer je mogoče predvajati video z uporabo več izhodnih "
+#~ "predmetov. Med razpoložljivimi so xvimagesink, ximagesink, sdlvideosink "
+#~ "in aasink. Videosink je lahko delni cevovod namesto enega predmeta."
+
+#~ msgid ""
+#~ "GStreamer can put visualization plugins in a pipeline to transform audio "
+#~ "stream in video frames. Default is goom but more visualization plugins "
+#~ "will be ported soon. The visualization plugin can be a partial pipeline "
+#~ "instead of just one element."
+#~ msgstr ""
+#~ "S programom GStreamer je mogoče v cevovod vključiti vstavek predočenja za "
+#~ "pretvorbo zvočnega pretoka v slikovni učinek. Privzeti vstavek je Goom, "
+#~ "kmalu pa mu bodo sledili še drugi. Vstavek predočenja je lahko delni "
+#~ "cevovod namesto samo enega predmeta."
+
+#~ msgid ""
+#~ "GStreamer can record audio using any number of input elements. Some "
+#~ "possible choices are osssrc, esdsrc and alsasrc. The audio source can be "
+#~ "a partial pipeline instead of just one element."
+#~ msgstr ""
+#~ "S programom GStreamer je mogoče posneti zvok z uporabo več vhodnih "
+#~ "predmetov. Med razpoložljivimi so osssrc, esdsrc in alsasrc. Vir zvoka je "
+#~ "lahko delni cevovod namesto samo enega predmeta."
+
+#~ msgid ""
+#~ "GStreamer can record video from any number of input elements. Some "
+#~ "possible choices are v4lsrc and videotestsrc. The video source can be a "
+#~ "partial pipeline instead of just one element."
+#~ msgstr ""
+#~ "S programom GStreamer je mogoče posneti video z uporabo več vhodnih "
+#~ "predmetov. Med razpoložljivimi sta v4lsrc in videotestsrc. Vir videa je "
+#~ "lahko delni cevovod namesto samo enega predmeta."
+
+#~ msgid "default GStreamer audio source"
+#~ msgstr "privzeti vir zvoka"
+
+#~ msgid "default GStreamer audiosink"
+#~ msgstr "privzeti zvočni ponor"
+
+#~ msgid "default GStreamer video source"
+#~ msgstr "privzeti vir videa"
+
+#~ msgid "default GStreamer videosink"
+#~ msgstr "privzeti video ponor"
+
+#~ msgid "default GStreamer visualization plugin"
+#~ msgstr "privzeti vstavek predočenja"
+
+#~ msgid "description for GStreamer audiosink for Audio/Video Conferencing"
+#~ msgstr "opis GStreamer zvočnega ponora za zvočno/video konferenco"
+
+#~ msgid "description for GStreamer audiosink for Music and Movies"
+#~ msgstr "opis GStreamer zvočnega ponora za glasbo in filme"
+
+#~ msgid "description for default GStreamer audiosink"
+#~ msgstr "opis za privzeti GStreamer zvočni ponor"
+
+#~ msgid "description for default GStreamer audiosrc"
+#~ msgstr "opis za privzeti GStreamer zvočni vir"
diff --git a/po/sq.gmo b/po/sq.gmo
index 7f98d76b44e70b07b598d2ed1632d4e93bc6ac7b..aab3fa63865b187917cb5693a7fc8a0c1a60aa3f 100644
GIT binary patch
delta 183
zcmZo*UCUa3Pl#nI0}!wRu?!Hq05Lld=KwJXbO13I5O)GGNPG$qn*s40AZ7#N%RpSr
z$iQ$5NOJ<Q9}`480!X_7`SDQxG9V39#=ru^FaQ)10b9%r67kJUF3K;+$j?iiSg?n~
e(A3J*OxwU{vI*mNPT$PzqWrY{yv)g3Okn`!lNj^>

delta 152
zcmZ3>+Q3?WPl#nI0}!wPu?!H~05K~N#{e-16aX<h5ElZm84y<jF&hwX0ODds28QiW
zzBUsBgBy@-1f)Uol|ULO%>bkrn1L8%J{b7s=Vg}U7cuzdE94g`OkA{<!^ptOz*yVB
NaB?`~_sJ1Vp#Z4{6bb+U

diff --git a/po/sq.po b/po/sq.po
index 0462dd868..ff3b97c39 100644
--- 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: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\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"
@@ -15,18 +15,24 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#. TRANSLATORS: 'song title' by 'artist name'
-#, c-format
-msgid "'%s' by '%s'"
+msgid "Jack server not found"
 msgstr ""
 
 msgid "Failed to decode JPEG image"
 msgstr ""
 
+#. TRANSLATORS: 'song title' by 'artist name'
+#, c-format
+msgid "'%s' by '%s'"
+msgstr ""
+
 #, fuzzy
 msgid "Could not connect to server"
 msgstr "E pamundur mbyllja e dispozitivit të kontrollit \"%s\"."
 
+msgid "No URL set."
+msgstr ""
+
 #, fuzzy
 msgid "Server does not support seeking."
 msgstr "Dispozitivi juaj OSS mund të mos provohet korrektësisht"
@@ -49,9 +55,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "No URL set."
-msgstr ""
-
 msgid "Internal data stream error."
 msgstr ""
 
@@ -64,6 +67,9 @@ msgstr ""
 msgid "This file is invalid and cannot be played."
 msgstr ""
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr ""
 
@@ -108,6 +114,23 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "E pamundur hapja e dispozitivit të zërit \"%s\" për shkrim."
 
+msgid ""
+"Could not open audio device for playback. This version of the Open Sound "
+"System is not supported by this element."
+msgstr ""
+
+msgid "Playback is not supported by this audio device."
+msgstr ""
+
+msgid "Audio playback error."
+msgstr ""
+
+msgid "Recording is not supported by this audio device."
+msgstr ""
+
+msgid "Error recording from audio device."
+msgstr ""
+
 msgid ""
 "Could not open audio device for recording. You don't have permission to open "
 "the device."
@@ -117,21 +140,33 @@ msgstr ""
 msgid "Could not open audio device for recording."
 msgstr "I pamundur hapja e dispozitivit CD për lexim."
 
-msgid ""
-"Could not open audio device for playback. This version of the Open Sound "
-"System is not supported by this element."
+#, fuzzy
+msgid "Record Source"
+msgstr "Regjistrimi"
+
+msgid "Microphone"
+msgstr "Mikrofoni"
+
+#, fuzzy
+msgid "Line In"
+msgstr "Linja-hyrje"
+
+msgid "Internal CD"
 msgstr ""
 
-msgid "Playback is not supported by this audio device."
+msgid "SPDIF In"
 msgstr ""
 
-msgid "Audio playback error."
+msgid "AUX 1 In"
 msgstr ""
 
-msgid "Recording is not supported by this audio device."
+msgid "AUX 2 In"
 msgstr ""
 
-msgid "Error recording from audio device."
+msgid "Codec Loopback"
+msgstr ""
+
+msgid "SunVTS Loopback"
 msgstr ""
 
 msgid "Volume"
@@ -232,6 +267,10 @@ msgstr "E pamundur mbyllja e dispozitivit audio \"%s\"."
 msgid "Failed to change mute state for device '%s'."
 msgstr "E pamundur marrja e buffers nga dispozitivi \"%s\"."
 
+#, fuzzy, c-format
+msgid "Cannot identify device '%s'."
+msgstr "I pamundur shkrimi në dispozitivin \"%s\"."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -254,10 +293,6 @@ msgstr ""
 msgid "Failed getting controls attributes on device '%s'."
 msgstr ""
 
-#, fuzzy, c-format
-msgid "Cannot identify device '%s'."
-msgstr "I pamundur shkrimi në dispozitivin \"%s\"."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr ""
@@ -339,9 +374,6 @@ msgstr ""
 #~ msgid "Line-in"
 #~ msgstr "Linja-hyrje"
 
-#~ msgid "Microphone"
-#~ msgstr "Mikrofoni"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -402,10 +434,6 @@ msgstr ""
 #~ msgid "Side"
 #~ msgstr "Video"
 
-#, fuzzy
-#~ msgid "Line In"
-#~ msgstr "Linja-hyrje"
-
 #, fuzzy
 #~ msgid "Video In"
 #~ msgstr "Video"
@@ -422,10 +450,6 @@ msgstr ""
 #~ msgid "Microphone Boost"
 #~ msgstr "Mikrofoni"
 
-#, fuzzy
-#~ msgid "Record Source"
-#~ msgstr "Regjistrimi"
-
 #, fuzzy
 #~ msgid "Monitor Source"
 #~ msgstr "Ekrani"
diff --git a/po/sr.gmo b/po/sr.gmo
index b02a2d3c95331f50b0a696646e72b8f321eedd4c..1dbaef9af0c65762163f3f43aab6e077b49ad208 100644
GIT binary patch
delta 1867
zcmY+^e@vBC7{Kwz%atG6<;pJ+DthA<h?u~QODdTBuoTjPQ^9bfA(FA!#R#mm*tM|L
zmO8ha+L&8^s4bl=#%;qDSktj)rkq>4^_Q($ZS_ynWo@ly-{-uqZk_Gi&pGG5?|aUB
zp69%?TQ79PZe;t92&IMk0JYyI(u>o6ekg6JBKP5D)N8sh9ZzEhPI~=muRn`<jL+dB
z{2BGRe_|2lq={5x81EN}$!;2D42)taj$;X4_s0LhcKRjE`Vx*{2mX%Ba6PNoj)V9(
zUPhhh4nBfK3q(TLgx$Csm*OQXW`4OvBg{bFLc1c_fa~e+!VP#9Yw$K!;c~WP1$Lp{
zcMx^rFHk4^1M9IM;PyLF7ZAfo@dQTj68f26?$BVd;?ERe4#~s<EJU_Qsxceekj;=D
z<mKf>WbHEKjmJ>$e;akdaXgA&;UIPgMJn(bGNt&5PppzgHVu7X6Y4@X;zQVu4(>&b
z=`pOtaV*6fxEfQl+)y;&WAyvI{ut_u%p&2J?{O9R^$Ti<oLu&QgvQ!j5yoT&b8yb<
z|K#;=<4VReScNXE5$kX#>VzNQ5MJ@d8yCAFjNxX+zr-#q$aiz;RXk3AE}#9sN~3>?
zJ5bAV+v$IYdO<~@d*j!r3n(WZ^|%Xb@f7}wKVT<bCe_=p<Ux@>d<7fye|#51y!Ju-
z8293u7_Sqh@d;{nh8#D`-@@nU|Akwz<6)6E@hon_ieh)75p1P@6?F%S$TXrNanzhS
ziM*^#;aZ$S4Ox&(t-@Ff4UN(3$V<pk)CWu=c_SB5WBm>8!N0L?9?3^4-=zN$XLToz
zagjdfU(|j+XG}x+8WI&bgiql~d=h`dC-nT6m66d5bmKEP>-Dpix#xTspJn_C?!eM=
z_xmu4`etX4_1r7VX=yHLel$~wtX&A$H`ZO@7Q3hgdj2!?ABw)E7L7AU*nR_a%Q!7I
zTlJ%)g$UTfPTH)lM%}R%JL(=$U05wuzYA=bJvCrYnX2CbTbSQ|jpidsDn4p1l})gj
z4z}plY1}kKx_t|&Pg5h*MyeKa&wh}!&DPqFm!lo8tn&2V9l&kcZlb18Yp5iutfOkt
zc<KjZ1yysQo~ngN*sRuevHno>7_OlPsD<&<^PkUaj!MI}?M{``Iy_`sVW&Bo$WGmo
z=4)CP-w|kC%oQ8^qP_NlO?^Fs1AAT=i1sGN0|(}%Ia>yX2YY(s;owRixAg=IeCbt@
z)sdR=%5Y+TR;O=ia@2fgCd`zW!{&rJ#YE<unfm`&*h!8ie$4qcGhil??<B{}Imdix
z-ix0p{yhEe{qc@aQSdnTewy58&L{Vq^JXUTa;Pq4$@@HRlA(Q0@(nY?71KOr%uK|`
OO9t-Uo>){GN%;>ELjnT;

delta 1552
zcmZA1OGuPa6u|MLW15zeO;h8e)ErCA)EURjSLGwgG|5VQ6_pu9q>^PpK}}T9q6gKK
zB(w-3kQ94NWgwJ|x$42R2#Tmx8*$~PCrSVF%^1<e<L_QSXYT#ZJ@@(=$LigmEn(M$
zRzWNz@<K(LaYGotX!mA_%*OjzjZZNWBf|sE!}*LCVGO!Zzh^BbVk_q1Nld^;n1OFG
zO~fs~=q%+A_K3iPYHVQKja~Q>8*$Z4k!5%dn{WhO7{_XKqFPMFcC_PVY{f^Ij<zU~
z6fDJDY{LZRmmWIn_`?IN!k?Ir6|+Q~cnq^~0QG|(Q71N&7M-vhOL1>-+=se=*SG{H
zaRu6<MKr0k$eLs`#xcKaqob)gf)>1jyqw%dUS0-~Ips0x!hG0+Kky)4GK=J(X^w~k
zU8oc6#w6^-WW0#FRd-SUZw%dObiUFl!bCQ388%}Uo(Ya0U>xI5$Zp9uETm4RP*Yzp
zPvkf@B0usj=r|TI{*Ahje5*(aHlTjL$4dUY={yfU$Y*)F6^C#W4&!!=UJ$5>cD%uO
z6yM-ZTVR|M8+iT-^|_tZ>gPsK7mySm*rFyZX55S8_%5FOx6pY;{_8NF(%pyqu}uE~
z&!KIR$OXKGN6^V@cVZuEk=b}XE!LyB11GQ^Ym!Ay;Z3YX`{KYnUAU34&rL@&V4*b0
zrkq8sf$O*i`>_ZoP>XRXm8G@PglxNXqi*48Jb?XJ62cLrGA9`~Q-Qm%h9jm9qSnA%
zK2(YBG&-y4bl^%Hz&8AXHCV;j(eYK(WB48QeyGb3*@|~ik8e1I!){0xGQUw^S~J>o
z!R(CjBCC+Eo^EcV;7Ec|5T&U5^>5?!{B16JWY&0dN<g@aB$S|hjKX7gjEhV&H{Fuy
zlm!QwsEgzsj1#8!kCX==Dw+Wk!Aluw()0a)Bg011?b7=of`}wE3%W(cL^MI^7^fv0
zqlgk>IiYt#3c;b1oIHN5Am$Q!#&s*S<r5UCadqmYp*5kckVy2b58q?jc(~j9B794P
z$8N4P1}DttLp-rDPVeRzOX$p8N0Gyo>2P}6EiIv*_g1TS$~tQHe6T-^@;~tp`G@`Y
U{6k(}YKh4co8IB=P0uj>0mAs9U;qFB

diff --git a/po/sr.po b/po/sr.po
index da423eceb..f5222b29e 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2011-12-04 16:44+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <gnu@prevod.org>\n"
@@ -20,17 +20,23 @@ msgstr ""
 "X-Generator: Virtaal 0.7.0\n"
 "X-Project-Style: gnome\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Нисам успео да декодирам ЈПЕГ слику"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "„%s“ изводи „%s“"
 
-msgid "Failed to decode JPEG image"
-msgstr "Нисам успео да декодирам ЈПЕГ слику"
-
 msgid "Could not connect to server"
 msgstr "Не могу да се повежем са сервером"
 
+msgid "No URL set."
+msgstr "Није подешена адреса."
+
 msgid "Server does not support seeking."
 msgstr "Сервер не подржава позиционирање."
 
@@ -50,9 +56,6 @@ msgstr "Дошло је до грешке на мрежи, или је серв
 msgid "Server sent bad data."
 msgstr "Сервер је послао лоше податке."
 
-msgid "No URL set."
-msgstr "Није подешена адреса."
-
 msgid "Internal data stream error."
 msgstr "Унутрашња грешка тока података."
 
@@ -65,6 +68,9 @@ msgstr "Ова датотека не садржи токове за пуштањ
 msgid "This file is invalid and cannot be played."
 msgstr "Ова датотека је неисправна и не може бити пуштена."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Ова датотека је оштећена и не може бити пуштена."
 
@@ -117,16 +123,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Не могу да покренем звучни уређај ради пуштања."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Не могу да покренем аудио уређај ради снимања. Немате овлашћење за покретање "
-"уређаја."
-
-msgid "Could not open audio device for recording."
-msgstr "Не могу да покренем звучни уређај ради снимања."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -146,6 +142,45 @@ msgstr "Снимање није подржано од стране овог зв
 msgid "Error recording from audio device."
 msgstr "Грешка приликом снимања са звучног уређаја."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Не могу да покренем аудио уређај ради снимања. Немате овлашћење за покретање "
+"уређаја."
+
+msgid "Could not open audio device for recording."
+msgstr "Не могу да покренем звучни уређај ради снимања."
+
+msgid "Record Source"
+msgstr "Извор снимања"
+
+msgid "Microphone"
+msgstr "Микрофон"
+
+msgid "Line In"
+msgstr "Линијски улаз"
+
+msgid "Internal CD"
+msgstr "Унутрашњи ЦД"
+
+msgid "SPDIF In"
+msgstr "СПДИФ улаз"
+
+msgid "AUX 1 In"
+msgstr "АУХ 1 улаз"
+
+msgid "AUX 2 In"
+msgstr "АУХ 2 улаз"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Повратна петља"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Повратна петља"
+
 msgid "Volume"
 msgstr "Јачина звука"
 
@@ -246,6 +281,10 @@ msgstr "Нисам успео да подесим улаз %d на уређај
 msgid "Failed to change mute state for device '%s'."
 msgstr "Нисам успео да добавим јачину сигнала за уређај „%s“."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Не могу да распознам уређај „%s“."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -270,10 +309,6 @@ msgstr "Нисам успео да пропитам норму на уређај
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Нисам успео да добавим својства контрола на уређају „%s“."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Не могу да распознам уређај „%s“."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Ово није уређај „%s“."
@@ -364,9 +399,6 @@ msgstr "Не могу да радим без сата"
 #~ msgid "Line-in"
 #~ msgstr "Линијски улаз"
 
-#~ msgid "Microphone"
-#~ msgstr "Микрофон"
-
 #~ msgid "CD"
 #~ msgstr "ЦД"
 
@@ -464,21 +496,9 @@ msgstr "Не могу да радим без сата"
 #~ msgid "Telephone"
 #~ msgstr "Телефон"
 
-#~ msgid "Line In"
-#~ msgstr "Линијски улаз"
-
-#~ msgid "Internal CD"
-#~ msgstr "Унутрашњи ЦД"
-
 #~ msgid "Video In"
 #~ msgstr "Видео улаз"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "АУХ 1 улаз"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "АУХ 2 улаз"
-
 #~ msgid "AUX In"
 #~ msgstr "АУХ улаз"
 
@@ -491,9 +511,6 @@ msgstr "Не могу да радим без сата"
 #~ msgid "Microphone Boost"
 #~ msgstr "Појачање микрофона"
 
-#~ msgid "Loopback"
-#~ msgstr "Повратна петља"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Дијагностика"
 
@@ -506,9 +523,6 @@ msgstr "Не могу да радим без сата"
 #~ msgid "Input"
 #~ msgstr "Улаз"
 
-#~ msgid "Record Source"
-#~ msgstr "Извор снимања"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Извор праћења"
 
@@ -548,9 +562,6 @@ msgstr "Не могу да радим без сата"
 #~ msgid "Input Mix"
 #~ msgstr "Улазни микс"
 
-#~ msgid "SPDIF In"
-#~ msgstr "СПДИФ улаз"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Микрофон 1"
 
diff --git a/po/sv.gmo b/po/sv.gmo
index d92a1121eccb99bc99700796055bb6122961f329..a35d49d173b9e3e4ba3432916397573c5c9213bd 100644
GIT binary patch
delta 1883
zcmYk+TWl0n9LMqhE~Q&;Z7nRf+IB>2p{0c`-BOE6>BU~4sis1!MNKJdUE0i+<zloZ
zBZ-L`4Qdu4)f9|E0tOy%!vpZ9iIEo)F^0<n2_`nipgw4PlEm+Cc1k?yzn^o?&dfRU
zKj+N9t<xReoszsyjM7UyOuQX78^wEh{G+^^Z?+KM!yY__1$Y<d;cr3v@1T7jqx452
zX2n>BdTt$-<2G!-y;y4I*-0vE>9~Sb_zPCzB1Tbv1Mb9^a35a80jy&5YV>drzru|;
zXMS#=P53D7ofyM6a5bI}`mf_K<J&(}*6_pN0<%?k7<I!bWQKMF+wm{##3s_wg>PXa
zUd4K}MZ6`%Q1=g`CUg`v@b}n)zX$EQLMF)g)=%Xzd=29`jmrLy$V=HxWNiBxSKuG0
zi4_!?mEdY5X|@STj%`8S$-096e$@R#s0okaF+71@no697T90Rt$=OZZfHSBEE_*09
z5eF-1SEGYHsI?wLU4Iz0gkNJb-o|Q-GRs<QLA71fi%gY}fA))I>F`2kmr<Lod5Kv!
zcA_Tmap0$cUk0AT<@|mTxz(<rQhgUS(R^mtfR(8B5U#^X)P&DO$$uS{TXZM`1xs_A
ztqCV+e~3e9%W~K4!WU@1kDGA@AHh}3LIby>);t-sr%_A$4Nl^(sB!l2`szRGQR$#^
zIq0yJX3x>C#OHA`@F(0(dp!&PEWU{?cny28h%=_m`64#qX&k^is5fmaV}IZ%HseXu
zxZZ6l+AI!-Q=6y;SvK2<%*i?eUq-TOucMaaNZ|3n&r$cEMO}9RH{*Bs8HUL}$+i<%
zgXNAtj%Phov?+F>9{f(=N657{g<7*q$e+#dPY;feciD!@h=(!!0iVP?&a#%G6&*Z;
zbMZKaP^DN?(vH_!v=S|Zj-J+trT2@{u8C=%sA#e(jAL7gFfoTvQHoWz5pBdmLLVW<
zv@L{Qq=<NeP^n^k|0|~kd&!<A^j0cs2z?2aPA!qX1zNi<;{Syueo*v=J%skaazYv5
zbKw_d!y!ujR_^F}O7Y`FJMmQT154%?Z7h{Iq2s8Jh}KR=js55st+~?8HuArMI?l7D
zk&4d!Y-ymPy`>G=nd{V}az|$|`Wr5Df9~#Rw`*H>3_A5r-@yZZE#`E)+1>enM#63F
zna;w#rChN+=_dROdXppR)WoYPH<6tx{2&x@`cntfBZ*9TaZ{Mv`ifVC3+m&|@y41B
zvFt?2Kxj#F_W2JUpLDZV7ay6oz!}+7yMH1vKAcWuo+;~#)^aHW?M*mb+M66pr(Q|9
j*)Ph@h34-c`}WlM_^@@mnbL~2nN&r7n5VcEh2j4IqejHg

delta 1633
zcmZY9Urfzm9LMqRIVVv_gd&bp{*{!I%AZn>oXEfVmr~3o8;c?Tspf2~xxv`MDys`_
zm_I{T=Fgaa<I3j74QpC#*4Bj!W^KGbzw>kDS<mnFJWuDG=Xt)*_xW{J43<YekBPf%
zlx5UO)YV?I?bs5>LnYp91bA>ICSd~By6(Vn^!H*io<{x7CG_KcEX4Pijzfl;Wn%`;
zG>h0O8Z#I;<o=@rtLeYQ1DHO{tOn2FEbPP0n9M2)umLquCr-u3I2U_x8m1)1#uuPA
zwiUDRDP}UieWRf-Bo2?QuoT1eYjHVtVI_XWc{qn~<l|1v!#33S-=G%s8#Qs>NV5=b
zMD;JB7WfdS<0mX)e)A=n#o<C^(N=~Nuo4xrdK`l%k<HshBskWAtjVsS7Iqh}U>_dD
zmQgGg2QY|JI3NA~I-G)a7zxm5qM<Xqib1@OGw}-+W8&yo=qoUnexuv(LM`+ya=g}y
z5s%q-BnY-U#cTy0LoNKd>pM)N{~?9=YiIooC`5lyE1NbpmNa2h{{+s)cGLo2V;=rQ
z?QjOGSI$&pBi_L+=pP^ZTocyOzlkLnmr4R+D3$nY;(7)O@C>T|2z5q1*o^TkR}-B=
zjX%H&{OI=mgrSOl7;CZJ^#`t|zh<J@dhEau_Tw7Njc~w9vSwU>FR%s&Q9G^TF3rbQ
zEXF6OiGLw^Yh{yTxv&D6%htQ@L4sqgsL*$ya^|`_ehW+JN1oBRN@EZShP82*axjg!
z&%!Y32lgX>cASTfq74K13iU%@T{9WfPPd_M#XT&=UQ~oLh&xT&ghMptQ5qfwbe`Jr
zzp{vil8EGWiY8U^5pm;GoRZ1YM^*AEvsDO;bA*~qw`wt!DXfgDqQutw#;cCAWl$*R
zQ8^YPN1USYg{TTESJk;{oXUSi`9Q*3IaQGgP_=Uvg}lgV#on;_Zd(!4yI@I#hZ0ML
z<hO-REB4UM;3_-kp6!k=buDxy(Ve%MLd*#`Z$iTAyo$j&LaD+DJGrBFn5w*TqNc>l
ziMGbq`_>*g+&vgSFf{rzslw@O7<Ja;YuL9ddM`PvJ1{!UJ8W*SI9QMq%<m4R)Ofsn
d{?^#@3DH&lN?(A^4gYOVG&_*deIYQ?`xhzznz8@@

diff --git a/po/sv.po b/po/sv.po
index cfd5720d7..39a0bfc5c 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2011-01-09 19:36+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -17,17 +17,23 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Misslyckades med att avkoda JPEG-bild"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "\"%s\" av \"%s\""
 
-msgid "Failed to decode JPEG image"
-msgstr "Misslyckades med att avkoda JPEG-bild"
-
 msgid "Could not connect to server"
 msgstr "Kunde inte ansluta till servern"
 
+msgid "No URL set."
+msgstr "Ingen URL inställd."
+
 msgid "Server does not support seeking."
 msgstr "Servern saknar stöd för sökning/spolning."
 
@@ -47,9 +53,6 @@ msgstr "Ett nätverksfel inträfade eller servern stängde anslutningen oväntat
 msgid "Server sent bad data."
 msgstr "Servern skickade felaktigt data."
 
-msgid "No URL set."
-msgstr "Ingen URL inställd."
-
 msgid "Internal data stream error."
 msgstr "Internt fel i dataström."
 
@@ -62,6 +65,9 @@ msgstr "Den här filen innehåller inga uppspelningsbara strömmar."
 msgid "This file is invalid and cannot be played."
 msgstr "Den här filen är ogiltig och kan inte spelas upp."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Den här filen är skadad och kan inte spelas upp."
 
@@ -115,16 +121,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Kunde inte öppna ljudenheten för uppspelning."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Kunde inte öppna ljudenheten för inspelning. Du har inte behörighet att "
-"öppna enheten."
-
-msgid "Could not open audio device for recording."
-msgstr "Kunde inte öppna ljudenheten för inspelning."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -144,6 +140,45 @@ msgstr "Inspelning stöds inte av denna ljudenhet."
 msgid "Error recording from audio device."
 msgstr "Fel vid inspelning från ljudenheten."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Kunde inte öppna ljudenheten för inspelning. Du har inte behörighet att "
+"öppna enheten."
+
+msgid "Could not open audio device for recording."
+msgstr "Kunde inte öppna ljudenheten för inspelning."
+
+msgid "Record Source"
+msgstr "Inspelningskälla"
+
+msgid "Microphone"
+msgstr "Mikrofon"
+
+msgid "Line In"
+msgstr "Linje-in"
+
+msgid "Internal CD"
+msgstr "Intern cd-spelare"
+
+msgid "SPDIF In"
+msgstr "SPDIF in"
+
+msgid "AUX 1 In"
+msgstr "AUX 1 in"
+
+msgid "AUX 2 In"
+msgstr "AUX 2 in"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Loopback"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Loopback"
+
 msgid "Volume"
 msgstr "Volym"
 
@@ -246,6 +281,10 @@ msgstr "Kunde inte ställa in ingång %d på enheten %s."
 msgid "Failed to change mute state for device '%s'."
 msgstr "Misslyckades med att få tag på signalstyrka för enheten \"%s\"."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Kunde inte identifiera enheten \"%s\"."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -272,10 +311,6 @@ msgstr "Misslyckades med att fråga efter norm på enheten \"%s\"."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Misslyckades med att få tag på kontrollattributen på enheten \"%s\"."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Kunde inte identifiera enheten \"%s\"."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Det här är inte en enhet \"%s\"."
@@ -370,9 +405,6 @@ msgstr "Kan inte fungera utan en klocka"
 #~ msgid "Line-in"
 #~ msgstr "Linje-in"
 
-#~ msgid "Microphone"
-#~ msgstr "Mikrofon"
-
 #~ msgid "CD"
 #~ msgstr "Cd"
 
@@ -470,21 +502,9 @@ msgstr "Kan inte fungera utan en klocka"
 #~ msgid "Telephone"
 #~ msgstr "Telefon"
 
-#~ msgid "Line In"
-#~ msgstr "Linje-in"
-
-#~ msgid "Internal CD"
-#~ msgstr "Intern cd-spelare"
-
 #~ msgid "Video In"
 #~ msgstr "Video-in"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "AUX 1 in"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "AUX 2 in"
-
 #~ msgid "AUX In"
 #~ msgstr "AUX in"
 
@@ -497,9 +517,6 @@ msgstr "Kan inte fungera utan en klocka"
 #~ msgid "Microphone Boost"
 #~ msgstr "Mikrofonboost"
 
-#~ msgid "Loopback"
-#~ msgstr "Loopback"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Diagnostik"
 
@@ -512,9 +529,6 @@ msgstr "Kan inte fungera utan en klocka"
 #~ msgid "Input"
 #~ msgstr "Ingång"
 
-#~ msgid "Record Source"
-#~ msgstr "Inspelningskälla"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Monitorkälla"
 
@@ -554,9 +568,6 @@ msgstr "Kan inte fungera utan en klocka"
 #~ msgid "Input Mix"
 #~ msgstr "Ingångsmix"
 
-#~ msgid "SPDIF In"
-#~ msgstr "SPDIF in"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Mikrofon 1"
 
diff --git a/po/tr.gmo b/po/tr.gmo
index 9685993cd565ac733454eca5c7dddb5466dbe576..ceb5cc79885dc43c2bfd74460cee3716bb8037af 100644
GIT binary patch
delta 1894
zcmYk+OKenC9LMqhOdr#tl(BWFV5wIG3vI1*=*tSW(80bKYtmS%CWZlP8ER&5(n>6g
z5jCkzbTvF|qBc<yjpAY)*=Tgbke~}pa3RqIL8A*qTxg6Dh<<<f-X@;p^mESXJ@-8R
z|2seQ&h=$4R+k<%N}O6peI;l%iC0VcLwU8_>{gt|Av}f^co{44ir@d!@884-<DrmQ
z7}ucQ+k*8tjBU6d?=;KWB8`m<e1;A9Gv15KSw-V*IEGK*b9f4OVFRl-Viw2o1Kf-y
z%e;j;@gDkP7{ys!hadUl=P|+h_7{x}{A2tUv$c2_HQ@xZL;DtE_y_i57uPX>FJcFN
ziLGeMIVD6<^Ao5I9YHO87JKnGzu!{D23g-mX{^VC*p6?ZZvPwPP<8=X+kV7Vcn!6&
ziWO$nxDL5A>qIWcdXO{OfImKpn*Stf!;^Rn-^Of)MmvGJAKyndXBTi2{(^d8?QPyh
z9K4HuBRV*QiuDxg`NOCXevIAt9X4WwUEYVisD27{kcDdQpM0?b19JhhPf;)2e!Cab
zaa8i<k<Ho{e*c``{~l`?{}nawUtEI`I$B^eK8$g!#Upq(p2Q|R7vcVO_5U!i5uKH0
zyKx97@k88+HO$t;-M9l^!YH0aW%YH`{MC1OA&jB=v#1lFz<K-{b<>ZtJLTGZmPQAS
zlc=o!35RjnYO_ai%=bN1GX0H8zGf2OL7c%Z%;Pq^g1YKvzPT;<1a{+bREW-_=9O?w
zGTTE#$#V!R@nzrFk-gY)WYd;MF3G+^CDSETNUoxC<OXVf8P~xYwgR_eGrocQ@p&vE
zfi~bQl3rPRmxiwD6IAkDMEAw02X7#AZN1|qUkqF5KaHA~!|nJv@~9gpZNMR3`u?|~
z4w67^{166ECCvKnqRIiiq?f8sPcb6&Zc+SoLM^JIc&hLo_sWA<q5(>$ha18^+Dcw+
zVlB0Y+Dz5qwop|XSl>N`I^>X>t%{3^POqFGson2c*Q;0#Q2$?a+NDxPV~DDpP}r2D
z{9L$2`QuPY5w|FuSzXx!)EM<4s*0{#CGO$=C=Jrq^)*rXN{u{pi*iSCCj9QNpg!lN
zqQq7*E|oSK{3N)E*zXPMRo>5|zGKB{NA70Xp2%RzwmmlPv^pa*({3y345kWu%6|_9
z`(nBNs*#mEu``*Pa36>#_h!-u_N7x3g@vlu0wHHKJ(Jlxk*g1P1(`MyUKOlpZSQXH
zXxbDl9H>4RDDO{Zl4llkmuhND)ht}AIaN^^OYBQNn{-&<ow`RH?~$YpB&MCybH)5r
vF@I*Un74RxDwBRDohn?fTMUGU6E76=(+;E(MgE;zsBaDVQwyi--wgZ*VW`%R

delta 1642
zcmZY9S!_&E9LMqhwABqY-B3$AwRWMVs?`l$trbEnZ9FImY3xNMBIZG)1c_#ps?dZt
zK}^OAL4uLSn+FjumZFGA8eS|R@%`O9o}A3NpL1?!?m74W|DSf&zpe?qN{j0@+CusS
zdQ*&9D;|pDq84v90z9}BQ!ojeqi)7b<~z`fM^Mi>gV`9uIrtRE<FEv?e9Xn^W&vBq
zU>Y~}M*q-@YnexI4~|bXTZgBx00(hBdf7z@wxJffh?DUy&c-)51=Ew=`{k$?+kkm^
zA1ATCePo~?BoB9YI1d|`H{&9_gp2V5mf<YIQH)!#2zyY!??-Lu7i!_6k!Cfx8Z|$I
z+Td-RiZ8L0^({8VEDkG>P1}6T!o{eNZNfA>jJ&*cA;Ga;WKVV(wXqv`76-8%4~=58
zID~%8AwPQlO3c9)4EPuvWS|^gKtG0XI=;n9Oipz}--t7r?~cwdp*H#iNw2-bPLJ7V
z)brZY-BcYz_Fw~1zak&=WDtLSF*Cz#A{L?^xC9sCW*mc8F&7_VA-+e2(94hWu?#oj
zM%;=IunF@=yT9weM&>=JRJ}sgOzIfouLt;9r4(CG^V3*>cknn4qC&ZAtcu3056kc&
zs(63mGW4<gmAF0XJuG3KGS01`I;>)T0?V;Kz@V0a60OkIVKwf?O1zFr$tSGBEY6l(
zgQ|fpOv3Z1$X!A9V)u|B*mG3qzo5SN8~Io~;hu+q$qafJv|<PTLLHAi#7B|nMLi&b
zy8jIM*dHz`q6u7zup0IKZCHoh$j4rA(Skov)t~8eH(G%dZ@^YFpk|zh=uQ8%Y6hGn
zXK~$|L05$Ic4Wh8N<}PP#izGZ(_%Vq3cF6#0=jBvK3z?Pt(3)RqVuoDzW^tnWW%Tp
zr%_{8LswWis?Jd(3;#70A_ecfwT`Ect|C)Yid0u>D(GTo<fc&3sMY!^EHxd83TNbA
z(txAv)PX{)R`25cOVv<0R$7!xBJ8AQ7;<u*rXv2=$gFb;G;g5Kr8`k8XHXbC8ow!a
z#r}Qa-|<5U!S5-J&Scf7lb+bNom+!9y?J3@>e!gX+5Sp@Nuj?uT$6sl6O3ed!vh)D
j5`*U^E+77=GZNYs2|ezMgu-#zeV*X09Dn#*PPgYT1>2wN

diff --git a/po/tr.po b/po/tr.po
index cc7dd52a0..97fc7cc7c 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2011-01-08 00:03+0200\n"
 "Last-Translator: Server Acim <serveracim@gmail.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -15,17 +15,23 @@ msgstr ""
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "JPEG görüntüsünü çözümlenemedi"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "'%s' tarafından '%s'"
 
-msgid "Failed to decode JPEG image"
-msgstr "JPEG görüntüsünü çözümlenemedi"
-
 msgid "Could not connect to server"
 msgstr "Sunucuya bağlanamıyor"
 
+msgid "No URL set."
+msgstr "Hiç bir URL ayarlanmamış."
+
 msgid "Server does not support seeking."
 msgstr "Sunucu aramayı desteklemiyor."
 
@@ -47,9 +53,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr "Sunucu yetersiz veri gönderdi."
 
-msgid "No URL set."
-msgstr "Hiç bir URL ayarlanmamış."
-
 msgid "Internal data stream error."
 msgstr "İç veri akım hatası."
 
@@ -62,6 +65,9 @@ msgstr "Dosya çalınabilir akışlar içermiyor."
 msgid "This file is invalid and cannot be played."
 msgstr "Bu dosya geçersiz ve oynatılamaz."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Bu dosya bozuk ve oynatılamaz."
 
@@ -111,14 +117,6 @@ msgstr "Çalmak için ses aygıtı açılamıyor. Aygıtı açma izniniz bulunmu
 msgid "Could not open audio device for playback."
 msgstr "Çalmak için ses aygıtı açılamıyor."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr "Kayıt için aygıtı açamıyor. Aygıtı açmak için yetkiniz yok."
-
-msgid "Could not open audio device for recording."
-msgstr "Aygıtı kayıt için açamıyor."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -138,6 +136,43 @@ msgstr "Bu ses aygıtı kaydetmeyi desteklemiyor."
 msgid "Error recording from audio device."
 msgstr "Ses aygıtından kaydetmekte hata."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr "Kayıt için aygıtı açamıyor. Aygıtı açmak için yetkiniz yok."
+
+msgid "Could not open audio device for recording."
+msgstr "Aygıtı kayıt için açamıyor."
+
+msgid "Record Source"
+msgstr "Kayıt Kaynağı"
+
+msgid "Microphone"
+msgstr "Mikrofon"
+
+msgid "Line In"
+msgstr "Hat GiriÅŸi"
+
+msgid "Internal CD"
+msgstr "Dahili CD"
+
+msgid "SPDIF In"
+msgstr "SPDIF GiriÅŸi"
+
+msgid "AUX 1 In"
+msgstr "AUX 1 GiriÅŸ"
+
+msgid "AUX 2 In"
+msgstr "AUX 2 GiriÅŸ"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Geridönüm"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Geridönüm"
+
 msgid "Volume"
 msgstr "Ses GiriÅŸi"
 
@@ -240,6 +275,10 @@ msgstr "Giriş değeri olarak bu %d şu aygıtta %s ayarlanamadı."
 msgid "Failed to change mute state for device '%s'."
 msgstr "Aygıt için '%s' güçlü sinyal alımı gerçekleşemedi."
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Aygıt tanımlanamıyor '%s'."
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -264,10 +303,6 @@ msgstr "Şu aygıtta '%s' sorgu normuna erişilemedi."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Denetim davranışları şu aygıtta '%s' bulunamadı."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Aygıt tanımlanamıyor '%s'."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Bu bir aygıt değil'%s'."
@@ -329,11 +364,14 @@ msgstr "Çalışırken çözünürlüğü değiştirmek henüz desteklenmiyor."
 msgid "Cannot operate without a clock"
 msgstr "Saat olmadan çalışamaz"
 
-#~ msgid "Could not establish connection to sound server"
-#~ msgstr "Ses sunucusuyla bağlantı kurulumayor"
+#~ msgid "Got unexpected frame size of %u instead of %u."
+#~ msgstr "Beklenmeyen bir çerçevece boyutu %u bunun yerine %u görüntülendi."
 
-#~ msgid "Failed to query sound server capabilities"
-#~ msgstr "Ses sunucusu olanakları sorgulanamadı"
+#~ msgid "Failed trying to get video frames from device '%s'."
+#~ msgstr "Aygıttan device '%s' vidyo çerçeveleri alınamadı."
+
+#~ msgid "Failed after %d tries. device %s. system error: %s"
+#~ msgstr "Şu denemeden sonra %d başarılamadı. aygıt %s. sistem hatası: %s"
 
 #~ msgid "Bass"
 #~ msgstr "Bas"
@@ -353,9 +391,6 @@ msgstr "Saat olmadan çalışamaz"
 #~ msgid "Line-in"
 #~ msgstr "Hat giriÅŸi"
 
-#~ msgid "Microphone"
-#~ msgstr "Mikrofon"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -453,21 +488,9 @@ msgstr "Saat olmadan çalışamaz"
 #~ msgid "Telephone"
 #~ msgstr "Telefon"
 
-#~ msgid "Line In"
-#~ msgstr "Hat GiriÅŸi"
-
-#~ msgid "Internal CD"
-#~ msgstr "Dahili CD"
-
 #~ msgid "Video In"
 #~ msgstr "Vidyo GiriÅŸi"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "AUX 1 GiriÅŸ"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "AUX 2 GiriÅŸ"
-
 #~ msgid "AUX In"
 #~ msgstr "AUX GiriÅŸ"
 
@@ -480,9 +503,6 @@ msgstr "Saat olmadan çalışamaz"
 #~ msgid "Microphone Boost"
 #~ msgstr "Mikrofon Seviye Yükseltme"
 
-#~ msgid "Loopback"
-#~ msgstr "Geridönüm"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Ayarlar"
 
@@ -495,9 +515,6 @@ msgstr "Saat olmadan çalışamaz"
 #~ msgid "Input"
 #~ msgstr "GiriÅŸ"
 
-#~ msgid "Record Source"
-#~ msgstr "Kayıt Kaynağı"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Hoparlör Kaynağı"
 
@@ -537,9 +554,6 @@ msgstr "Saat olmadan çalışamaz"
 #~ msgid "Input Mix"
 #~ msgstr "GiriÅŸ Mix"
 
-#~ msgid "SPDIF In"
-#~ msgstr "SPDIF GiriÅŸi"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Mikrofon 1"
 
@@ -684,8 +698,11 @@ msgstr "Saat olmadan çalışamaz"
 #~ msgid "%s Function"
 #~ msgstr "%s Ä°ÅŸlev"
 
-#~ msgid "Got unexpected frame size of %u instead of %u."
-#~ msgstr "Beklenmeyen bir çerçevece boyutu %u bunun yerine %u görüntülendi."
+#~ msgid "Could not establish connection to sound server"
+#~ msgstr "Ses sunucusuyla bağlantı kurulumayor"
+
+#~ msgid "Failed to query sound server capabilities"
+#~ msgstr "Ses sunucusu olanakları sorgulanamadı"
 
 #~ msgid "Error reading %d bytes on device '%s'."
 #~ msgstr "%d baytı şu aygıtta '%s' okumada hata."
@@ -693,12 +710,6 @@ msgstr "Saat olmadan çalışamaz"
 #~ msgid "Could not enqueue buffers in device '%s'."
 #~ msgstr "Aygıtta '%s' arabellek kuyruğa sokulamıyor."
 
-#~ msgid "Failed trying to get video frames from device '%s'."
-#~ msgstr "Aygıttan device '%s' vidyo çerçeveleri alınamadı."
-
-#~ msgid "Failed after %d tries. device %s. system error: %s"
-#~ msgstr "Şu denemeden sonra %d başarılamadı. aygıt %s. sistem hatası: %s"
-
 #~ msgid ""
 #~ "The buffer type is not supported, or the index is out of bounds, or no "
 #~ "buffers have been allocated yet, or the userptr or length are invalid. "
diff --git a/po/uk.gmo b/po/uk.gmo
index 2cb4fe4d2468aff01bcab2c8896ce19f621151e9..717d2b3f84f8b9529842ed0a4c0897c06072ffc9 100644
GIT binary patch
delta 2088
zcmYk+d2AF_9KiA4w%Bdy!CHEuVn+%ET6a6U?LsMX6e`ftrnTi*Q#C2IV3lkEIT~WJ
zlq1s6s9~_CB#JSnF(gJ{S~;555dV>=II9UF!~+uzq7WiRjfv6kZ+1g?$!|XIz1^92
z{bp`&`ma6qUGAjUh0;VkMC?xy*@VAM;zBu?CX$8y*noqWj@K{)ZzS7)B-{UDKK)*=
zh!3ZuJ~x05<7%wJ=kY<2m>i=rmyR)<jXz;2W;2TRSK&H*2DjoUuE*JoUWPG@;Bl<P
z)X9l~=3@!%br{0kI1}Gb_J4^Tj4yvunZpl}OpzJbhkC=i$PDFctiwCF606ycRk#P|
z;ROt$WV1>Lq2AwtI-w(|1Al@`@n*6e$YFwvFKtw2;Vum0o2a}06|yL~jEpTm;xxR4
zI<fRABDpvd*)*AtY>q5J)+DQv{cWiCx1&yY6At2A7~4iA%t2M)d&uPEGMe}^>H`b!
zPfWzXV%lYBU<2w|zkvGxKGY*Tg*A8u%P^l=`f(|0JBqrHp<MQ#d=Z<Diyo14SVX%&
zPh=S1K^80ZjKW+bg4*s*wtF#1yC3ze$FLs1#|1dIKx8L&;zGQF%~((<(t;Zc*?+B^
zreh7JGx`VkG}@TWG>_wXY{1PAh`f!bu?r)d!&;ocPRt|Kw_q=7j{Jg8U}(C?7q}mv
z#WlPNI+3$6D!o)P*w+=f7l-fyzJi^G$ZPmJZpM9&aE^EzpTtHoR_`B1eJhID27S&h
zd<iG82^W%qjo6Pm@FisJ5-TP1*ku_;c3;Mj#mYt06<<d^%gR!bR*a(lejZu0Tty%L
zg?cpUB!Gd1cm%64lcW6{KcoH49FYw;JlB0rOftxbb##=VK43TM1N%`|d=wkdTb_7*
zTJZpF3-!pRJ(~C~L{V4z18NQg$T*#FFS0rEDe7}?A@gyIPxm03DvOk5#8P4sQ9+O^
zZfWGIZ$Ti@bTe41oPg94DMTuvWqtx#jmwEFf)j8jumqW#Od%d4w9M8sU?<!{4!UQz
zFxh6O+%KUX&txKl(4)}Ay0?&Hcgua$bhoMra@hS4>8@(gkC8#>v1#EYkytU81w<XO
zn9!o%X)R3&+>erOX(qw0yLrM3;1(~}MFffMzKUsXZ{ji!*zLQeiW;8;_gk?t(W@z!
z_&iQUO{~YQZ__s9*GHvxZNvx~%{#WcwUALCwU>FvQ?13Bi>!|`f3>e>`8`%;PNhAR
zbKH}%yv|zSYcAlv#_njBds|a?=eC|L&-FyR>_ff*kJo7H*|Dv&%kt$`r_@KS+T4wH
z$<zvubuzC!!wdw?K&UzpvaaQ|n89#OcwV^~GR?^?&HmP|o!u{X_eA}59oxHVjF1@&
z`pvN43>v{;O*mX`R$3kT|9C>yQw7(v;s@e`&WPbo-l{FkySF1`w-&zYwIaoPtUELE
zt<ln4d&Icpv5u7%*y$ya6s=fSXRWtSlx|HeI_#W`?{h|+3Fnk^!WnnYIA;y#sB^?B
zF1wkQ7{>a$tT>19&c*jQ6Y>50b==M?&q*yBaXxfL=^S;&oD<@_!2>>W&cyqypjl)M
tRAyK={Qm62$+@<*)YY%BHwUsj_Cd2f#b?F$#b0*D<Ad?O_}=({{0~*JI%EI<

delta 3005
zcma*ndu&uy9>DQ4EiGl*fj+U-J`R-;?2C5F8y|omf>uBfFu2)FXD-m#&XnmC#K%q-
zM07=0d$0yIMkDbLHF02CTL=&1<B#2#?7e2Ai6$x<4aW7gkF2jmzrQnBF+So+&V0_j
zbI<E{e)oR2`SY!*w@W8Hs3>cx)zm{dO7&n<9zT?K^OY*X)3^#h#YwneV%96Lg6j?}
z#t6zdNvy>Oa5kp#0{j3kMqhzaGn7iHMj97!V;#yLx8Mdmgxm2O+=xBQ+JLX%Cj1=R
zaiu>y(d~F4*N<WdU%&?Z50+tVp;FT^g!0@*yny-Dtuz|B@eqdbC7g*twq1|cq71kl
zoA40IPCQ(OpWq4%1(do9Z^60v63PO;#x@L2&W^JYTe$v<Tr<BqN<((?FO(JPDM~HI
z<tW#8qOABC4B|g<4*m}(U?XuS7^)Ska3RV9*JCO6B0*Gpkm#%Z$R5=JOvy?gr!j<Y
zU;<+$O3lL4*oq~LA`>jdI=luocB7pAy?8l3iHq=klzw%@oikQza3S7|5|Iox<J)D#
zUv3nYXIDNC<$5i)<84U3sWkrGr_?A`a=m-1QcvL{$ePvC^Rli(33U`DVnetRkKqEG
zK<6EJ8OlOODvAGU8eec@4K5*m;vlZa_whNLe?F_mGx#(<N_<!03R3-X97G4(Ym~Yk
z4`KvA!(Lp+t042djFRl-gi&&3QHsV|8h4=V_;nmWzvi6r9*pAVY1si@z?-=)CNsC<
z-FPK_fd_Fu+rAH9!}~Ez0(IlRQO5Zr3A7ns#@jKaS<VeK9zz-UOWcUtIXD^kZ+IIP
z^GbB!y?712g|efW7t2dbU*vSum&oy}0Ou$X(kN$t6JCc;A;D8$A^DzC6^+?snvMtf
zV>uRb)^FmgTz}Z4R3~Q0m<>3!C41IAC_DQTuELLTG0vT(l);^ND;BmYwHNoH9BF_A
z*^ZsqAxr-!4M~#vP<DmgNHo<c?8o=;PTa)#6yrO{`s_D?VA<mX`;}XY^W}oFCX0RL
z3Tfw1*|fTrI*BS@M;khhM)8fX=f6yDQY4flxBXDaD>i{Dh3Kl~RLSlo)B>s;$EDOC
zibO*~EJYS9o0Cs+E|p-~S6enHB}G*1_k9tPtoE$(kf12un(;#7kC(}`G&P?pIU&VQ
zT|vE!N^Xr8f@eQg3&!s#HSNcC%6^-9`)rYfx{6B9*-!EmoJ&2okOpcV^=j%R)XS;7
zr8ZeXl~5N;gHoEsezdNT_KaZP4Bfd)i)x9EIp*Q~j@;G#$;`L;Cvrp4xYMU&@ucqS
z@9m8zl6ps1)QRgzxHs9KaMUtqM_0tLopo2A?(FZ|Wjy~>^P+#YdCgyum+X%@3G-in
z6ZMml$hL57tD}4RlaB67hLet29jMNnE^PMYCBo6JxalZ5&wN+3)JzHF`}=f!i_Z2R
z2-IdS2|VXB|DU|vF73K0`+d1xv8^UuJk#hBClyU}?Qjy(BYMt?ezy2<Y?r<%7T+1u
zD_83tC%G*iZBgsDIr?|@Px9z^PaTZfzC<K*S4oraMjM&4^GD+S-BBC3NWx*Kgl5YY
zR@fVlcekhw=RO+k%03v5M4a9vC$Lj*NrZbGosfQgPBJMwJzUz7*VfY7(r(U_t|<t$
zE^KXYY;7}(%PNaQ&24SXq4}DdA#R4uwz98%b4;ZCOpZHduCA!g?5jvkEO3vzC*9}W
z5%WZKeStgdrri_XkZG$qKQK!BC|7^=cDpCJGso1_beY*T(~G!$+)aD?+!6P<8K^5a
z&o)#APkOt(0e4LPaZgA$ogK{`^Y&`*Ze|%~m}hHd(W5H!NX;3aIdx(As!{j2H$;aq
zW*O7opMn0`Jz|F%bC3Nv+^BoR+v6Vd_Gq3@Yxk7QCq3|__mD}~Rt?rq%p9!Slp{l%
z+PadUeddR4cte^;)9x@c%5v;pwL5B_&{gKMY4P8`k4$a-;au}k@MH7oMTHsvjKW+q
ztDz%vPs1c%;DDXuC_5PO1{k{1G&fYv(*#-O9I=~Y0YrmXjk!lPj7W^#Vc9m_vX4m&
zn~hVWe|f}9f3u&B-%o}*_c(&l%wXdma;gXII!2iKr?I?`2%FOtWu0;yM+mM2`t14a
z<!KIw6CKg+VQ-IjhwPJ$jM_is@a4p_;gx2Ka(``}1LRM0!?exxkwF=7RF2kW*4Z37
n#ig8?jgho8|E6u8ka47p&5&VlfUO*1D#MEQNe<h@*ss0^#X1!|

diff --git a/po/uk.po b/po/uk.po
index d1ca123b0..92d1d7bb8 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -3,33 +3,39 @@
 # This file is distributed under the same license as the gst-plugins-good package.
 #
 # Maxim V. Dziumanenko <dziumanenko@gmail.com>, 2004-2007.
-# Yuri Chornoivan <yurchor@ukr.net>, 2011, 2012.
+# Yuri Chornoivan <yurchor@ukr.net>, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good 1.0.3\n"
+"Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
-"PO-Revision-Date: 2012-11-28 20:23+0200\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
+"PO-Revision-Date: 2011-05-01 11:55+0300\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
 "Language: uk\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.5\n"
+"X-Generator: Lokalize 1.2\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Помилка при декодуванні зображення JPEG"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "«%s» виконує %s"
 
-msgid "Failed to decode JPEG image"
-msgstr "Помилка при декодуванні зображення JPEG"
-
 msgid "Could not connect to server"
 msgstr "Не вдалося з'єднатись з сервером"
 
+msgid "No URL set."
+msgstr "Не вказано адресу"
+
 msgid "Server does not support seeking."
 msgstr "Сервером не підтримується позиціювання."
 
@@ -51,9 +57,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr "Сервером надіслано помилкові дані."
 
-msgid "No URL set."
-msgstr "Не вказано адресу"
-
 msgid "Internal data stream error."
 msgstr "Внутрішня помилка потоку даних."
 
@@ -68,6 +71,9 @@ msgstr "Файл не містить потоків, які можна відт
 msgid "This file is invalid and cannot be played."
 msgstr "Файл є некоректним, його не можна відтворити."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Файл пошкоджено, його не можна відтворити."
 
@@ -120,16 +126,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Не вдалося відкрити пристрій для відтворення."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Не вдалося відкрити пристрій для запису. У вас недостатньо прав для "
-"відкриття пристрою."
-
-msgid "Could not open audio device for recording."
-msgstr "Не вдалося відкрити пристрій для запису."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -149,6 +145,45 @@ msgstr "Запис не підтримується цим звуковим пр
 msgid "Error recording from audio device."
 msgstr "Помилка записування зі звукового пристрою."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Не вдалося відкрити пристрій для запису. У вас недостатньо прав для "
+"відкриття пристрою."
+
+msgid "Could not open audio device for recording."
+msgstr "Не вдалося відкрити пристрій для запису."
+
+msgid "Record Source"
+msgstr "Запис джерела"
+
+msgid "Microphone"
+msgstr "Мікрофон"
+
+msgid "Line In"
+msgstr "Лінійний вхід"
+
+msgid "Internal CD"
+msgstr "Вбудований КД"
+
+msgid "SPDIF In"
+msgstr "Вхід SPDIF"
+
+msgid "AUX 1 In"
+msgstr "Вхід AUX 1"
+
+msgid "AUX 2 In"
+msgstr "Вхід AUX 2"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Заглушка"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Заглушка"
+
 msgid "Volume"
 msgstr "Гучність"
 
@@ -190,23 +225,21 @@ msgstr ""
 msgid "Could not map buffers from device '%s'"
 msgstr "Не вдалося пов’язати буфери з пристрою «%s»."
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
-msgstr "Драйвер пристрою «%s» не підтримує метод введення-виведення даних %d"
+msgstr "Драйвер пристрою «%s» не підтримує жоден відомий метод захоплення."
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support any known IO method."
-msgstr ""
-"Драйвер пристрою «%s» не підтримує жоден відомий метод введення-виведення "
-"даних."
+msgstr "Драйвер пристрою «%s» не підтримує жоден відомий метод захоплення."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' does not support video capture"
-msgstr "Пристрій «%s» не може захоплювати відеодані"
+msgstr "Пристрій «%s» не є пристроєм виведення даних."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is busy"
-msgstr "Пристрій «%s» зайнято"
+msgstr "Пристрій «%s» не є пристроєм виведення даних."
 
 #, c-format
 msgid "Device '%s' cannot capture at %dx%d"
@@ -220,36 +253,41 @@ msgstr "Пристрій \"%s\" не здатний захоплювати ві
 msgid "Could not get parameters on device '%s'"
 msgstr "Не вдалося отримати параметри пристрою «%s»."
 
+#, fuzzy
 msgid "Video device did not accept new frame rate setting."
 msgstr ""
-"Відеопристроєм не підтримується нове значення параметра частоти кадрів."
+"Пристроєм відеовходу не підтримується нове значення параметра частоти кадрів."
 
 msgid "Video device could not create buffer pool."
-msgstr "Відеопристрою не вдалося створити сховище буферизованих даних."
+msgstr ""
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get settings of tuner %d on device '%s'."
-msgstr "Помилка під час спроби отримання даних щодо приймача %d пристрою «%s»."
+msgstr "Помилка при встановленні приймача %d пристрою «%s»."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Error getting capabilities for device '%s'."
-msgstr "Помилка під час спроби отримання даних щодо можливостей пристрою «%s»."
+msgstr "Помилка під час спроби читання %d байтів з пристрою «%s»."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is not a tuner."
-msgstr "Пристрій «%s» не є приймачем."
+msgstr "Пристрій «%s» не є пристроєм виведення даних."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get radio input on device '%s'. "
-msgstr "Не вдалося отримати прийняті радіодані з пристрою «%s»."
+msgstr "Не вдалося встановити ввід %d пристрою «%s»."
 
 #, c-format
 msgid "Failed to set input %d on device %s."
 msgstr "Не вдалося встановити ввід %d пристрою «%s»."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to change mute state for device '%s'."
-msgstr "Не вдалося змінити стан вимикання звуку на пристрої «%s»."
+msgstr "Помилка при отриманні сили сигналу пристрою «%s»."
+
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Не вдалося ідентифікувати пристрій «%s»."
 
 #, c-format
 msgid ""
@@ -275,10 +313,6 @@ msgstr "Помилка при запиті норми пристрою «%s»."
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "Не вдалося отримати атрибути регуляторів керування пристрою «%s»."
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Не вдалося ідентифікувати пристрій «%s»."
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "Це не пристрій «%s»."
@@ -343,11 +377,14 @@ msgstr "Зміна роздільної здатності при відтвор
 msgid "Cannot operate without a clock"
 msgstr "Робота без годинника неможлива"
 
-#~ msgid "Could not establish connection to sound server"
-#~ msgstr "Не вдалося встановити з'єднання із звуковим сервером."
+#~ msgid "Got unexpected frame size of %u instead of %u."
+#~ msgstr "Отримано неочікуваний розмір блоку %u замість %u."
 
-#~ msgid "Failed to query sound server capabilities"
-#~ msgstr "Помилка при запиті можливостей звукового сервера"
+#~ msgid "Failed trying to get video frames from device '%s'."
+#~ msgstr "Не вдалося отримати відеокадри з пристрою «%s»."
+
+#~ msgid "Failed after %d tries. device %s. system error: %s"
+#~ msgstr "Помилка після %d спроб. Пристрій %s. Системна помилка: %s"
 
 #~ msgid "Bass"
 #~ msgstr "Низькі"
@@ -367,9 +404,6 @@ msgstr "Робота без годинника неможлива"
 #~ msgid "Line-in"
 #~ msgstr "Лінійний вхід"
 
-#~ msgid "Microphone"
-#~ msgstr "Мікрофон"
-
 #~ msgid "CD"
 #~ msgstr "КД"
 
@@ -467,21 +501,9 @@ msgstr "Робота без годинника неможлива"
 #~ msgid "Telephone"
 #~ msgstr "Телефон"
 
-#~ msgid "Line In"
-#~ msgstr "Лінійний вхід"
-
-#~ msgid "Internal CD"
-#~ msgstr "Вбудований КД"
-
 #~ msgid "Video In"
 #~ msgstr "Відеовхід"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "Вхід AUX 1"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "Вхід AUX 2"
-
 #~ msgid "AUX In"
 #~ msgstr "Вхід AUX"
 
@@ -494,9 +516,6 @@ msgstr "Робота без годинника неможлива"
 #~ msgid "Microphone Boost"
 #~ msgstr "Підсилення мікрофона"
 
-#~ msgid "Loopback"
-#~ msgstr "Заглушка"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Діагностика"
 
@@ -509,9 +528,6 @@ msgstr "Робота без годинника неможлива"
 #~ msgid "Input"
 #~ msgstr "Вхід"
 
-#~ msgid "Record Source"
-#~ msgstr "Запис джерела"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Спостереження за джерелом"
 
@@ -551,9 +567,6 @@ msgstr "Робота без годинника неможлива"
 #~ msgid "Input Mix"
 #~ msgstr "Мікшер вх. даних"
 
-#~ msgid "SPDIF In"
-#~ msgstr "Вхід SPDIF"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Мікрофон 1"
 
@@ -698,20 +711,17 @@ msgstr "Робота без годинника неможлива"
 #~ msgid "%s Function"
 #~ msgstr "Функція %s"
 
-#~ msgid "Got unexpected frame size of %u instead of %u."
-#~ msgstr "Отримано неочікуваний розмір блоку %u замість %u."
-
 #~ msgid "Error reading %d bytes on device '%s'."
 #~ msgstr "Помилка під час спроби читання %d байтів на пристрої «%s»."
 
 #~ msgid "Could not enqueue buffers in device '%s'."
 #~ msgstr "Не вдалося опитати буфери від пристрою «%s»."
 
-#~ msgid "Failed trying to get video frames from device '%s'."
-#~ msgstr "Не вдалося отримати відеокадри з пристрою «%s»."
+#~ msgid "Could not establish connection to sound server"
+#~ msgstr "Не вдалося встановити з'єднання із звуковим сервером."
 
-#~ msgid "Failed after %d tries. device %s. system error: %s"
-#~ msgstr "Помилка після %d спроб. Пристрій %s. Системна помилка: %s"
+#~ msgid "Failed to query sound server capabilities"
+#~ msgstr "Помилка при запиті можливостей звукового сервера"
 
 #~ msgid "Could not read from CD."
 #~ msgstr "Не вдається прочитати з компакт-диску."
diff --git a/po/vi.gmo b/po/vi.gmo
index 30920f37e4bd1a8daf3dd9151b06c7b4010438f6..f350bb8eaac614c51323734e91a58de831fb15d9 100644
GIT binary patch
delta 2304
zcmY+^ZERCj7{Kwffeyw7bFdYJjk7m4HrBP>#>RLXY_b8H8v_PHh?K2aZ!9fz?PQ6j
zyhQx~F6s>+AILWNBxoWOLc(GMYKSi}CVo%@2|7ii(L{~m#e}H;=eD(aveVyr&U)`T
z_j%6k_3b}4NABcKJ+5fY^aaw>m3l^;$_MS>V@hS=A)JOII2}(W;_*a$4)d75ggN*z
z%KdI*AwI-9v^}oWeC)t-r6S79U=b6q;bOdky*P>cu`xrbZFmkVF`Zp($7-y_m$4MD
zVhMhYZk)m{E6{_*ID#&`fU<$R*v9%wWh%84+R=#-wBrSo3%)^FX!eZwLT%Vg>`TP&
zpe+13*5iGY<Sij>tf8F9lv<ASunlDcZp@JNUu3|h)l0})YDE5lr%*OFjwkRd3}PT#
zsT%wi`BS+wm2#j)xz8q)g?A+8`;k<u<Jg4nVI@AqNHv3!S@DTYC_8)s$-X*)pQI^u
z8g0bJ6Y&imLRsioB0ipo$53ki7Rnj8iB9|yC4<v*mFmQmSc6A%$^S|Q6HK(=pSWDU
zFk7j^IE->SAE6K5m=nLz-`G!F%ZZcg-^A7UMZ)}irLGb8qCByU-AjgguosV@l;D<)
z{CgSPXQB_EovYL?jNvLQA|0D>H?GBtxD4-M0BfF%e{U4!3Gd)m%;oMRO?go=bpWZJ
zI)r67lJHW5fz;|2O3m-0r2ZF_v+xHF<6n3g50Kw0XfKGr6+fV)dKK?j7j~gsH;S_G
zIb4HLtjBw}5vvx)HynAMfu#OC$`k&I73k9O9q&Yrfb~X@6sz%&)_G{eCb~RPvdKZ?
z7OILarI9*IlXK>x%fXW-o8fFkta@`0ttL;NPN%$zl3RzV0awtIjR&wwBe86h5?j9?
zl12G}Sxry2r3@qs((>rV*66<<5o(->C5=);X_7+uQISK_OqbV;3Roptg7QAgIao}W
zcVE+`-pR&+x9XjYr!e5iD1HR3-v-WkyvdF!VZ4=>4VLRY!&+2pwr<x>z22V~bcI9K
z$i<YoHshmc{j~OU(=}tg8JqF5c{^)?`Du2R*`D2Q?wqyI{46WWteM#mJvFm6&76|c
zoZixEF3V{s=`j2rxu>PvveW1b2KIRaevj%5_>E8?7#+<ykd~o02g1QVkC~I(n8o)u
zcek!zr@0_nIJ+**yfCLSQ#<TVhuu|ccbSuOx}S5_H`On#a=09h%<iu09?y_5XaxM#
zt?rPgNxK|QM>T(rTJ3CXs%xxrI%*x69qz$U^_HO9Kj?F_aFcHF4TlVm-fZ;uyL~>r
zqR)z(gT|02=yUt~?S4<l?hc!$^9u5ZjOyN}n+F1c0iS0e7zpnhwD$$}n&0Ia<}3N@
z8q|&Rx@=J2n9zGBCq@mO3=`Sxjg18o!yb1cuQF%uw(Xvl{I2<-tuD=OKC&G%ug@({
zP5(A`MJm`gZ)J4<yw&M-$*c4SuTM@Ku|8kz(?hW_J>WI$YKzyHy!w7fwsZ8~-IzZu
zXiVK|aY2=NrYPThP_QsHSy*^E72Ga7SeabMt~w?sP8xcE`<^xQ-q=~q!0*)?x}R#Z
z{%7{<`qZ`Ky24ylv?Dd~eNk^JxLDkf3Vtu%kP2E#!l~d|$*xpTR=PG71WK38{QuU>
z2c_*bsi}?LFbU}MN@lK(8)}Q&(Eb6hN42zSN~A-<fPcVrmvxr3#?B0Dt3uX@0?8?j
zT~eK~F~9c4-u8Q=^B1j2&uQ}-+IREaF!u>hPMCgkXT`Q`>%#bX?QuubDo4|7sZGQV
N@0BYiC(il@)IX|!!x#Vn

literal 11329
zcmcJUdyHJyUB@rME$z0HrcVle90E&{+B4o=o5WqmiR1NaW3RpOZq|teLU-@now@a$
zd&l>&>v2J9YKgR%3Rxvht+cAwj%AYCG&G5#?5axDNiCIsDkLQSfzoL~2q_>$RX{~Z
ze17MiJ9B6D;a%L0boV=t^Y}f!zsEWI{r7Bn+T!&n&xd)QyTh{T;I_B$hu06@YFY0D
z+u$SMzkzQDKk-W$j)Cvz^91;A&;ezg1pFv?0o)0`2>v?wPvE`aFTBmN?gqDlzYR`-
z^8HzG27C@Y4gL>!60Ec7$HDJ_kAwdX?f}OJvVHy#{7pW885{w>1%4d-G5B8aqwlb+
z-vUQK8FvyCc|HYh1)l+Jum#=&4x;p3;4x6vI}L6Fp95vyUxWL>e+3VLBfo4}hrzSp
zeP9ce{eKD$gM;tN);S55`TWP`^J}2!@g^wpsb8_Iz2E^*KK~IY@_r2*1iuIV4)_yr
z3%C`dV+v~s{17+_ihR@Hd%y;W39WM=rnmkCL`Cb*K#}tj_(kw<!3YfQw5;u58yo`f
zWD!|^ANVowD5yXm6u*BSd<eV(?goDZ%Dj(Zbn)*bI0~Kt#U3w#CGh*^^E=;{$$dX4
zzds7@0RI4lYSxS3PB{50_(49u`2n~BZsCLI^|(PB6yALjL>22PQ0)FCa0L7-a02{a
zQ1m<UtCqD3{1mtcd>I@A{{s{~?!%a$0V7ZX<R_pHp8vH>zW)X*eBOq!W&Q<Fc>Fz3
z{PUmS0r?%F#6A)D8{jw0=f5%dzK<Xa-%o>k!Asz`z&0p$yG#&?J^vn@0pEoaM1L0)
zKD-9bgZ}_V;EW>n!0&<%_#m6^2QP!a2mUh{fCuj4H}GZfQSis$KKUN9eFFR}7=qsh
zW!wm46u+DX$H1%L?}PsWLPcvFVZ<L#fFjqd!OwzXkG}wgfBy&)lGd9bQ?363o8X5r
z-Yei2!B@efkmn@0<sQpA4*o7E>t6?jKd*oy=Z`?K>qqXjtQz<b_yqXp;KSe@kV^L7
z4~m`7f}+PwQ1tjID0)A*HH-TvLE+5{pzQy5AR%t;+(ym<*-raeY$mUrJThOnB(KQ~
zw65>q{T)1PVIAX<IKqwkCAyOuv@H9xuPi8TL2sQO-Vbgu-=m7=60XoXy$w9dvxg^t
zJ;EC(r(eSVaULjU{UQ&dYtG*V%1ihpI_>6xW}0Vj0Y&c*^5icl-g%LpEXDIy9*HA)
z4e%V|5q{vt&P(D=Y%c!EU*e<u^<Lf(X8I+*J<KDy0#j=)-3Jz5;_v%;j_^Fd^AOL6
zcn<Q&>rS4%@`e}bN52RM?O*He!T4@9+f;(q!zyr-g)lm$+$aho6*^8Dxs`2-_esrF
zu^Y|1k#hVnb}RZDCkz7DNxU#nY2cn|@ZPQX&9e3IV~?w0bv#Y<yOHc&TJb{F@a^WT
z?U+5v*1pv9lad#xsfKHxawBWZ4uUXIUd0U(Z?35-?!4!?TEcSvW7u#bJ8{*5m(;>E
zQML%>oU+Dhc2M<#s*2n=^iwUEov0{fsk*DYSjo~&H&JogXoL~cvSyh275#%zM<t=r
zweXu8C-$uG#Wht>x-+o2N|ogsc4XJx#EoKwZ3-$BR;=3%HJi@O$)LF?tgkT)T?1un
z+nIId@JDXO;>NcasrF}<#0s;n7%3Gu;(QyU)NribX!xFEi`6!>>~xJ4Ax11T2<J30
zj*HM!VH#A_R5MQ8dT#rU-DTrMX1cyx$JLwJ@rf{1l`yzFQ8jzsRgj_X#d>=jqOBlw
z&8&6nbtBgaqY4Ju%usb(G871*#G8?8ivW0{q81`A=@Uk?8AVM122iVP8E@(ccCwgp
z>_$SwDkwi#IWt&UZwwKqW15)t<~)di9CbVCnNkVeEMkn;)I3ocDzi<`P$5+sH~YVn
za3eU4T)9VzqBAiYL>xB=<#op-WSOXJ9nk5CI1@w3>h`SXV>P4|Yi3KBjIr^tqiUSA
z6AP_uHNVpzQI*Jp*JU+Ub4gg<obqHq_Umx|tC1#m;h=<6B9iolbS`#>ZrO-pWS6aj
zw&&xEj%s0$M4``?NfLRpsjS<ZPdZazz9ZSsRdt3bvK4<<Si`K(;0mm-xayI~1BaAX
zx2tZxH@~?-TF(+}BP6b7eb;zC<49bzFy;@GE*g@I3yVk^q<%!iw(<gTZJ*?7!fuj@
zI!29%0g+46{Tk~Sj@<r2nn*anJ)OFN(_GI`qDLm$>RR-P8XHzhA{4d~iT#SNJ_FBg
ze2P~MY#%3M-D*<1mH6|vpJrsBb_t=@7Ydt1RD}ZNV7~Ssx{x<ad=170MY1^oIb<De
zu}y~(xA1_};6XoChtC!nE(>%d>9Sxj?jNKDS%>|ykRel#e^#!P*^WW7+B)VtWP5>i
zm^|L7g@J302NZwtQN>PdHRp#5SyNT+`$b%6*So*5omav3v;(nsmNb9V3tZhkO@x7$
zgpqYDRF9oFN-dyd@*b(YAe)t0MkkbQ>fxDj%?}n|@O)najWQRdjci)C4jTy;Y)PIJ
z?6NLxb+1}W=m%XIy-?Y{C{PcnElFetv9wOA5rs+UNOnSoI<c&~hy^cpWiwro$<9(_
zBE8t5DXl9ZabkLEQn_amH_%19;ioihTAR&@<prcUbhFhh*4EBD;o^?ETk&jT7+5oz
zccZ2Zb@$KPlivJ%BJUN}?q_-@Oik_|KdAjT<w`eQ>>hDp+E8;k<(I9gth-)Ob7R*%
zrTYOhAeMwWYgaV0%GR`WI=W6t{wS0_I;6hpZ3j(tDhL+>HGUjJ&^puoZeqT;vNMwu
zqUUBUf$k=-;T+`)*K6)j`lU<NwBukP#{%6d>M;^YM2r-FJ&N91ik1WeZdqkq5{8fr
z4e~+ic;GknTxkO4yeO8gr!W<94C8fQWqKs2DN;$}-`$0wUf_iFhELDFvC$?_Y1r0S
zIPWA1E-70xx`8rZIo*Q?db4qM8c>Ze^!tWZND8`5avZlIak)V8q79@nNwLpr4s$s4
z)Lm;b3O|X(OXHQ&OxBl=s%o5+vOtSV)iA7-hRZ|c9Rnv^iRIEnT=goYeQ7l=O^2hZ
zmL!eQ?b~P5>RED!U9JWpEoT^2w+~DnpDvAwxODra{p>!fMuvuWl!opv4G;5nbZE!c
zq2Zw+29{1x%O%3Q<3>uuBc-7cHMDDV=)SE(_cQLOjbzi3ReaK3G^(bf_R_UL9jmsN
zKkukV)7IrcJun}T#VQbBZ?#UqlyTOBObx0jtxIVd+Kj3h&rPH^CILO5(-aHJ?g_t^
z=Dod~-jcW+hiT-vWb>+9=DgcoWt1joU}AjYK-Xy4XkZMc5^|;KW&>Rl($;ne<ORE>
z--<B(p2wySmUeZ=i7FiGN(W$+boHZZ*Q}Qeh>WF^?riLd%^ol&F33qf6|ZSCi^$vO
zy>cz7`wtFG`e|hQrGr%0cvJ<rk&p47;oVSK-tHONJ@9zxkW0Ifneb@n9JC#***s8@
zqM?S%yBIMUlKqkr=Q1q7Sy`kXRhjtK4?q3o!T5)t{)(DyFMrij`A2J_y?ilIetY>D
zPu1H?iv-&n7g|@;nfB6^Cj8r`YGHfnRY%oZiv)YEy?jjuyu`Ru?WNZtYkT>E$Er(L
zd5=@Sl3x#;u+8lNZ;tBq8@1M=?6tJ$sn+E>#lsG2)WFbImG<&qvSi#|dL^)q)LJj|
zAz`y~DyX%WZqSu@?d7NBP~+)c(c*kZiE{4@mJL<XT6EN@n#ZFTb6PJUcYFB@EX=xJ
z;4<Oni?+OdhN9PAzQRCMR>2$R^wwlH8UD1V;i5uzh+1X$D;^U<2FdCeWNDGq*CTS#
zFiCs)Su88YYp~f>N6quMcYLlCmbuaBF>7JAHhtelOt^|uL{*fgr@$Ao{*xQBQ)@A(
ziJup<6)@>Vt?W~HroH^N4Xsg!O}zs<j@4_O6T{_B?~{IWa~1i#>-wN|NgPCm;P1^B
z@gEG;RBkUn&zJD&s&<js2D98S-`t)ElQpmPLLg+n5~#xv64fy|8?`=T=&T5+uPQB`
zVO~eRCgP`J+6&q5UGCkURQqsYP~`dPv<U|SF-V_tM6OM5mekV!*Bte;7A#L%hFKDy
zl#uz>B~`6?eIoY8t9Y$W26>V`w1-EXC5^MPoFlPzwSlW7Q)PE88=oac7tziWT@`VS
z$*4{(Tz~H_A9S95-Z9DObV@SPjo2FVvp9g2H-a@r812YFlD>Q_mggLuNSXTeL{(eY
zZ(*Ia=ATJ*`j70s`GavzOEa@)*EcSRM^dfq=P;H-{9-KfGA5M!x<eG6hN(@GY>mS!
zDWiNH^t@RwRrN2B<;!BCXU}VPuQ75;l+`h6#wwPJTGx>_mma~|%jW{}Tp>4by;N35
z<OkA1WE1Z%WmezN++nlpnik-^Dz{LZ(w!(?Wqc=FQ-*bo?kOoL9-*|fZe-rUQl>~`
zj>}a~B8jga-*$|+!if~BPHCm^>i9^g5uS7pLc>JTJdPz^HoB%M%XRt|NzFBV@3mrQ
z+7_vJx=8Ap*%zhe`V&{_EU=BL-4`dhRuoJ#NW5AnIH?5=-@X=9S8QuYhf*|1(#$lJ
zP)0X1v`d~Ou(dQ*W5tbn&7mEdbx>>Ye3dP0txK3-J%_Eg<$UX9uDzs=kw=SsAyd-R
zYs>cPwn}{Efs@DiW*nW_62C27OEbG=cX#V4)GMfIB3KANY(zR@ZNsZ;RynOpI#n&b
z3YS;(QMvX~Vpd6da&@=i?Phhx5f)$6L7MSO66#uf>aj)DYb~;wbkdn2Rt@fr36w-B
zHHs=AjR-MlN>{cnOBmv3jdM??;GQvKQeg>g91=n61#;GU$t9a9e9*@Jd5}=&?fkB?
zXFqz(uPa|dInDJ$({-ZRC~CwlD!Gow`eWP7UVZabj3sxTYphWq0D|8J2aeQe0A6>b
zC`!v@P1};qYi>?A>WG}XdSr&Qa%^0_*vTZf7<Hs|gB=o`HlC$7s-{g{cBHw#N3K-w
z&5Jdmbw&3LPw{`W*5#(+1Uf<DQ#GmF`PoZyxLmc;6Nd<H4iTAo`Cp+v9?F=a)SYr^
z9Nsw{uQzBFvD8fKx>T8^*OhP7mK$C6?6$G3>vE*fC%k-2N6K!iNS9I-(WxU9DL;kM
z<mjX<)S?-Fo_4m@dZEq{R!+w(Kz}JAM++8o)NqW}-3%s;8>t;fJ<WgBSzq7o9?Gui
zxa_5<E=jL;#GKiGMpB!8v6xG<<K3<0q3PmO3n~28H#^pq{Ilq6r%9_Tp9>Az4Y@ED
zKWj^5$Ns`uHFug3q+|J>+*P21oJR{@>0MV!b#EiN>GiUkW{5miC@;l}2L4Z%ghFz<
zsJv?~L;K!~hg^)VsNAejFoXv*vD_V;myCPE%#<8;jTM(~K(9i&i*3$Z)2lbLs}$8v
z-(-wX*u4ScZps-+Y~N5bCxlT~)NFRvm)QKdZNznQd+9Rm5HYV$9;Q0!)`0&#XQ%XT
ztJm?MTxjIHpY9!P#)#dXw>#|XuAv!*M!mDl@Y5*;Igkd5Q&ArCfh0K@@HumpLaLS|
zMFS)SGU#86NIfr1{8MbI=Ngf8Pn#{V%KkUyE=<#hEO7~&teo1R?CLsnU2AghDobSX
zl`qsu8Yae897}WBAg^iLv~pRW-lLYB)I+!}iJW>|UvCDsT;gzV?iGs}Cc8P~e#Xft
X!Ge<Ubk&f{lxHEmT=e8;PwW2xxstFH

diff --git a/po/vi.po b/po/vi.po
index 2bac96977..d847c83af 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -1,58 +1,60 @@
 # Vietnamese Translation for GST Plugins Good.
-# Copyright © 2012 Free Software Foundation, Inc.
+# Copyright © 2010 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gst-plugins-good package.
 # Clytie Siddall <clytie@riverland.net.au>, 2005-2010.
-# Trần Ngọc Quân <vnwildman@gmail.com>, 2012.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good-1.0.3\n"
+"Project-Id-Version: gst-plugins-good 0.10.23.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
-"PO-Revision-Date: 2012-12-02 08:06+0700\n"
-"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
-"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
+"PO-Revision-Date: 2010-10-03 18:48+1030\n"
+"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
 "Language: vi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Team-Website: <http://translationproject.org/team/vi.html>\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: LocFactoryEditor 1.8\n"
-"X-Poedit-SourceCharset: UTF-8\n"
+
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "Lỗi giải mã ảnh JPEG"
 
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
-msgstr "“%s” bởi “%s”"
-
-msgid "Failed to decode JPEG image"
-msgstr "Gặp lỗi khi giải mã ảnh JPEG"
+msgstr "« %s » bởi « %s »"
 
 msgid "Could not connect to server"
 msgstr "Không thể kết nối tới máy phục vụ"
 
+msgid "No URL set."
+msgstr ""
+
 msgid "Server does not support seeking."
-msgstr "Máy phục vụ không hỗ trợ di chuyển vị trí."
+msgstr ""
 
+#, fuzzy
 msgid "Could not resolve server name."
-msgstr "Không thể phân giải tên miền."
+msgstr "Không thể kết nối tới máy phục vụ"
 
+#, fuzzy
 msgid "Could not establish connection to server."
-msgstr "Không thể thiết lập kết nối tới máy chủ."
+msgstr "Không thể thiết lập sự kết nối tới máy phục vụ âm thanh"
 
 msgid "Secure connection setup failed."
-msgstr "Cài đặt kết nối an toàn gặp lỗi."
+msgstr ""
 
 msgid ""
 "A network error occured, or the server closed the connection unexpectedly."
-msgstr "Một lỗi mạng đã xảy ra, hoặc máy chủ đóng kết nối bất ngờ."
+msgstr ""
 
 msgid "Server sent bad data."
-msgstr "Máy chủ gửi dữ liệu sai."
-
-msgid "No URL set."
-msgstr "Không có URL nào được đặt."
+msgstr ""
 
 msgid "Internal data stream error."
 msgstr "Lỗi luồng dữ liệu nội bộ."
@@ -68,11 +70,14 @@ msgstr "Tập tin này không chứa luồng có thể phát."
 msgid "This file is invalid and cannot be played."
 msgstr "Tập tin này không hợp lệ nên không thể phát được."
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "Tập tin này bị hỏng nên không thể phát."
 
 msgid "Invalid atom size."
-msgstr "Kích thước nguyên tử (atom) không hợp lệ."
+msgstr ""
 
 msgid "This file is incomplete and cannot be played."
 msgstr "Tập tin này chưa hoàn thành nên không thể được phát."
@@ -119,15 +124,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr "Không thể mở thiết bị âm thanh để phát lại."
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-"Không thể mở thiết bị âm thanh để thu. Bạn không có quyền mở thiết bị này."
-
-msgid "Could not open audio device for recording."
-msgstr "Không thể mở thiết bị âm thanh để thu."
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -147,6 +143,44 @@ msgstr "Chức năng thu không phải được thiết bị âm thanh này hỗ
 msgid "Error recording from audio device."
 msgstr "Gặp lỗi khi thu từ thiết bị âm thanh."
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+"Không thể mở thiết bị âm thanh để thu. Bạn không có quyền mở thiết bị này."
+
+msgid "Could not open audio device for recording."
+msgstr "Không thể mở thiết bị âm thanh để thu."
+
+msgid "Record Source"
+msgstr "Ghi lưu nguồn"
+
+msgid "Microphone"
+msgstr "Micrô"
+
+msgid "Line In"
+msgstr "Dây Vào"
+
+msgid "Internal CD"
+msgstr "CD ở trong"
+
+msgid "SPDIF In"
+msgstr "SPDIF Vào"
+
+msgid "AUX 1 In"
+msgstr "AUX 1 Vào"
+
+msgid "AUX 2 In"
+msgstr "AUX 2 Vào"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Mạch nội bộ"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Mạch nội bộ"
+
 msgid "Volume"
 msgstr "Âm lượng"
 
@@ -176,84 +210,89 @@ msgstr "AUX 2 Ra"
 
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
-msgstr "Gặp lỗi khi đọc %d byte từ thiết bị “%s”."
+msgstr "Gặp lỗi khi đọc %d byte từ thiết bị « %s »."
 
 #, c-format
 msgid "Failed to enumerate possible video formats device '%s' can work with"
 msgstr ""
-"Gặp lỗi khi đánh số các định dạng video có thể, mà thiết bị “%s” có thể làm "
-"việc cùng"
 
 #, c-format
 msgid "Could not map buffers from device '%s'"
-msgstr "Không thể ánh xạ các bộ đệm từ thiết bị “%s”."
+msgstr "Không thể ánh xạ các bộ đệm từ thiết bị « %s »."
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
-msgstr "Trình điều khiển của thiết bị “%s” không hỗ trợ phương pháp VR %d"
+msgstr ""
+"Trình điều khiển của thiết bị « %s » không hỗ trợ phương pháp bắt đã biết "
+"nào."
 
-#, c-format
+#, fuzzy, c-format
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
-"Trình điều khiển của thiết bị “%s” không hỗ trợ phương pháp VR đã biết nào."
+"Trình điều khiển của thiết bị « %s » không hỗ trợ phương pháp bắt đã biết "
+"nào."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' does not support video capture"
-msgstr "Thiết bị “%s” không hỗ trợ chức năng quay video"
+msgstr "Thiết bị « %s » không phải là thiết bị xuất ra."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is busy"
-msgstr "Thiết bị “%s” đang bận"
+msgstr "Thiết bị « %s » không phải là thiết bị xuất ra."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' cannot capture at %dx%d"
-msgstr "Thiết bị “%s” không thể chụp tại %dx%d"
+msgstr "Thiết bị « %s » không phải là thiết bị bắt gì."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' cannot capture in the specified format"
-msgstr "Thiết bị “%s” không thể chụp ở định dạng đã cho"
+msgstr "Thiết bị « %s » không phải là thiết bị bắt gì."
 
 #, c-format
 msgid "Could not get parameters on device '%s'"
-msgstr "Không thể lấy các tham số về thiết bị “%s”."
+msgstr "Không thể lấy các tham số về thiết bị « %s »."
 
+#, fuzzy
 msgid "Video device did not accept new frame rate setting."
-msgstr "Thiết bị video không chấp nhận cài đặt về tốc độ khung hình mới."
+msgstr "Thiết bị nhập ảnh động vào không chấp nhận thiết lập tốc độ khung mới."
 
 msgid "Video device could not create buffer pool."
-msgstr "Thiết bị video không thể tạo kho đệm."
+msgstr ""
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get settings of tuner %d on device '%s'."
-msgstr ""
-"Lỗi lấy các cài đặt từ thiết bị điều chỉnh cộng hưởng %d trên thiết bị “%s”."
+msgstr "Lỗi lấy thiết lập của thiết bị điều hưởng %d trên thiết bị « %s »."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Error getting capabilities for device '%s'."
-msgstr "Gặp lỗi khi đọc dung lượng từ thiết bị “%s”."
+msgstr "Gặp lỗi khi đọc %d byte từ thiết bị « %s »."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Device '%s' is not a tuner."
-msgstr "Thiết bị %s không phải thiết bị điều chỉnh cộng hưởng."
+msgstr "Thiết bị « %s » không phải là thiết bị xuất ra."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to get radio input on device '%s'. "
-msgstr "Gặp lỗi khi lấy đầu vào radio trên thiết bị “%s”."
+msgstr "Lỗi đặt dữ liệu nhập %d vào thiết bị « %s »."
 
 #, c-format
 msgid "Failed to set input %d on device %s."
-msgstr "Lỗi đặt dữ liệu nhập %d vào thiết bị “%s”."
+msgstr "Lỗi đặt dữ liệu nhập %d vào thiết bị « %s »."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to change mute state for device '%s'."
-msgstr "Gặp lỗi khi thay đổi trạng thái ngắt tiếng cho thiết bị “%s”."
+msgstr "Lỗi lấy biên độ tín hiệu cho thiết bị « %s »."
+
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "Không thể nhận diện thiết bị « %s »."
 
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
 "it is a v4l1 driver."
 msgstr ""
-"Gặp lỗi khi lấy khả năng của thiết bị “%s”. Nó không phải là trình điều "
+"Gặp lỗi khi lấy khả năng của thiết bị « %s ». Nó không phải là trình điều "
 "khiển phiên bản 4l2. Kiểm tra nó là trình điều khiển phiên bản 4l1 không."
 
 #, c-format
@@ -262,89 +301,87 @@ msgstr "Lỗi truy vấn khả năng của %d nhập trong thiết bị %s"
 
 #, c-format
 msgid "Failed to get setting of tuner %d on device '%s'."
-msgstr "Lỗi lấy thiết lập của thiết bị điều hưởng %d trên thiết bị “%s”."
+msgstr "Lỗi lấy thiết lập của thiết bị điều hưởng %d trên thiết bị « %s »."
 
 #, c-format
 msgid "Failed to query norm on device '%s'."
-msgstr "Lỗi truy vấn chỉ tiêu trên thiết bị “%s”."
+msgstr "Lỗi truy vấn chỉ tiêu trên thiết bị « %s »."
 
 #, c-format
 msgid "Failed getting controls attributes on device '%s'."
-msgstr "Lỗi lấy các thuộc tính của bộ điều khiển trên thiết bị “%s”."
-
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "Không thể nhận diện thiết bị “%s”."
+msgstr "Lỗi lấy các thuộc tính của bộ điều khiển trên thiết bị « %s »."
 
 #, c-format
 msgid "This isn't a device '%s'."
-msgstr "Không phải là thiết bị “%s”."
+msgstr "Không phải là thiết bị « %s »."
 
 #, c-format
 msgid "Could not open device '%s' for reading and writing."
-msgstr "Không thể mở thiết bị “%s” để đọc và ghi."
+msgstr "Không thể mở thiết bị « %s » để đọc và ghi."
 
 #, c-format
 msgid "Device '%s' is not a capture device."
-msgstr "Thiết bị “%s” không phải là thiết bị bắt gì."
+msgstr "Thiết bị « %s » không phải là thiết bị bắt gì."
 
 #, c-format
 msgid "Device '%s' is not a output device."
-msgstr "Thiết bị “%s” không phải là thiết bị xuất ra."
+msgstr "Thiết bị « %s » không phải là thiết bị xuất ra."
 
 #, c-format
 msgid "Failed to set norm for device '%s'."
-msgstr "Lỗi đặt chỉ tiêu cho thiết bị “%s”."
+msgstr "Lỗi đặt chỉ tiêu cho thiết bị « %s »."
 
 #, c-format
 msgid "Failed to get current tuner frequency for device '%s'."
-msgstr "Lỗi lấy tần số hiện thời của thiết bị điều hưởng cho thiết bị “%s”."
+msgstr "Lỗi lấy tần số hiện thời của thiết bị điều hưởng cho thiết bị « %s »."
 
 #, c-format
 msgid "Failed to set current tuner frequency for device '%s' to %lu Hz."
 msgstr ""
-"Lỗi đặt tần số hiện thời của thiết bị điều hưởng cho thiết bị “%s” là %lu Hz."
+"Lỗi đặt tần số hiện thời của thiết bị điều hưởng cho thiết bị « %s » là %lu "
+"Hz."
 
 #, c-format
 msgid "Failed to get signal strength for device '%s'."
-msgstr "Lỗi lấy biên độ tín hiệu cho thiết bị “%s”."
+msgstr "Lỗi lấy biên độ tín hiệu cho thiết bị « %s »."
 
 #, c-format
 msgid "Failed to get value for control %d on device '%s'."
-msgstr "Lỗi lấy giá trị của bộ điều khiển %d trên thiết bị “%s”."
+msgstr "Lỗi lấy giá trị của bộ điều khiển %d trên thiết bị « %s »."
 
 #, c-format
 msgid "Failed to set value %d for control %d on device '%s'."
-msgstr "Gặp lỗi khi đặt giá trị %d của bộ điều khiển %d trên thiết bị “%s”."
+msgstr "Lỗi đặt giá trị %d của bộ điều khiển %d trên thiết bị « %s »."
 
 #, c-format
 msgid "Failed to get current input on device '%s'. May be it is a radio device"
 msgstr ""
-"Gặp lỗi khi lấy kết nhập hiện thời vào thiết bị “%s”. Có thể là thiết bị thu "
-"thanh."
+"Lỗi lấy kết nhập hiện thời vào thiết bị « %s ». Có thể là thiết bị thu thanh."
 
-#, c-format
+#, fuzzy, c-format
 msgid ""
 "Failed to get current output on device '%s'. May be it is a radio device"
 msgstr ""
-"Gặp lỗi khi lấy kết nhập hiện hành trên thiết bị “%s”. Có thể là thiết bị vô "
-"tuyến."
+"Lỗi lấy kết nhập hiện thời vào thiết bị « %s ». Có thể là thiết bị thu thanh."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Failed to set output %d on device %s."
-msgstr "Gặp lỗi khi đặt dữ liệu nhập %d trên thiết bị %s."
+msgstr "Lỗi đặt dữ liệu nhập %d vào thiết bị « %s »."
 
 msgid "Changing resolution at runtime is not yet supported."
 msgstr "Chưa hỗ trợ khả năng thay đổi độ phân giải trong khi chạy."
 
 msgid "Cannot operate without a clock"
-msgstr "Không thể thao tác khi không có đồng hồ"
+msgstr "Không thể thao tác khi không có đồng hồ."
 
-#~ msgid "Could not establish connection to sound server"
-#~ msgstr "Không thể thiết lập sự kết nối tới máy phục vụ âm thanh"
+#~ msgid "Got unexpected frame size of %u instead of %u."
+#~ msgstr "Nhận được kích cỡ khung bất thường %u, thay cho %u."
 
-#~ msgid "Failed to query sound server capabilities"
-#~ msgstr "Lỗi truy vấn khả năng của máy phục vụ âm thanh"
+#~ msgid "Failed trying to get video frames from device '%s'."
+#~ msgstr "Lỗi khi thử lấy các khung ảnh động từ thiết bị « %s »."
+
+#~ msgid "Failed after %d tries. device %s. system error: %s"
+#~ msgstr "Lỗi sau %d lần thử. Thiết bị %s. Lỗi hệ thống: %s"
 
 #~ msgid "Bass"
 #~ msgstr "Trầm"
@@ -364,9 +401,6 @@ msgstr "Không thể thao tác khi không có đồng hồ"
 #~ msgid "Line-in"
 #~ msgstr "Dây-vào"
 
-#~ msgid "Microphone"
-#~ msgstr "Micrô"
-
 #~ msgid "CD"
 #~ msgstr "CD"
 
@@ -464,21 +498,9 @@ msgstr "Không thể thao tác khi không có đồng hồ"
 #~ msgid "Telephone"
 #~ msgstr "Điện thoại"
 
-#~ msgid "Line In"
-#~ msgstr "Dây Vào"
-
-#~ msgid "Internal CD"
-#~ msgstr "CD ở trong"
-
 #~ msgid "Video In"
 #~ msgstr "Ảnh động Vào"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "AUX 1 Vào"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "AUX 2 Vào"
-
 #~ msgid "AUX In"
 #~ msgstr "AUX Vào"
 
@@ -491,9 +513,6 @@ msgstr "Không thể thao tác khi không có đồng hồ"
 #~ msgid "Microphone Boost"
 #~ msgstr "Tăng máy vi âm"
 
-#~ msgid "Loopback"
-#~ msgstr "Mạch nội bộ"
-
 #~ msgid "Diagnostic"
 #~ msgstr "Chẩn đoán"
 
@@ -506,9 +525,6 @@ msgstr "Không thể thao tác khi không có đồng hồ"
 #~ msgid "Input"
 #~ msgstr "Vào"
 
-#~ msgid "Record Source"
-#~ msgstr "Ghi lưu nguồn"
-
 #~ msgid "Monitor Source"
 #~ msgstr "Theo dõi nguồn"
 
@@ -548,9 +564,6 @@ msgstr "Không thể thao tác khi không có đồng hồ"
 #~ msgid "Input Mix"
 #~ msgstr "Hoà tiếng đầu vào"
 
-#~ msgid "SPDIF In"
-#~ msgstr "SPDIF Vào"
-
 #~ msgid "Microphone 1"
 #~ msgstr "Máy vi âm 1"
 
@@ -695,17 +708,14 @@ msgstr "Không thể thao tác khi không có đồng hồ"
 #~ msgid "%s Function"
 #~ msgstr "Chức năng %s"
 
-#~ msgid "Got unexpected frame size of %u instead of %u."
-#~ msgstr "Nhận được kích cỡ khung bất thường %u, thay cho %u."
-
 #~ msgid "Error reading %d bytes on device '%s'."
-#~ msgstr "Gặp lỗi khi đọc %d byte trên thiết bị “%s”."
+#~ msgstr "Gặp lỗi khi đọc %d byte trên thiết bị « %s »."
 
 #~ msgid "Could not enqueue buffers in device '%s'."
-#~ msgstr "Không thể phụ thêm các bộ đệm vào hàng đợi trên thiết bị “%s”."
+#~ msgstr "Không thể phụ thêm các bộ đệm vào hàng đợi trên thiết bị « %s »."
 
-#~ msgid "Failed trying to get video frames from device '%s'."
-#~ msgstr "Lỗi khi thử lấy các khung ảnh động từ thiết bị “%s”."
+#~ msgid "Could not establish connection to sound server"
+#~ msgstr "Không thể thiết lập sự kết nối tới máy phục vụ âm thanh"
 
-#~ msgid "Failed after %d tries. device %s. system error: %s"
-#~ msgstr "Lỗi sau %d lần thử. Thiết bị %s. Lỗi hệ thống: %s"
+#~ msgid "Failed to query sound server capabilities"
+#~ msgstr "Lỗi truy vấn khả năng của máy phục vụ âm thanh"
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 1c8a439f627fee78900cd541c6a7c98ef9b1926b..ac61dc6cbaf5bdb0cbbf3309bbc0407894416723 100644
GIT binary patch
delta 1053
zcmXxiNoW&M7{Ku_%_Lotwl>;Dn>N^rHA`)hX3-#6s0(5%3R0z@Xhm^Bo0cM8lDJ$v
z6t__Ipa&84RB8<s1Tmr)dlE`L2%?Be74=vIJ?Q_-jE~Ix-uLEBzW2U2i{TrQ+<T8P
zA+#iymuuc8vJJ=W+-MIC5jRd_B|fu!g-eL%P~ZE6ttbwW82GRmcVh>paW&pVKNfL7
zBq!hK>|vnCDH6~LxEEhyH+suO+HogFaSV0d16+l3*7IL@khr-*WDRCe=if(N$Xncm
zi?|h2>?T2eIZr3Tz!O}H-%(#&QDrWmAA5+;p(cERaa=$)EiEpyGHtk=IE0#T3zAEQ
zkg0M4S)-iB1ZMF%`DKRADE3ija!V1zIEx+l8&lX;ZSH&@b`oE-;>W0oKO#kwKRC`Y
zmeq*V6JM@1kMN%5BjhJVZn+jZuj%O7{loyeIoKvlVyW~PA|69s&>h@?v$z?X>O@xJ
ze%y#>QQv!xI{!2J(d{wE6PAM>>aPpPGBAX<P(Q@K7{%mLb0NoZ9q|S1$EQ|YwM=9^
zaW8gZ2KD_()DnNeUi4CiFdjgSucB7!O+EEz)AEi1-SH1gM}t|iR@8|>)T4=F3^(8<
z9Kke7qd9*BHBlDzTbaTn&RemYBsv~Jt=K?_4$tHaYN9L1(UqEhj2va@5A{#F^AmQT
zEtH?JZ@0zrHlwkwlToeH|CY%6jdn+bFp%G6_^RXd^b-tnbrmwk2WRE6L!-m#qr;~T
j7Y1D}dqpIkiYJ2MXyIhd-E!yGsoM*a*9x@_N6P*IlK*jx

delta 1020
zcmXxiPe>GT6u|Mf&FHG@w(gc%IVEBEXHA=#{Zk5}q#_Zu(7}v4q$YGRN}?{o(j_Fa
zLqjgqB}ormHgGybw}b+tOLd3{v_m0yDGwcmzR#J4o%#IUZ-2AD_j_+k&R@H@mNFj;
zSDxGA{umKCg?9`dT+d9AT3o<tEQh|vI^q@7_rBmE{DWCcRERX;5VqlEY{gmZz?V2G
zQj~8D&NE?GillV`j-ihktc{Aa-~hUK1$A8skKju9{RWN`$ErlyaT;~~JZd7VIE24&
z1k;=*&;ByQz+vJAcH?){7i(&Q1p07*_y+2R%b3Hj$YCWO3o4Vs{lpgPhIwQ!IfvvX
z7g4J`iSzgbXV_mH>dT(8h&Gn74cD<3qw(OxC$WooI*gy9ZulN4mi)j6v~L6JiEk!?
z*4+;+As<=faS&f&QG528K^nJkA6hh4OP<4{cmXw`dw3ShIE>qP7zdLg{WyjC-V*Bi
zRqVj6aK0%OeBY0nz+{U0PcXR4#BuzIE?RqnL<)F<_$r>kg)sh&J;d#MMULSF>idsS
zOZ))`F+v$^97c_Ap;qb*a#nd;PyO}8pO{cLk*bT)5VWKYv&0ARAr|mDuA#0gGzJ@7
zLj7;dp(e5%#+#uDeq1Y+MW$pFHIZu;16sCob@8NiJ15Gc>n$10kxuWOaXOOml4fI4
zo8fT(zj9uW*;1h=6mQ&Yj%%v=m(yl;`*Y@crGGnCZB)5-ubt_%9e;NB^QiAOOzrvy
D>OW`O

diff --git a/po/zh_CN.po b/po/zh_CN.po
index a1cc5911e..5c1c38c39 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.16.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2009-11-13 22:20+0800\n"
 "Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -16,17 +16,23 @@ msgstr ""
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr "解码 JPEG 图像出错"
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr "‘%s’ 由 ‘%s’"
 
-msgid "Failed to decode JPEG image"
-msgstr "解码 JPEG 图像出错"
-
 msgid "Could not connect to server"
 msgstr "无法连接至服务器"
 
+msgid "No URL set."
+msgstr ""
+
 #, fuzzy
 msgid "Server does not support seeking."
 msgstr "设备‘%s’不支持视频捕获"
@@ -49,9 +55,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "No URL set."
-msgstr ""
-
 msgid "Internal data stream error."
 msgstr "内部数据流错误。"
 
@@ -64,6 +67,9 @@ msgstr "此文件不包含可播放的流。"
 msgid "This file is invalid and cannot be played."
 msgstr "此文件无效,无法播放。"
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr "此文件已损坏,无法播放。"
 
@@ -111,14 +117,6 @@ msgstr "无法打开音频设备播放音频。您无权使用这一设备。"
 msgid "Could not open audio device for playback."
 msgstr "无法打开音频设备播放音频。"
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr "无法打开音频设备录音。您无权使用这一设备。"
-
-msgid "Could not open audio device for recording."
-msgstr "无法打开音频设备录音。"
-
 #, fuzzy
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
@@ -138,6 +136,46 @@ msgstr ""
 msgid "Error recording from audio device."
 msgstr "从设备‘%2$s’中读取 %1$d 个字节时出错。"
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr "无法打开音频设备录音。您无权使用这一设备。"
+
+msgid "Could not open audio device for recording."
+msgstr "无法打开音频设备录音。"
+
+#, fuzzy
+msgid "Record Source"
+msgstr "录音"
+
+msgid "Microphone"
+msgstr "话筒"
+
+#, fuzzy
+msgid "Line In"
+msgstr "线路输入(Line-in)"
+
+msgid "Internal CD"
+msgstr ""
+
+#, fuzzy
+msgid "SPDIF In"
+msgstr "SPDIF 输出"
+
+#, fuzzy
+msgid "AUX 1 In"
+msgstr "AUX 1 输出"
+
+#, fuzzy
+msgid "AUX 2 In"
+msgstr "AUX 2 输出"
+
+msgid "Codec Loopback"
+msgstr ""
+
+msgid "SunVTS Loopback"
+msgstr ""
+
 msgid "Volume"
 msgstr "音量"
 
@@ -236,6 +274,10 @@ msgstr "设置设备 %2$s 上的输入 %1$d 时出错。"
 msgid "Failed to change mute state for device '%s'."
 msgstr "获取设备‘%s’的信号长度时出错。"
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr "无法确认设备‘%s’。"
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -258,10 +300,6 @@ msgstr "查寻设备 ‘%s’上的基准时出错。"
 msgid "Failed getting controls attributes on device '%s'."
 msgstr "获取设备‘%s’上的控制属性时出错。"
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr "无法确认设备‘%s’。"
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr "不是设备‘%s’。"
@@ -321,8 +359,14 @@ msgstr "尚不支持在运行时更改分辨率。"
 msgid "Cannot operate without a clock"
 msgstr "没有时钟的话无法操作"
 
-#~ msgid "Failed to query sound server capabilities"
-#~ msgstr "查寻音频服务器的服务失败"
+#~ msgid "Got unexpected frame size of %u instead of %u."
+#~ msgstr "取得了 %u 的不需要的帧大小,而不是 %u。"
+
+#~ msgid "Failed trying to get video frames from device '%s'."
+#~ msgstr "从设备‘%s’上获取视频的尝试失败了。"
+
+#~ msgid "Failed after %d tries. device %s. system error: %s"
+#~ msgstr "在 %d 次尝试后失败。设备 %s。系统错误: %s"
 
 #~ msgid "Bass"
 #~ msgstr "低音(Bass)"
@@ -342,9 +386,6 @@ msgstr "没有时钟的话无法操作"
 #~ msgid "Line-in"
 #~ msgstr "线路输入(Line-in)"
 
-#~ msgid "Microphone"
-#~ msgstr "话筒"
-
 #~ msgid "CD"
 #~ msgstr "CD 音频"
 
@@ -393,8 +434,78 @@ msgstr "没有时钟的话无法操作"
 #~ msgid "Radio"
 #~ msgstr "广播"
 
-#~ msgid "Got unexpected frame size of %u instead of %u."
-#~ msgstr "取得了 %u 的不需要的帧大小,而不是 %u。"
+#, fuzzy
+#~ msgid "Could not open audio device for mixer control handling."
+#~ msgstr "无法打开音频设备录音。"
+
+#, fuzzy
+#~ msgid ""
+#~ "Could not open audio device for mixer control handling. This version of "
+#~ "the Open Sound System is not supported by this element."
+#~ msgstr "无法打开音频设备录音。您无权使用这一设备。"
+
+#, fuzzy
+#~ msgid "Headphones"
+#~ msgstr "头戴式耳机"
+
+#, fuzzy
+#~ msgid "AUX Out"
+#~ msgstr "AUX 1 输出"
+
+#, fuzzy
+#~ msgid "Telephone"
+#~ msgstr "头戴式耳机"
+
+#, fuzzy
+#~ msgid "Video In"
+#~ msgstr "视频"
+
+#, fuzzy
+#~ msgid "Record Gain"
+#~ msgstr "录音"
+
+#, fuzzy
+#~ msgid "Microphone Boost"
+#~ msgstr "话筒"
+
+#, fuzzy
+#~ msgid "Monitor Source"
+#~ msgstr "监控器"
+
+#, fuzzy
+#~ msgid "Microphone Gain"
+#~ msgstr "话筒"
+
+#, fuzzy
+#~ msgid "Speaker Source"
+#~ msgstr "扬声器(Speaker)"
+
+#, fuzzy
+#~ msgid "Microphone Source"
+#~ msgstr "话筒"
+
+#, fuzzy
+#~ msgid "Microphone 1"
+#~ msgstr "话筒"
+
+#, fuzzy
+#~ msgid "Microphone 2"
+#~ msgstr "话筒"
+
+#, fuzzy
+#~ msgid "Digital Out"
+#~ msgstr "数字线路1"
+
+#, fuzzy
+#~ msgid "Digital In"
+#~ msgstr "数字线路1"
+
+#, fuzzy
+#~ msgid "Front Panel Microphone"
+#~ msgstr "话筒"
+
+#~ msgid "Failed to query sound server capabilities"
+#~ msgstr "查寻音频服务器的服务失败"
 
 #~ msgid "Error reading %d bytes on device '%s'."
 #~ msgstr "读取设备‘%2$s’中的 %1$d 字节时出错。"
@@ -402,12 +513,6 @@ msgstr "没有时钟的话无法操作"
 #~ msgid "Could not enqueue buffers in device '%s'."
 #~ msgstr "无法对设备‘%s’中的缓冲区进行排序。"
 
-#~ msgid "Failed trying to get video frames from device '%s'."
-#~ msgstr "从设备‘%s’上获取视频的尝试失败了。"
-
-#~ msgid "Failed after %d tries. device %s. system error: %s"
-#~ msgstr "在 %d 次尝试后失败。设备 %s。系统错误: %s"
-
 #~ msgid ""
 #~ "The buffer type is not supported, or the index is out of bounds, or no "
 #~ "buffers have been allocated yet, or the userptr or length are invalid. "
diff --git a/po/zh_HK.gmo b/po/zh_HK.gmo
index e27837b189cf3c1fb25a0a0b6cd78fc67d70a201..efe1efe260a069d8371f397cbab457ae5c51f892 100644
GIT binary patch
delta 536
zcmXxg&r8B!7zglYy3%Y`7zI&>m5@PTDk#(~lxWaFlA^H7s6jzaT-Mb<>=dLdFM$Mw
z5p)QWD1`Fb9}!)`U&kOib?EzU>w#yV_s8?@dAD=dwUGPp@MS^_ASaNg$YJC!lEpGd
z<b;ytDjdN)2{SMQr{E{-hrKqUap-{#=!X#)fpahg-LL`!L^-;{fHioBMZBa51<a3l
z(>!Dii*OU(Kp&(Yq9HH?C*eF~=aO(8?m|}Au-4m<)qPv@(Ox2sw#-9VH^Po5){Vb`
zI^$yOw*P^<Q6Ca_AQzH-A^U107S}e!peU)t1|bYeZ;#W_7)feY(NuX~+>x`gc#zc;
zIVCEZme%~VvZpGj)XzB8Atus?+P0$qa3N<R9+Q^XhR>FF2Ez;C$ZQ}~d$2jUF|$qQ
zRc{umRx5L&Kie+`PYT`qtr(4o-OF0{s-(wxuh6bHI#2gjk;Wej&6hH^Ta{|7Uev#M
KuiI>AR?r{Zz-WU2

delta 260
zcmXYrJq`g;5P)Z&T`Q=FL_$M@Y+;co+(4<35C_nR2))D!Bts$5Ie~~mrS#Ld0hJ4A
zw7$h8-+YsqH<P!CFQU_X!d?myfh_bO25Si73@Nz42p*7!mL-zG6I{o0T*fEt<2Md^
zMf2M~ghV>@Z@7R<wn$E-DJ_aNjWG@e*WW;1nEh`!<nX@^KFUqu&No~#Per@dUNa`C
nbu-Yd@$_kCk*eSDYo1@(4MVP_b9<!?C#QX9sz)cS@o@A5+HxX4

diff --git a/po/zh_HK.po b/po/zh_HK.po
index 641e31eb5..afb4bbb57 100644
--- a/po/zh_HK.po
+++ b/po/zh_HK.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-0.10.2 0.10.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2006-08-29 01:08+0800\n"
 "Last-Translator: Abel Cheung <abelcheung@gmail.com>\n"
 "Language-Team: Chinese (Hong Kong) <community@linuxhall.org>\n"
@@ -15,15 +15,21 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr ""
 
-msgid "Failed to decode JPEG image"
+msgid "Could not connect to server"
 msgstr ""
 
-msgid "Could not connect to server"
+msgid "No URL set."
 msgstr ""
 
 msgid "Server does not support seeking."
@@ -45,9 +51,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "No URL set."
-msgstr ""
-
 msgid "Internal data stream error."
 msgstr "內部資料串流發生錯誤。"
 
@@ -60,6 +63,9 @@ msgstr ""
 msgid "This file is invalid and cannot be played."
 msgstr ""
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr ""
 
@@ -104,14 +110,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr ""
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-
-msgid "Could not open audio device for recording."
-msgstr ""
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -129,6 +127,44 @@ msgstr "此音频设备不支持录音。"
 msgid "Error recording from audio device."
 msgstr "从音频设备录音时发生错误。"
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+
+msgid "Could not open audio device for recording."
+msgstr ""
+
+msgid "Record Source"
+msgstr "录音来源"
+
+#, fuzzy
+msgid "Microphone"
+msgstr "麦克风 1"
+
+msgid "Line In"
+msgstr "线路输入"
+
+msgid "Internal CD"
+msgstr "内部 CD 音频"
+
+msgid "SPDIF In"
+msgstr "SPDIF 输入"
+
+msgid "AUX 1 In"
+msgstr "AUX 1 输入"
+
+msgid "AUX 2 In"
+msgstr "AUX 2 输入"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Loopback"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Loopback"
+
 msgid "Volume"
 msgstr ""
 
@@ -226,6 +262,10 @@ msgstr ""
 msgid "Failed to change mute state for device '%s'."
 msgstr ""
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr ""
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -248,10 +288,6 @@ msgstr ""
 msgid "Failed getting controls attributes on device '%s'."
 msgstr ""
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr ""
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr ""
@@ -359,21 +395,9 @@ msgstr ""
 #~ msgid "Telephone"
 #~ msgstr "话筒"
 
-#~ msgid "Line In"
-#~ msgstr "线路输入"
-
-#~ msgid "Internal CD"
-#~ msgstr "内部 CD 音频"
-
 #~ msgid "Video In"
 #~ msgstr "视频输入"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "AUX 1 输入"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "AUX 2 输入"
-
 #~ msgid "AUX In"
 #~ msgstr "AUX 输入"
 
@@ -386,9 +410,6 @@ msgstr ""
 #~ msgid "Microphone Boost"
 #~ msgstr "麦克风增益"
 
-#~ msgid "Loopback"
-#~ msgstr "Loopback"
-
 #, fuzzy
 #~ msgid "Diagnostic"
 #~ msgstr "采样分析"
@@ -402,9 +423,6 @@ msgstr ""
 #~ msgid "Input"
 #~ msgstr "输入"
 
-#~ msgid "Record Source"
-#~ msgstr "录音来源"
-
 #~ msgid "Monitor Source"
 #~ msgstr "监视器来源"
 
@@ -444,12 +462,6 @@ msgstr ""
 #~ msgid "Input Mix"
 #~ msgstr "混音输入"
 
-#~ msgid "SPDIF In"
-#~ msgstr "SPDIF 输入"
-
-#~ msgid "Microphone 1"
-#~ msgstr "麦克风 1"
-
 #~ msgid "Microphone 2"
 #~ msgstr "麦克风 2"
 
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index aab007b44e9ffa35acfdf96bcad959881390b61d..7efd5a57187351f38694dcc0ac6c1c8e1c5f7666 100644
GIT binary patch
delta 536
zcmXxgO-lk%6b9fkI;q)MVYrA|+!AsTlnP3;3ndx|ilpdkBQ->jBTl+D5?ci(gPTAC
zK?qs|NeDu=?MFnL&~z6Bt%7>*%yi()b3e|Vb7ypSP0GJ{#R?&Yk(0<v<QVb?$zw$z
zazWX01Nt!EgBh5C)9@V*L5GcK0(zkn&cP^*!g-j29$1AzqCDMUz#F{65?<1Q66QJ4
z^c?brCAb6YFaUqyC=3h`O~D1o&+Wo3cm#P}+gk5JUiW3qeGVdl_RT|BH^Po5){Vb`
zI^$yew*P^<(I67N$&KV+$iLc%rOj;?VzNqn5XPYV@;DQVldNVHO--J#!(=wePP3Yl
zOff~%(%KxY9;*r}^^%}ESt6a&4ix=c2)h#Nae0|<1Z)LYD6$xd&IZGc2b)6}H{0~u
zdZ$>oTA35QX}=!1DE14tEEZ?|n?}D@*4IS8^wE0mHSevWjCdw>o+{YxR_oo?mHsLE
KJ!U(zg8l#<{%LIh

delta 260
zcmXYru?j(96oAkD-FpcWDRnI@l)*(Q-oVD9$ZnFzuDk$sGANTbkd(=a#Un6z0F%{s
zaq2tY>74(Z{%u^NvwOl`2@!z|^dSZt2;u@MxWX77kb|}*;^8T-;UzBNGxqTtFQ8z4
z`^S(-m;MdsalsbJiZrD~(V;QH!QlEE$P2Uo4TtRh>)@l@6z+T@Oy;R*&pN1Ql3FuE
l-I=03%{)@^8-BIum-nNPYw5yXYu(A}z?tdENo&lFegM=5A};^{

diff --git a/po/zh_TW.po b/po/zh_TW.po
index ea13282a3..4a3a38fa5 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-0.10.2 0.10.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 20:03+0100\n"
+"POT-Creation-Date: 2013-07-11 15:56+0200\n"
 "PO-Revision-Date: 2006-08-29 01:08+0800\n"
 "Last-Translator: Abel Cheung <abelcheung@gmail.com>\n"
 "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
@@ -15,15 +15,21 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+msgid "Jack server not found"
+msgstr ""
+
+msgid "Failed to decode JPEG image"
+msgstr ""
+
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
 msgstr ""
 
-msgid "Failed to decode JPEG image"
+msgid "Could not connect to server"
 msgstr ""
 
-msgid "Could not connect to server"
+msgid "No URL set."
 msgstr ""
 
 msgid "Server does not support seeking."
@@ -45,9 +51,6 @@ msgstr ""
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "No URL set."
-msgstr ""
-
 msgid "Internal data stream error."
 msgstr "內部資料串流發生錯誤。"
 
@@ -60,6 +63,9 @@ msgstr ""
 msgid "This file is invalid and cannot be played."
 msgstr ""
 
+msgid "Cannot play stream because it is encrypted with PlayReady DRM."
+msgstr ""
+
 msgid "This file is corrupt and cannot be played."
 msgstr ""
 
@@ -104,14 +110,6 @@ msgstr ""
 msgid "Could not open audio device for playback."
 msgstr ""
 
-msgid ""
-"Could not open audio device for recording. You don't have permission to open "
-"the device."
-msgstr ""
-
-msgid "Could not open audio device for recording."
-msgstr ""
-
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
@@ -129,6 +127,44 @@ msgstr "此音频设备不支持录音。"
 msgid "Error recording from audio device."
 msgstr "从音频设备录音时发生错误。"
 
+msgid ""
+"Could not open audio device for recording. You don't have permission to open "
+"the device."
+msgstr ""
+
+msgid "Could not open audio device for recording."
+msgstr ""
+
+msgid "Record Source"
+msgstr "录音来源"
+
+#, fuzzy
+msgid "Microphone"
+msgstr "麦克风 1"
+
+msgid "Line In"
+msgstr "线路输入"
+
+msgid "Internal CD"
+msgstr "内部 CD 音频"
+
+msgid "SPDIF In"
+msgstr "SPDIF 输入"
+
+msgid "AUX 1 In"
+msgstr "AUX 1 输入"
+
+msgid "AUX 2 In"
+msgstr "AUX 2 输入"
+
+#, fuzzy
+msgid "Codec Loopback"
+msgstr "Loopback"
+
+#, fuzzy
+msgid "SunVTS Loopback"
+msgstr "Loopback"
+
 msgid "Volume"
 msgstr ""
 
@@ -226,6 +262,10 @@ msgstr ""
 msgid "Failed to change mute state for device '%s'."
 msgstr ""
 
+#, c-format
+msgid "Cannot identify device '%s'."
+msgstr ""
+
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
@@ -248,10 +288,6 @@ msgstr ""
 msgid "Failed getting controls attributes on device '%s'."
 msgstr ""
 
-#, c-format
-msgid "Cannot identify device '%s'."
-msgstr ""
-
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr ""
@@ -359,21 +395,9 @@ msgstr ""
 #~ msgid "Telephone"
 #~ msgstr "话筒"
 
-#~ msgid "Line In"
-#~ msgstr "线路输入"
-
-#~ msgid "Internal CD"
-#~ msgstr "内部 CD 音频"
-
 #~ msgid "Video In"
 #~ msgstr "视频输入"
 
-#~ msgid "AUX 1 In"
-#~ msgstr "AUX 1 输入"
-
-#~ msgid "AUX 2 In"
-#~ msgstr "AUX 2 输入"
-
 #~ msgid "AUX In"
 #~ msgstr "AUX 输入"
 
@@ -386,9 +410,6 @@ msgstr ""
 #~ msgid "Microphone Boost"
 #~ msgstr "麦克风增益"
 
-#~ msgid "Loopback"
-#~ msgstr "Loopback"
-
 #, fuzzy
 #~ msgid "Diagnostic"
 #~ msgstr "采样分析"
@@ -402,9 +423,6 @@ msgstr ""
 #~ msgid "Input"
 #~ msgstr "输入"
 
-#~ msgid "Record Source"
-#~ msgstr "录音来源"
-
 #~ msgid "Monitor Source"
 #~ msgstr "监视器来源"
 
@@ -444,12 +462,6 @@ msgstr ""
 #~ msgid "Input Mix"
 #~ msgstr "混音输入"
 
-#~ msgid "SPDIF In"
-#~ msgstr "SPDIF 输入"
-
-#~ msgid "Microphone 1"
-#~ msgstr "麦克风 1"
-
 #~ msgid "Microphone 2"
 #~ msgstr "麦克风 2"
 
diff --git a/sys/Makefile.in b/sys/Makefile.in
index 8fa64580b..c7c6094ab 100644
--- a/sys/Makefile.in
+++ b/sys/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -26,23 +25,51 @@
 # descending into all subdirectories a second time, but only after the first
 # (parallel) run has finished, so it should go right through the second time.
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -62,8 +89,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/parallel-subdirs.mak
+DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \
+	$(srcdir)/Makefile.in $(srcdir)/Makefile.am
 subdir = sys
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -71,7 +98,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-gcc-inline-assembly.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 \
@@ -107,21 +133,28 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -129,9 +162,29 @@ am__can_run_installinfo = \
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -325,6 +378,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -571,22 +625,25 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -601,57 +658,12 @@ $(RECURSIVE_TARGETS):
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-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: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -667,12 +679,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -684,15 +691,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -701,6 +704,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -861,22 +879,20 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean 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 installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean 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 \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 .PHONY: independent-subdirs $(SUBDIRS)
diff --git a/sys/directsound/Makefile.in b/sys/directsound/Makefile.in
index 2cee72d43..0b5fa6663 100644
--- a/sys/directsound/Makefile.in
+++ b/sys/directsound/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/directsound
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -139,10 +165,23 @@ libgstdirectsoundsink_la_OBJECTS =  \
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstdirectsoundsink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstdirectsoundsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstdirectsoundsink_la_CFLAGS) \
 	$(CFLAGS) $(libgstdirectsoundsink_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -155,20 +194,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstdirectsoundsink_la_SOURCES)
 DIST_SOURCES = $(libgstdirectsoundsink_la_SOURCES)
 am__can_run_installinfo = \
@@ -177,6 +212,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -345,6 +397,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -557,6 +610,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -583,12 +637,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstdirectsoundsink.la: $(libgstdirectsoundsink_la_OBJECTS) $(libgstdirectsoundsink_la_DEPENDENCIES) $(EXTRA_libgstdirectsoundsink_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstdirectsoundsink_la_LINK) -rpath $(plugindir) $(libgstdirectsoundsink_la_OBJECTS) $(libgstdirectsoundsink_la_LIBADD) $(LIBS)
 
@@ -642,26 +699,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -673,15 +719,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -690,6 +732,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -834,19 +891,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/sys/directsound/gstdirectsoundplugin.c b/sys/directsound/gstdirectsoundplugin.c
index bc19ce249..faee215f5 100644
--- a/sys/directsound/gstdirectsoundplugin.c
+++ b/sys/directsound/gstdirectsoundplugin.c
@@ -16,8 +16,8 @@
 *
 * 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.
+* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+* Boston, MA 02110-1301, USA.
 * 
 *
 * The development of this code was made possible due to the involvement
diff --git a/sys/directsound/gstdirectsoundsink.c b/sys/directsound/gstdirectsoundsink.c
index 9626e697c..72a02d726 100644
--- a/sys/directsound/gstdirectsoundsink.c
+++ b/sys/directsound/gstdirectsoundsink.c
@@ -17,8 +17,8 @@
 *
 * 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.
+* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+* Boston, MA 02110-1301, USA.
 *
 *
 * The development of this code was made possible due to the involvement
@@ -53,7 +53,6 @@
 #endif
 
 #include <gst/base/gstbasesink.h>
-#include <gst/audio/streamvolume.h>
 #include "gstdirectsoundsink.h"
 #include <gst/audio/gstaudioiec61937.h>
 
@@ -156,8 +155,6 @@ gst_directsound_sink_class_init (GstDirectSoundSinkClass * klass)
   GST_DEBUG_CATEGORY_INIT (directsoundsink_debug, "directsoundsink", 0,
       "DirectSound sink");
 
-  parent_class = g_type_class_peek_parent (klass);
-
   gobject_class->finalize = gst_directsound_sink_finalize;
   gobject_class->set_property = gst_directsound_sink_set_property;
   gobject_class->get_property = gst_directsound_sink_get_property;
@@ -261,7 +258,6 @@ gst_directsound_sink_getcaps (GstBaseSink * bsink, GstCaps * filter)
   GstPadTemplate *pad_template;
   GstDirectSoundSink *dsoundsink = GST_DIRECTSOUND_SINK (bsink);
   GstCaps *caps;
-  gchar *caps_string = NULL;
 
   if (dsoundsink->pDS == NULL) {
     GST_DEBUG_OBJECT (dsoundsink, "device not open, using template caps");
@@ -269,20 +265,23 @@ gst_directsound_sink_getcaps (GstBaseSink * bsink, GstCaps * filter)
   }
 
   if (dsoundsink->cached_caps) {
-    caps_string = gst_caps_to_string (dsoundsink->cached_caps);
-    GST_DEBUG_OBJECT (dsoundsink, "Returning cached caps: %s", caps_string);
-    g_free (caps_string);
-    return gst_caps_ref (dsoundsink->cached_caps);
+    caps = gst_caps_ref (dsoundsink->cached_caps);
+  } else {
+    element_class = GST_ELEMENT_GET_CLASS (dsoundsink);
+    pad_template = gst_element_class_get_pad_template (element_class, "sink");
+    g_return_val_if_fail (pad_template != NULL, NULL);
+
+    caps = gst_directsound_probe_supported_formats (dsoundsink,
+        gst_pad_template_get_caps (pad_template));
+    if (caps)
+      dsoundsink->cached_caps = gst_caps_ref (caps);
   }
 
-  element_class = GST_ELEMENT_GET_CLASS (dsoundsink);
-  pad_template = gst_element_class_get_pad_template (element_class, "sink");
-  g_return_val_if_fail (pad_template != NULL, NULL);
-
-  caps = gst_directsound_probe_supported_formats (dsoundsink,
-      gst_pad_template_get_caps (pad_template));
-  if (caps) {
-    dsoundsink->cached_caps = gst_caps_ref (caps);
+  if (caps && filter) {
+    GstCaps *tmp =
+        gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
+    gst_caps_unref (caps);
+    caps = tmp;
   }
 
   if (caps) {
@@ -315,10 +314,11 @@ gst_directsound_sink_acceptcaps (GstBaseSink * sink, GstQuery * query)
 
   pad_caps = gst_pad_query_caps (pad, NULL);
   if (pad_caps) {
-    gboolean cret = gst_caps_can_intersect (pad_caps, caps);
+    gboolean cret = gst_caps_is_subset (caps, pad_caps);
     gst_caps_unref (pad_caps);
     if (!cret) {
-      GST_DEBUG_OBJECT (dsink, "Can't intersect caps, not accepting caps");
+      GST_DEBUG_OBJECT (dsink,
+          "Caps are not a subset of the pad caps, not accepting caps");
       goto done;
     }
   }
diff --git a/sys/directsound/gstdirectsoundsink.h b/sys/directsound/gstdirectsoundsink.h
index 43b2dde1b..3a8318194 100644
--- a/sys/directsound/gstdirectsoundsink.h
+++ b/sys/directsound/gstdirectsoundsink.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  * The development of this code was made possible due to the involvement
  * of Pioneers of the Inevitable, the creators of the Songbird Music player
@@ -30,6 +30,7 @@
 #define __GST_DIRECTSOUNDSINK_H__
 
 #include <gst/gst.h>
+#include <gst/audio/audio.h>
 #include <gst/audio/gstaudiosink.h>
 
 #include <windows.h>
diff --git a/sys/oss/Makefile.in b/sys/oss/Makefile.in
index 3bf30839c..1e2cbb14d 100644
--- a/sys/oss/Makefile.in
+++ b/sys/oss/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/oss
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -137,10 +163,23 @@ libgstossaudio_la_OBJECTS = $(am_libgstossaudio_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstossaudio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstossaudio_la_CFLAGS) $(CFLAGS) \
 	$(libgstossaudio_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -153,20 +192,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstossaudio_la_SOURCES)
 DIST_SOURCES = $(libgstossaudio_la_SOURCES)
 am__can_run_installinfo = \
@@ -175,6 +210,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -343,6 +395,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -558,6 +611,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -584,12 +638,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstossaudio.la: $(libgstossaudio_la_OBJECTS) $(libgstossaudio_la_DEPENDENCIES) $(EXTRA_libgstossaudio_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstossaudio_la_LINK) -rpath $(plugindir) $(libgstossaudio_la_OBJECTS) $(libgstossaudio_la_LIBADD) $(LIBS)
 
@@ -659,26 +716,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -690,15 +736,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -707,6 +749,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -851,19 +908,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/sys/oss/common.h b/sys/oss/common.h
index 2445c3d8a..6c3632f26 100644
--- a/sys/oss/common.h
+++ b/sys/oss/common.h
@@ -14,10 +14,12 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
+#include <gst/audio/audio.h>
+
 #define SET_PARAM(_oss, _name, _val, _detail)   \
 G_STMT_START {                                  \
   int _tmp = _val;                              \
diff --git a/sys/oss/gstossaudio.c b/sys/oss/gstossaudio.c
index 57fcf0aea..7194e2e84 100644
--- a/sys/oss/gstossaudio.c
+++ b/sys/oss/gstossaudio.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -23,6 +23,7 @@
 
 #include "gst/gst-i18n-plugin.h"
 
+#include "common.h"
 #include "gstosssink.h"
 #include "gstosssrc.h"
 
diff --git a/sys/oss/gstossdmabuffer.h b/sys/oss/gstossdmabuffer.h
index c38ef6f55..9143b0351 100644
--- a/sys/oss/gstossdmabuffer.h
+++ b/sys/oss/gstossdmabuffer.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_OSSDMABUFFER_H__
diff --git a/sys/oss/gstosshelper.c b/sys/oss/gstosshelper.c
index ad62990b1..11e3ff6df 100644
--- a/sys/oss/gstosshelper.c
+++ b/sys/oss/gstosshelper.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/sys/oss/gstosshelper.h b/sys/oss/gstosshelper.h
index aa30b0c24..d9f99148f 100644
--- a/sys/oss/gstosshelper.h
+++ b/sys/oss/gstosshelper.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/sys/oss/gstosssink.c b/sys/oss/gstosssink.c
index 759f0d375..3ee3c2a37 100644
--- a/sys/oss/gstosssink.c
+++ b/sys/oss/gstosssink.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/sys/oss/gstosssink.h b/sys/oss/gstosssink.h
index bb2ca932e..3174df169 100644
--- a/sys/oss/gstosssink.h
+++ b/sys/oss/gstosssink.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/sys/oss/gstosssrc.c b/sys/oss/gstosssrc.c
index 4738c2219..742c59dc4 100644
--- a/sys/oss/gstosssrc.c
+++ b/sys/oss/gstosssrc.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -59,8 +59,8 @@
 # endif /* HAVE_OSS_INCLUDE_IN_ROOT */
 #endif /* HAVE_OSS_INCLUDE_IN_SYS */
 
-#include "gstosssrc.h"
 #include "common.h"
+#include "gstosssrc.h"
 
 #include <gst/gst-i18n-plugin.h>
 
diff --git a/sys/oss/gstosssrc.h b/sys/oss/gstosssrc.h
index ec9af4cb0..58995fb22 100644
--- a/sys/oss/gstosssrc.h
+++ b/sys/oss/gstosssrc.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/sys/oss4/Makefile.in b/sys/oss4/Makefile.in
index f1b4e6851..fc074d6b4 100644
--- a/sys/oss4/Makefile.in
+++ b/sys/oss4/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/oss4
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -138,10 +164,23 @@ libgstoss4audio_la_OBJECTS = $(am_libgstoss4audio_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstoss4audio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) \
 	$(libgstoss4audio_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -154,20 +193,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstoss4audio_la_SOURCES)
 DIST_SOURCES = $(libgstoss4audio_la_SOURCES)
 am__can_run_installinfo = \
@@ -176,6 +211,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -344,6 +396,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -560,6 +613,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -586,12 +640,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstoss4audio.la: $(libgstoss4audio_la_OBJECTS) $(libgstoss4audio_la_DEPENDENCIES) $(EXTRA_libgstoss4audio_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstoss4audio_la_LINK) -rpath $(plugindir) $(libgstoss4audio_la_OBJECTS) $(libgstoss4audio_la_LIBADD) $(LIBS)
 
@@ -661,26 +718,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -692,15 +738,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -709,6 +751,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -853,19 +910,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/sys/oss4/oss4-audio.c b/sys/oss4/oss4-audio.c
index 21a963fe5..56d12b15e 100644
--- a/sys/oss4/oss4-audio.c
+++ b/sys/oss4/oss4-audio.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
diff --git a/sys/oss4/oss4-audio.h b/sys/oss4/oss4-audio.h
index fcfbb8e8c..054ecf926 100644
--- a/sys/oss4/oss4-audio.h
+++ b/sys/oss4/oss4-audio.h
@@ -13,15 +13,15 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef GST_OSS4_AUDIO_H
 #define GST_OSS4_AUDIO_H_
 
 #include <gst/gst.h>
-#include <gst/audio/gstaudioringbuffer.h>
+#include <gst/audio/audio.h>
 
 /* This is the minimum version we require */
 #define GST_MIN_OSS4_VERSION  0x040003
diff --git a/sys/oss4/oss4-property-probe.c b/sys/oss4/oss4-property-probe.c
index c628af81a..2e164f285 100644
--- a/sys/oss4/oss4-property-probe.c
+++ b/sys/oss4/oss4-property-probe.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
diff --git a/sys/oss4/oss4-property-probe.h b/sys/oss4/oss4-property-probe.h
index 8426bb604..1f46f9a87 100644
--- a/sys/oss4/oss4-property-probe.h
+++ b/sys/oss4/oss4-property-probe.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef GST_OSS4_PROPERTY_PROBE_H
diff --git a/sys/oss4/oss4-sink.c b/sys/oss4/oss4-sink.c
index 8d746cdf6..eb3ada0fe 100644
--- a/sys/oss4/oss4-sink.c
+++ b/sys/oss4/oss4-sink.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-oss4sink
@@ -545,7 +545,13 @@ non_block:
 static gboolean
 gst_oss4_sink_open_func (GstAudioSink * asink)
 {
-  return gst_oss4_sink_open (asink, FALSE);
+  if (!gst_oss4_sink_open (asink, FALSE))
+    return FALSE;
+
+  /* the initial volume might not be the property default, so notify
+   * application to make it get a reading of the current volume */
+  g_object_notify (G_OBJECT (asink), "volume");
+  return TRUE;
 }
 
 static gboolean
diff --git a/sys/oss4/oss4-sink.h b/sys/oss4/oss4-sink.h
index 47221955d..04645fe7f 100644
--- a/sys/oss4/oss4-sink.h
+++ b/sys/oss4/oss4-sink.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef GST_OSS4_SINK_H
diff --git a/sys/oss4/oss4-source.c b/sys/oss4/oss4-source.c
index c193616c3..e8c667e09 100644
--- a/sys/oss4/oss4-source.c
+++ b/sys/oss4/oss4-source.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/sys/oss4/oss4-source.h b/sys/oss4/oss4-source.h
index f30021ee3..91d8f1369 100644
--- a/sys/oss4/oss4-source.h
+++ b/sys/oss4/oss4-source.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef GST_OSS4_SOURCE_H
diff --git a/sys/osxaudio/Makefile.in b/sys/osxaudio/Makefile.in
index 0462893d6..86300ef00 100644
--- a/sys/osxaudio/Makefile.in
+++ b/sys/osxaudio/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -55,15 +82,14 @@ host_triplet = @host@
 target_triplet = @target@
 @HAVE_IOS_FALSE@am__append_1 = -Wl,-framework,AudioUnit -Wl,-framework,CoreServices
 subdir = sys/osxaudio
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -143,10 +169,23 @@ libgstosxaudio_la_OBJECTS = $(am_libgstosxaudio_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstosxaudio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) \
 	$(libgstosxaudio_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -159,20 +198,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstosxaudio_la_SOURCES)
 DIST_SOURCES = $(libgstosxaudio_la_SOURCES)
 am__can_run_installinfo = \
@@ -181,6 +216,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -349,6 +401,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -574,6 +627,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -600,12 +654,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstosxaudio.la: $(libgstosxaudio_la_OBJECTS) $(libgstosxaudio_la_DEPENDENCIES) $(EXTRA_libgstosxaudio_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstosxaudio_la_LINK) -rpath $(plugindir) $(libgstosxaudio_la_OBJECTS) $(libgstosxaudio_la_LIBADD) $(LIBS)
 
@@ -699,26 +756,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -730,15 +776,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -747,6 +789,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -891,19 +948,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/sys/osxaudio/gstosxaudio.c b/sys/osxaudio/gstosxaudio.c
index d00199825..c48b03f8f 100644
--- a/sys/osxaudio/gstosxaudio.c
+++ b/sys/osxaudio/gstosxaudio.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  * The development of this code was made possible due to the involvement of
  * Pioneers of the Inevitable, the creators of the Songbird Music player
diff --git a/sys/osxaudio/gstosxaudioelement.c b/sys/osxaudio/gstosxaudioelement.c
index 0442b1d3d..bec24d149 100644
--- a/sys/osxaudio/gstosxaudioelement.c
+++ b/sys/osxaudio/gstosxaudioelement.c
@@ -38,8 +38,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  * The development of this code was made possible due to the involvement of
  * Pioneers of the Inevitable, the creators of the Songbird Music player
diff --git a/sys/osxaudio/gstosxaudioelement.h b/sys/osxaudio/gstosxaudioelement.h
index 198dc1e4e..3e09dc1bb 100644
--- a/sys/osxaudio/gstosxaudioelement.h
+++ b/sys/osxaudio/gstosxaudioelement.h
@@ -38,8 +38,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  * The development of this code was made possible due to the involvement of
  * Pioneers of the Inevitable, the creators of the Songbird Music player
diff --git a/sys/osxaudio/gstosxaudioringbuffer.c b/sys/osxaudio/gstosxaudioringbuffer.c
index ae69319e5..997ae975c 100644
--- a/sys/osxaudio/gstosxaudioringbuffer.c
+++ b/sys/osxaudio/gstosxaudioringbuffer.c
@@ -39,8 +39,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/sys/osxaudio/gstosxaudioringbuffer.h b/sys/osxaudio/gstosxaudioringbuffer.h
index 533d16a40..5054fd385 100644
--- a/sys/osxaudio/gstosxaudioringbuffer.h
+++ b/sys/osxaudio/gstosxaudioringbuffer.h
@@ -38,8 +38,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_OSX_RING_BUFFER_H__
diff --git a/sys/osxaudio/gstosxaudiosink.c b/sys/osxaudio/gstosxaudiosink.c
index 2273a347d..053a87137 100644
--- a/sys/osxaudio/gstosxaudiosink.c
+++ b/sys/osxaudio/gstosxaudiosink.c
@@ -39,8 +39,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  * The development of this code was made possible due to the involvement of
  * Pioneers of the Inevitable, the creators of the Songbird Music player
@@ -325,15 +325,12 @@ gst_osx_audio_sink_getcaps (GstBaseSink * base, GstCaps * filter)
 static gboolean
 gst_osx_audio_sink_acceptcaps (GstOsxAudioSink * sink, GstCaps * caps)
 {
-  GstOsxAudioRingBuffer *osxbuf = NULL;
   GstCaps *pad_caps;
   GstStructure *st;
   gboolean ret = FALSE;
   GstAudioRingBufferSpec spec = { 0 };
   gchar *caps_string = NULL;
 
-  osxbuf = GST_OSX_AUDIO_RING_BUFFER (GST_AUDIO_BASE_SINK (sink)->ringbuffer);
-
   caps_string = gst_caps_to_string (caps);
   GST_DEBUG_OBJECT (sink, "acceptcaps called with %s", caps_string);
   g_free (caps_string);
@@ -577,39 +574,30 @@ gst_osx_audio_sink_allowed_caps (GstOsxAudioSink * osxsink)
         switch (layout->mChannelDescriptions[i].mChannelLabel) {
           case kAudioChannelLabel_Left:
             pos[i] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT;
-            channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (FRONT_LEFT);
             break;
           case kAudioChannelLabel_Right:
             pos[i] = GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT;
-            channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (FRONT_RIGHT);
             break;
           case kAudioChannelLabel_Center:
             pos[i] = GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER;
-            channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (FRONT_CENTER);
             break;
           case kAudioChannelLabel_LFEScreen:
             pos[i] = GST_AUDIO_CHANNEL_POSITION_LFE1;
-            channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (LFE1);
             break;
           case kAudioChannelLabel_LeftSurround:
             pos[i] = GST_AUDIO_CHANNEL_POSITION_REAR_LEFT;
-            channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (REAR_LEFT);
             break;
           case kAudioChannelLabel_RightSurround:
             pos[i] = GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT;
-            channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (REAR_RIGHT);
             break;
           case kAudioChannelLabel_RearSurroundLeft:
             pos[i] = GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT;
-            channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (SIDE_LEFT);
             break;
           case kAudioChannelLabel_RearSurroundRight:
             pos[i] = GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT;
-            channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (SIDE_RIGHT);
             break;
           case kAudioChannelLabel_CenterSurround:
             pos[i] = GST_AUDIO_CHANNEL_POSITION_REAR_CENTER;
-            channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (REAR_CENTER);
             break;
           default:
             GST_WARNING_OBJECT (osxsink, "unrecognized channel: %d",
@@ -640,6 +628,7 @@ gst_osx_audio_sink_allowed_caps (GstOsxAudioSink * osxsink)
         gst_caps_append_structure (caps, gst_structure_copy (in_s));
       }
     }
+    gst_audio_channel_positions_to_mask (pos, channels, false, &channel_mask);
     out_s = gst_structure_copy (in_s);
     gst_structure_remove_fields (out_s, "channels", "channel-mask", NULL);
     gst_structure_set (out_s, "channels", G_TYPE_INT, channels,
diff --git a/sys/osxaudio/gstosxaudiosink.h b/sys/osxaudio/gstosxaudiosink.h
index 6b1fc29e3..84949b7fc 100644
--- a/sys/osxaudio/gstosxaudiosink.h
+++ b/sys/osxaudio/gstosxaudiosink.h
@@ -39,8 +39,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  * The development of this code was made possible due to the involvement of
  * Pioneers of the Inevitable, the creators of the Songbird Music player
diff --git a/sys/osxaudio/gstosxaudiosrc.c b/sys/osxaudio/gstosxaudiosrc.c
index 5f788c37c..fa5da162f 100644
--- a/sys/osxaudio/gstosxaudiosrc.c
+++ b/sys/osxaudio/gstosxaudiosrc.c
@@ -38,8 +38,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/sys/osxaudio/gstosxaudiosrc.h b/sys/osxaudio/gstosxaudiosrc.h
index 3d6768a03..a5f5d8411 100644
--- a/sys/osxaudio/gstosxaudiosrc.h
+++ b/sys/osxaudio/gstosxaudiosrc.h
@@ -37,8 +37,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_OSXAUDIOSRC_H__
diff --git a/sys/osxaudio/gstosxcoreaudio.h b/sys/osxaudio/gstosxcoreaudio.h
index 71fcfa65c..421ff6245 100644
--- a/sys/osxaudio/gstosxcoreaudio.h
+++ b/sys/osxaudio/gstosxcoreaudio.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  */
 
diff --git a/sys/osxvideo/Makefile.in b/sys/osxvideo/Makefile.in
index c40ae5fad..78baa1e81 100644
--- a/sys/osxvideo/Makefile.in
+++ b/sys/osxvideo/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/osxvideo
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -137,10 +163,23 @@ libgstosxvideosink_la_OBJECTS = $(am_libgstosxvideosink_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstosxvideosink_la_LINK = $(LIBTOOL) $(AM_V_lt) \
 	$(libgstosxvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(OBJCLD) $(libgstosxvideosink_la_OBJCFLAGS) \
 	$(OBJCFLAGS) $(libgstosxvideosink_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -153,20 +192,16 @@ LTOBJCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \
 	$(AM_OBJCFLAGS) $(OBJCFLAGS)
 AM_V_OBJC = $(am__v_OBJC_@AM_V@)
 am__v_OBJC_ = $(am__v_OBJC_@AM_DEFAULT_V@)
-am__v_OBJC_0 = @echo "  OBJC  " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_OBJC_0 = @echo "  OBJC    " $@;
+am__v_OBJC_1 = 
 OBJCLD = $(OBJC)
 OBJCLINK = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(OBJCLD) $(AM_OBJCFLAGS) $(OBJCFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_OBJCLD = $(am__v_OBJCLD_@AM_V@)
 am__v_OBJCLD_ = $(am__v_OBJCLD_@AM_DEFAULT_V@)
-am__v_OBJCLD_0 = @echo "  OBJCLD" $@;
-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_OBJCLD_0 = @echo "  OBJCLD  " $@;
+am__v_OBJCLD_1 = 
 SOURCES = $(libgstosxvideosink_la_SOURCES)
 DIST_SOURCES = $(libgstosxvideosink_la_SOURCES)
 am__can_run_installinfo = \
@@ -175,6 +210,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -343,6 +395,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -554,6 +607,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -580,12 +634,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstosxvideosink.la: $(libgstosxvideosink_la_OBJECTS) $(libgstosxvideosink_la_DEPENDENCIES) $(EXTRA_libgstosxvideosink_la_DEPENDENCIES) 
 	$(AM_V_OBJCLD)$(libgstosxvideosink_la_LINK) -rpath $(plugindir) $(libgstosxvideosink_la_OBJECTS) $(libgstosxvideosink_la_LIBADD) $(LIBS)
 
@@ -639,26 +696,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -670,15 +716,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -687,6 +729,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -831,19 +888,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/sys/osxvideo/cocoawindow.h b/sys/osxvideo/cocoawindow.h
index 7e69a7bb9..a896d228b 100644
--- a/sys/osxvideo/cocoawindow.h
+++ b/sys/osxvideo/cocoawindow.h
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  * The development of this code was made possible due to the involvement of Pioneers 
  * of the Inevitable, the creators of the Songbird Music player
diff --git a/sys/osxvideo/cocoawindow.m b/sys/osxvideo/cocoawindow.m
index 2b1704b8a..0491ab979 100644
--- a/sys/osxvideo/cocoawindow.m
+++ b/sys/osxvideo/cocoawindow.m
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  * 
  * The development of this code was made possible due to the involvement of Pioneers 
  * of the Inevitable, the creators of the Songbird Music player
diff --git a/sys/osxvideo/osxvideosink.h b/sys/osxvideo/osxvideosink.h
index a842b8c91..da912dfaf 100644
--- a/sys/osxvideo/osxvideosink.h
+++ b/sys/osxvideo/osxvideosink.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  *
  * The development of this code was made possible due to the involvement of Pioneers 
diff --git a/sys/osxvideo/osxvideosink.m b/sys/osxvideo/osxvideosink.m
index 9d8fbd20e..d2555b952 100644
--- a/sys/osxvideo/osxvideosink.m
+++ b/sys/osxvideo/osxvideosink.m
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  * The development of this code was made possible due to the involvement of
  * Pioneers of the Inevitable, the creators of the Songbird Music player.
diff --git a/sys/sunaudio/Makefile.in b/sys/sunaudio/Makefile.in
index 7573827d6..dd9c10bfa 100644
--- a/sys/sunaudio/Makefile.in
+++ b/sys/sunaudio/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/sunaudio
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -141,10 +167,23 @@ libgstsunaudio_la_OBJECTS = $(am_libgstsunaudio_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstsunaudio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) \
 	$(libgstsunaudio_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -157,20 +196,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstsunaudio_la_SOURCES)
 DIST_SOURCES = $(libgstsunaudio_la_SOURCES)
 am__can_run_installinfo = \
@@ -179,6 +214,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -347,6 +399,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -566,6 +619,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -592,12 +646,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstsunaudio.la: $(libgstsunaudio_la_OBJECTS) $(libgstsunaudio_la_DEPENDENCIES) $(EXTRA_libgstsunaudio_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstsunaudio_la_LINK) -rpath $(plugindir) $(libgstsunaudio_la_OBJECTS) $(libgstsunaudio_la_LIBADD) $(LIBS)
 
@@ -691,26 +748,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -722,15 +768,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -739,6 +781,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -883,19 +940,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/sys/sunaudio/gstsunaudio.c b/sys/sunaudio/gstsunaudio.c
index 67bc0b174..433fba248 100644
--- a/sys/sunaudio/gstsunaudio.c
+++ b/sys/sunaudio/gstsunaudio.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/sys/sunaudio/gstsunaudiomixer.c b/sys/sunaudio/gstsunaudiomixer.c
index 3966d3a50..0a431bf19 100644
--- a/sys/sunaudio/gstsunaudiomixer.c
+++ b/sys/sunaudio/gstsunaudiomixer.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/sys/sunaudio/gstsunaudiomixer.h b/sys/sunaudio/gstsunaudiomixer.h
index 7ab6e7458..03292ed96 100644
--- a/sys/sunaudio/gstsunaudiomixer.h
+++ b/sys/sunaudio/gstsunaudiomixer.h
@@ -15,7 +15,7 @@
  *
  * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_SUNAUDIO_MIXER_H__
diff --git a/sys/sunaudio/gstsunaudiomixerctrl.c b/sys/sunaudio/gstsunaudiomixerctrl.c
index 07231348e..32fc4e2d9 100644
--- a/sys/sunaudio/gstsunaudiomixerctrl.c
+++ b/sys/sunaudio/gstsunaudiomixerctrl.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/sys/sunaudio/gstsunaudiomixerctrl.h b/sys/sunaudio/gstsunaudiomixerctrl.h
index 2ca17f0ed..f9aa477b9 100644
--- a/sys/sunaudio/gstsunaudiomixerctrl.h
+++ b/sys/sunaudio/gstsunaudiomixerctrl.h
@@ -17,7 +17,7 @@
  *
  * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_SUNAUDIO_MIXER_CTRL_H
diff --git a/sys/sunaudio/gstsunaudiomixeroptions.c b/sys/sunaudio/gstsunaudiomixeroptions.c
index 1fa025b9e..4637d8288 100644
--- a/sys/sunaudio/gstsunaudiomixeroptions.c
+++ b/sys/sunaudio/gstsunaudiomixeroptions.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/sys/sunaudio/gstsunaudiomixeroptions.h b/sys/sunaudio/gstsunaudiomixeroptions.h
index fb02b46e0..e27ef21b7 100644
--- a/sys/sunaudio/gstsunaudiomixeroptions.h
+++ b/sys/sunaudio/gstsunaudiomixeroptions.h
@@ -18,7 +18,7 @@
  *
  * 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,
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
  */
 
 #ifndef __GST_SUNAUDIO_MIXER_OPTIONS_H__
diff --git a/sys/sunaudio/gstsunaudiomixertrack.c b/sys/sunaudio/gstsunaudiomixertrack.c
index 786ef0d83..43bf0442a 100644
--- a/sys/sunaudio/gstsunaudiomixertrack.c
+++ b/sys/sunaudio/gstsunaudiomixertrack.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/sys/sunaudio/gstsunaudiomixertrack.h b/sys/sunaudio/gstsunaudiomixertrack.h
index 83be9fcd2..278ed81fb 100644
--- a/sys/sunaudio/gstsunaudiomixertrack.h
+++ b/sys/sunaudio/gstsunaudiomixertrack.h
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_SUNAUDIO_MIXER_TRACK_H__
diff --git a/sys/sunaudio/gstsunaudiosink.c b/sys/sunaudio/gstsunaudiosink.c
index 19cdd215a..99e08eaed 100644
--- a/sys/sunaudio/gstsunaudiosink.c
+++ b/sys/sunaudio/gstsunaudiosink.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/sys/sunaudio/gstsunaudiosink.h b/sys/sunaudio/gstsunaudiosink.h
index 94544752c..fb30e6a80 100644
--- a/sys/sunaudio/gstsunaudiosink.h
+++ b/sys/sunaudio/gstsunaudiosink.h
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_SUNAUDIO_SINK_H__
diff --git a/sys/sunaudio/gstsunaudiosrc.c b/sys/sunaudio/gstsunaudiosrc.c
index 9d5d60d9c..ec1d7d7a4 100644
--- a/sys/sunaudio/gstsunaudiosrc.c
+++ b/sys/sunaudio/gstsunaudiosrc.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/sys/sunaudio/gstsunaudiosrc.h b/sys/sunaudio/gstsunaudiosrc.h
index 95d96134b..e165f3be9 100644
--- a/sys/sunaudio/gstsunaudiosrc.h
+++ b/sys/sunaudio/gstsunaudiosrc.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_SUNAUDIO_SRC_H__
diff --git a/sys/v4l2/Makefile.am b/sys/v4l2/Makefile.am
index efdabeb6b..cec939bf2 100644
--- a/sys/v4l2/Makefile.am
+++ b/sys/v4l2/Makefile.am
@@ -8,7 +8,6 @@ xv_source =
 xv_libs =
 endif
 
-
 # variables used for enum/marshal generation
 glib_enum_headers = tuner.h tunernorm.h	tunerchannel.h
 glib_enum_define = GST_INTERFACES
@@ -56,15 +55,15 @@ libgstvideo4linux2_la_CFLAGS =   $(GST_PLUGINS_BASE_CFLAGS) \
 
 libgstvideo4linux2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstvideo4linux2_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
-
 libgstvideo4linux2_la_LIBADD =   $(GST_PLUGINS_BASE_LIBS) \
-				 $(GST_BASE_LIBS) \
-				 $(GST_PLUGINS_BASE_LIBS) \
+				 -lgstallocators-$(GST_API_VERSION) \
 				 -lgstvideo-$(GST_API_VERSION) \
+				 $(GST_BASE_LIBS) \
 				 $(GST_LIBS) \
 				 $(xv_libs) \
 				 $(LIBV4L2_LIBS) \
-				 $(GUDEV_LIBS)
+				 $(GUDEV_LIBS) \
+				 $(LIBRT)
 
 noinst_HEADERS = \
 	gstv4l2bufferpool.h \
diff --git a/sys/v4l2/Makefile.in b/sys/v4l2/Makefile.in
index 8bb3d1f72..53956932a 100644
--- a/sys/v4l2/Makefile.in
+++ b/sys/v4l2/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +24,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -61,8 +88,9 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/common/gst-glib-gen.mak
+DIST_COMMON = $(top_srcdir)/common/gst-glib-gen.mak \
+	$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 subdir = sys/v4l2
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -70,7 +98,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-gcc-inline-assembly.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 \
@@ -140,7 +167,7 @@ am__DEPENDENCIES_1 =
 @USE_XVIDEO_TRUE@	$(am__DEPENDENCIES_1)
 libgstvideo4linux2_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
+	$(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am__libgstvideo4linux2_la_SOURCES_DIST = gstv4l2.c \
 	gstv4l2colorbalance.c gstv4l2object.c gstv4l2bufferpool.c \
@@ -172,10 +199,23 @@ libgstvideo4linux2_la_OBJECTS = $(am_libgstvideo4linux2_la_OBJECTS) \
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstvideo4linux2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) \
 	$(libgstvideo4linux2_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -188,20 +228,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstvideo4linux2_la_SOURCES) \
 	$(nodist_libgstvideo4linux2_la_SOURCES)
 DIST_SOURCES = $(am__libgstvideo4linux2_la_SOURCES_DIST)
@@ -211,6 +247,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -379,6 +432,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -588,13 +642,14 @@ libgstvideo4linux2_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
 libgstvideo4linux2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstvideo4linux2_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 libgstvideo4linux2_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
-				 $(GST_BASE_LIBS) \
-				 $(GST_PLUGINS_BASE_LIBS) \
+				 -lgstallocators-$(GST_API_VERSION) \
 				 -lgstvideo-$(GST_API_VERSION) \
+				 $(GST_BASE_LIBS) \
 				 $(GST_LIBS) \
 				 $(xv_libs) \
 				 $(LIBV4L2_LIBS) \
-				 $(GUDEV_LIBS)
+				 $(GUDEV_LIBS) \
+				 $(LIBRT)
 
 noinst_HEADERS = \
 	gstv4l2bufferpool.h \
@@ -647,6 +702,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -673,12 +729,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstvideo4linux2.la: $(libgstvideo4linux2_la_OBJECTS) $(libgstvideo4linux2_la_DEPENDENCIES) $(EXTRA_libgstvideo4linux2_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstvideo4linux2_la_LINK) -rpath $(plugindir) $(libgstvideo4linux2_la_OBJECTS) $(libgstvideo4linux2_la_LIBADD) $(LIBS)
 
@@ -844,26 +903,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -875,15 +923,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -892,6 +936,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -1040,19 +1099,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # these are all the rules generating the relevant files
diff --git a/sys/v4l2/gstv4l2.c b/sys/v4l2/gstv4l2.c
index 23a5add47..12b247fb2 100644
--- a/sys/v4l2/gstv4l2.c
+++ b/sys/v4l2/gstv4l2.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
index c43749e0f..1e74fc75b 100644
--- a/sys/v4l2/gstv4l2bufferpool.c
+++ b/sys/v4l2/gstv4l2bufferpool.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -29,15 +29,17 @@
 #include <sys/mman.h>
 #include <string.h>
 #include <unistd.h>
+#if HAVE_DECL_V4L2_MEMORY_DMABUF
+#include <fcntl.h>
+#endif
 
 #include "gst/video/video.h"
 #include "gst/video/gstvideometa.h"
 #include "gst/video/gstvideopool.h"
+#include "gst/allocators/gstdmabuf.h"
 
 #include <gstv4l2bufferpool.h>
 
-#include "gstv4l2src.h"
-#include "gstv4l2sink.h"
 #include "v4l2_calls.h"
 #include "gst/gst-i18n-plugin.h"
 #include <gst/glib-compat-private.h>
@@ -104,6 +106,7 @@ gst_v4l2_buffer_pool_free_buffer (GstBufferPool * bpool, GstBuffer * buffer)
 
   switch (obj->mode) {
     case GST_V4L2_IO_RW:
+    case GST_V4L2_IO_DMABUF:
       break;
     case GST_V4L2_IO_MMAP:
     {
@@ -152,7 +155,30 @@ gst_v4l2_buffer_pool_alloc_buffer (GstBufferPool * bpool, GstBuffer ** buffer,
       break;
     }
     case GST_V4L2_IO_MMAP:
+    case GST_V4L2_IO_DMABUF:
     {
+#ifdef VIDIOC_CREATE_BUFS
+      if (pool->num_allocated == pool->num_buffers) {
+        struct v4l2_create_buffers create_bufs;
+
+        memset (&create_bufs, 0, sizeof (struct v4l2_create_buffers));
+        create_bufs.count = 1;
+        create_bufs.memory = V4L2_MEMORY_MMAP;
+        create_bufs.format.type = obj->type;
+
+        if (v4l2_ioctl (pool->video_fd, VIDIOC_G_FMT, &create_bufs.format) < 0)
+          goto g_fmt_failed;
+
+        if (v4l2_ioctl (pool->video_fd, VIDIOC_CREATE_BUFS, &create_bufs) < 0)
+          goto create_bufs_failed;
+
+        GST_LOG_OBJECT (pool, "created buffer with index: %u",
+            create_bufs.index);
+        pool->num_buffers++;
+        pool->buffers = g_renew (GstBuffer *, pool->buffers, pool->num_buffers);
+        pool->buffers[pool->num_buffers - 1] = NULL;
+      }
+#endif
       newbuf = gst_buffer_new ();
       meta = GST_V4L2_META_ADD (newbuf);
 
@@ -175,19 +201,36 @@ gst_v4l2_buffer_pool_alloc_buffer (GstBufferPool * bpool, GstBuffer ** buffer,
       GST_LOG_OBJECT (pool, "  memory:    %d", meta->vbuffer.memory);
       if (meta->vbuffer.memory == V4L2_MEMORY_MMAP)
         GST_LOG_OBJECT (pool, "  MMAP offset:  %u", meta->vbuffer.m.offset);
-      GST_LOG_OBJECT (pool, "  length:    %u", meta->vbuffer.length);
-
-      meta->mem = v4l2_mmap (0, meta->vbuffer.length,
-          PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd,
-          meta->vbuffer.m.offset);
-      if (meta->mem == MAP_FAILED)
-        goto mmap_failed;
-
-      gst_buffer_append_memory (newbuf,
-          gst_memory_new_wrapped (GST_MEMORY_FLAG_NO_SHARE,
-              meta->mem, meta->vbuffer.length, 0, meta->vbuffer.length, NULL,
-              NULL));
 
+      if (obj->mode == GST_V4L2_IO_MMAP) {
+        meta->mem = v4l2_mmap (0, meta->vbuffer.length,
+            PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd,
+            meta->vbuffer.m.offset);
+        if (meta->mem == MAP_FAILED)
+          goto mmap_failed;
+
+        gst_buffer_append_memory (newbuf,
+            gst_memory_new_wrapped (GST_MEMORY_FLAG_NO_SHARE,
+                meta->mem, meta->vbuffer.length, 0, meta->vbuffer.length, NULL,
+                NULL));
+      }
+#if HAVE_DECL_V4L2_MEMORY_DMABUF
+      if (obj->mode == GST_V4L2_IO_DMABUF) {
+        struct v4l2_exportbuffer expbuf;
+
+        memset (&expbuf, 0, sizeof (struct v4l2_exportbuffer));
+        expbuf.type = meta->vbuffer.type;
+        expbuf.index = meta->vbuffer.index;
+        expbuf.flags = O_CLOEXEC;
+        if (v4l2_ioctl (pool->video_fd, VIDIOC_EXPBUF, &expbuf) < 0)
+          goto expbuf_failed;
+
+        meta->vbuffer.memory = V4L2_MEMORY_DMABUF;
+        gst_buffer_append_memory (newbuf,
+            gst_dmabuf_allocator_alloc (pool->allocator, expbuf.fd,
+                meta->vbuffer.length));
+      }
+#endif
       /* add metadata to raw video buffers */
       if (pool->add_videometa && info->finfo) {
         const GstVideoFormatInfo *finfo = info->finfo;
@@ -229,6 +272,24 @@ gst_v4l2_buffer_pool_alloc_buffer (GstBufferPool * bpool, GstBuffer ** buffer,
   return GST_FLOW_OK;
 
   /* ERRORS */
+#ifdef VIDIOC_CREATE_BUFS
+g_fmt_failed:
+  {
+    gint errnosave = errno;
+
+    GST_WARNING ("Failed G_FMT: %s", g_strerror (errnosave));
+    errno = errnosave;
+    return GST_FLOW_ERROR;
+  }
+create_bufs_failed:
+  {
+    gint errnosave = errno;
+
+    GST_WARNING ("Failed CREATE_BUFS: %s", g_strerror (errnosave));
+    errno = errnosave;
+    return GST_FLOW_ERROR;
+  }
+#endif
 querybuf_failed:
   {
     gint errnosave = errno;
@@ -247,6 +308,17 @@ mmap_failed:
     errno = errnosave;
     return GST_FLOW_ERROR;
   }
+#if HAVE_DECL_V4L2_MEMORY_DMABUF
+expbuf_failed:
+  {
+    gint errnosave = errno;
+
+    GST_WARNING ("Failed EXPBUF: %s", g_strerror (errnosave));
+    gst_buffer_unref (newbuf);
+    errno = errnosave;
+    return GST_FLOW_ERROR;
+  }
+#endif
 }
 
 static gboolean
@@ -298,6 +370,7 @@ gst_v4l2_buffer_pool_set_config (GstBufferPool * bpool, GstStructure * config)
       num_buffers = 1;
       copy_threshold = 0;
       break;
+    case GST_V4L2_IO_DMABUF:
     case GST_V4L2_IO_MMAP:
     {
       /* request a reasonable number of buffers when no max specified. We will
@@ -357,6 +430,10 @@ gst_v4l2_buffer_pool_set_config (GstBufferPool * bpool, GstStructure * config)
   pool->size = size;
   pool->num_buffers = num_buffers;
   pool->copy_threshold = copy_threshold;
+
+  if (obj->mode == GST_V4L2_IO_DMABUF)
+    allocator = gst_dmabuf_allocator_obtain ();
+
   if (pool->allocator)
     gst_object_unref (pool->allocator);
   if ((pool->allocator = allocator))
@@ -406,6 +483,7 @@ start_streaming (GstV4l2BufferPool * pool)
       break;
     case GST_V4L2_IO_MMAP:
     case GST_V4L2_IO_USERPTR:
+    case GST_V4L2_IO_DMABUF:
       GST_DEBUG_OBJECT (pool, "STREAMON");
       if (v4l2_ioctl (pool->video_fd, VIDIOC_STREAMON, &obj->type) < 0)
         goto start_failed;
@@ -460,6 +538,23 @@ start_failed:
   }
 }
 
+static void
+gst_v4l2_buffer_pool_free_buffers (GstV4l2BufferPool * pool)
+{
+  if (pool->num_buffers > 0) {
+    struct v4l2_requestbuffers breq;
+    memset (&breq, 0, sizeof (struct v4l2_requestbuffers));
+    breq.type = pool->obj->type;
+    breq.count = 0;
+    breq.memory = V4L2_MEMORY_MMAP;
+    if (v4l2_ioctl (pool->video_fd, VIDIOC_REQBUFS, &breq) < 0) {
+      GST_ERROR_OBJECT (pool, "error releasing buffers: %s",
+          g_strerror (errno));
+    }
+    pool->num_buffers = 0;
+  }
+}
+
 static gboolean
 gst_v4l2_buffer_pool_stop (GstBufferPool * bpool)
 {
@@ -478,6 +573,7 @@ gst_v4l2_buffer_pool_stop (GstBufferPool * bpool)
         break;
       case GST_V4L2_IO_MMAP:
       case GST_V4L2_IO_USERPTR:
+      case GST_V4L2_IO_DMABUF:
         /* we actually need to sync on all queued buffers but not
          * on the non-queued ones */
         GST_DEBUG_OBJECT (pool, "STREAMOFF");
@@ -503,6 +599,8 @@ gst_v4l2_buffer_pool_stop (GstBufferPool * bpool)
   g_free (pool->buffers);
   pool->buffers = NULL;
 
+  gst_v4l2_buffer_pool_free_buffers (pool);
+
   return ret;
 
   /* ERRORS */
@@ -566,9 +664,12 @@ gst_v4l2_buffer_pool_qbuf (GstV4l2BufferPool * pool, GstBuffer * buf)
   }
 
   index = meta->vbuffer.index;
+  meta->vbuffer.bytesused = gst_buffer_get_size (buf);
 
-  GST_LOG_OBJECT (pool, "enqueue buffer %p, index:%d, queued:%d, flags:%08x",
-      buf, index, pool->num_queued, meta->vbuffer.flags);
+  GST_LOG_OBJECT (pool,
+      "enqueue buffer %p, index:%d, queued:%d, flags:%08x used:%d",
+      buf, index, pool->num_queued, meta->vbuffer.flags,
+      meta->vbuffer.bytesused);
 
   if (pool->buffers[index] != NULL)
     goto already_queued;
@@ -605,17 +706,17 @@ gst_v4l2_buffer_pool_dqbuf (GstV4l2BufferPool * pool, GstBuffer ** buffer)
   GstV4l2Object *obj = pool->obj;
   GstClockTime timestamp;
 
-  if (obj->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) {
-    /* select works for input devices when data is available. According to the
-     * specs we can also poll to find out when a frame has been displayed but
-     * that just seems to lock up here */
-    if ((res = gst_v4l2_object_poll (obj)) != GST_FLOW_OK)
-      goto poll_error;
-  }
+  if ((res = gst_v4l2_object_poll (obj)) != GST_FLOW_OK)
+    goto poll_error;
 
   memset (&vbuffer, 0x00, sizeof (vbuffer));
   vbuffer.type = obj->type;
-  vbuffer.memory = V4L2_MEMORY_MMAP;
+#if HAVE_DECL_V4L2_MEMORY_DMABUF
+  if (obj->mode == GST_V4L2_IO_DMABUF)
+    vbuffer.memory = V4L2_MEMORY_DMABUF;
+  else
+#endif
+    vbuffer.memory = V4L2_MEMORY_MMAP;
 
   GST_LOG_OBJECT (pool, "doing DQBUF");
   if (v4l2_ioctl (pool->video_fd, VIDIOC_DQBUF, &vbuffer) < 0)
@@ -651,8 +752,6 @@ gst_v4l2_buffer_pool_dqbuf (GstV4l2BufferPool * pool, GstBuffer ** buffer)
   /* this can change at every frame, esp. with jpeg */
   if (obj->type == V4L2_BUF_TYPE_VIDEO_CAPTURE)
     gst_buffer_resize (outbuf, 0, vbuffer.bytesused);
-  else
-    gst_buffer_resize (outbuf, 0, vbuffer.length);
 
   GST_BUFFER_TIMESTAMP (outbuf) = timestamp;
 
@@ -744,7 +843,7 @@ gst_v4l2_buffer_pool_acquire_buffer (GstBufferPool * bpool, GstBuffer ** buffer,
           ret = GST_BUFFER_POOL_CLASS (parent_class)->acquire_buffer (bpool,
               buffer, params);
           break;
-
+        case GST_V4L2_IO_DMABUF:
         case GST_V4L2_IO_MMAP:
           /* just dequeue a buffer, we basically use the queue of v4l2 as the
            * storage for our buffers. This function does poll first so we can
@@ -756,6 +855,17 @@ gst_v4l2_buffer_pool_acquire_buffer (GstBufferPool * bpool, GstBuffer ** buffer,
           /* start copying buffers when we are running low on buffers */
           if (pool->num_queued < pool->copy_threshold) {
             GstBuffer *copy;
+#ifdef VIDIOC_CREATE_BUFS
+            if (pool->can_alloc) {
+              if (GST_BUFFER_POOL_CLASS (parent_class)->acquire_buffer (bpool,
+                      &copy, params) == GST_FLOW_OK) {
+                gst_v4l2_buffer_pool_release_buffer (bpool, copy);
+                break;
+              } else {
+                pool->can_alloc = FALSE;
+              }
+            }
+#endif
 
             /* copy the memory */
             copy = gst_buffer_copy (*buffer);
@@ -832,6 +942,7 @@ gst_v4l2_buffer_pool_release_buffer (GstBufferPool * bpool, GstBuffer * buffer)
           GST_BUFFER_POOL_CLASS (parent_class)->release_buffer (bpool, buffer);
           break;
 
+        case GST_V4L2_IO_DMABUF:
         case GST_V4L2_IO_MMAP:
           /* queue back in the device */
           gst_v4l2_buffer_pool_qbuf (pool, buffer);
@@ -854,12 +965,20 @@ gst_v4l2_buffer_pool_release_buffer (GstBufferPool * bpool, GstBuffer * buffer)
         case GST_V4L2_IO_MMAP:
         {
           GstV4l2Meta *meta;
+          guint index;
 
           meta = GST_V4L2_META_GET (buffer);
           g_assert (meta != NULL);
 
-          if (pool->buffers[meta->vbuffer.index] == NULL) {
-            GST_LOG_OBJECT (pool, "buffer not queued, putting on free list");
+          index = meta->vbuffer.index;
+
+          if (pool->buffers[index] == NULL) {
+            GST_LOG_OBJECT (pool, "buffer %u not queued, putting on free list",
+                index);
+
+            /* reset to the full length, in case it was changed */
+            gst_buffer_resize (buffer, 0, meta->vbuffer.length);
+
             /* playback, put the buffer back in the queue to refill later. */
             GST_BUFFER_POOL_CLASS (parent_class)->release_buffer (bpool,
                 buffer);
@@ -867,7 +986,7 @@ gst_v4l2_buffer_pool_release_buffer (GstBufferPool * bpool, GstBuffer * buffer)
             /* the buffer is queued in the device but maybe not played yet. We just
              * leave it there and not make it available for future calls to acquire
              * for now. The buffer will be dequeued and reused later. */
-            GST_LOG_OBJECT (pool, "buffer is queued");
+            GST_LOG_OBJECT (pool, "buffer %u is queued", index);
           }
           break;
         }
@@ -890,12 +1009,16 @@ gst_v4l2_buffer_pool_finalize (GObject * object)
 {
   GstV4l2BufferPool *pool = GST_V4L2_BUFFER_POOL (object);
 
+  gst_v4l2_buffer_pool_free_buffers (pool);
+
   if (pool->video_fd >= 0)
     v4l2_close (pool->video_fd);
   if (pool->allocator)
     gst_object_unref (pool->allocator);
   g_free (pool->buffers);
 
+  gst_object_unref (pool->obj->element);
+
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
@@ -943,11 +1066,14 @@ gst_v4l2_buffer_pool_new (GstV4l2Object * obj, GstCaps * caps)
   pool = (GstV4l2BufferPool *) g_object_new (GST_TYPE_V4L2_BUFFER_POOL, NULL);
   pool->video_fd = fd;
   pool->obj = obj;
+  pool->can_alloc = TRUE;
 
   s = gst_buffer_pool_get_config (GST_BUFFER_POOL_CAST (pool));
   gst_buffer_pool_config_set_params (s, caps, obj->sizeimage, 2, 0);
   gst_buffer_pool_set_config (GST_BUFFER_POOL_CAST (pool), s);
 
+  gst_object_ref (obj->element);
+
   return GST_BUFFER_POOL (pool);
 
   /* ERRORS */
@@ -1084,14 +1210,14 @@ gst_v4l2_buffer_pool_process (GstV4l2BufferPool * pool, GstBuffer * buf)
           /* FIXME, do write() */
           GST_WARNING_OBJECT (pool, "implement write()");
           break;
-
+        case GST_V4L2_IO_DMABUF:
         case GST_V4L2_IO_MMAP:
         {
           GstBuffer *to_queue;
 
           if (buf->pool == bpool) {
             /* nothing, we can queue directly */
-            to_queue = buf;
+            to_queue = gst_buffer_ref (buf);
             GST_LOG_OBJECT (pool, "processing buffer from our pool");
           } else {
             GST_LOG_OBJECT (pool, "alloc buffer from our pool");
@@ -1113,8 +1239,7 @@ gst_v4l2_buffer_pool_process (GstV4l2BufferPool * pool, GstBuffer * buf)
             /* this can block if all buffers are outstanding which would be
              * strange because we would expect the upstream element to have
              * allocated them and returned to us.. */
-            ret = GST_BUFFER_POOL_CLASS (parent_class)->acquire_buffer (bpool,
-                &to_queue, NULL);
+            ret = gst_buffer_pool_acquire_buffer (bpool, &to_queue, NULL);
             if (ret != GST_FLOW_OK)
               goto acquire_failed;
 
@@ -1133,16 +1258,22 @@ gst_v4l2_buffer_pool_process (GstV4l2BufferPool * pool, GstBuffer * buf)
               goto start_failed;
 
           if (pool->num_queued == pool->num_allocated) {
+            GstBuffer *out;
             /* all buffers are queued, try to dequeue one and release it back
              * into the pool so that _acquire can get to it again. */
-            ret = gst_v4l2_buffer_pool_dqbuf (pool, &to_queue);
-            if (ret != GST_FLOW_OK)
+            ret = gst_v4l2_buffer_pool_dqbuf (pool, &out);
+            if (ret != GST_FLOW_OK) {
+              gst_buffer_unref (to_queue);
               goto done;
+            }
 
             /* release the rendered buffer back into the pool. This wakes up any
-             * thread waiting for a buffer in _acquire() */
-            gst_v4l2_buffer_pool_release_buffer (bpool, to_queue);
+             * thread waiting for a buffer in _acquire(). If the buffer still has
+             * a pool then this will happen when the refcount reaches 0 */
+            if (!out->pool)
+              gst_v4l2_buffer_pool_release_buffer (bpool, out);
           }
+          gst_buffer_unref (to_queue);
           break;
         }
 
diff --git a/sys/v4l2/gstv4l2bufferpool.h b/sys/v4l2/gstv4l2bufferpool.h
index a9b022e9a..90ccad431 100644
--- a/sys/v4l2/gstv4l2bufferpool.h
+++ b/sys/v4l2/gstv4l2bufferpool.h
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_V4L2_BUFFER_POOL_H__
@@ -55,6 +55,7 @@ struct _GstV4l2BufferPool
   GstAllocationParams params;
   guint size;
   gboolean add_videometa;
+  gboolean can_alloc;        /* if extra buffers can be allocated */
 
   guint num_buffers;         /* number of buffers we use */
   guint num_allocated;       /* number of buffers allocated by the driver */
diff --git a/sys/v4l2/gstv4l2colorbalance.c b/sys/v4l2/gstv4l2colorbalance.c
index a07c9be31..7b369789f 100644
--- a/sys/v4l2/gstv4l2colorbalance.c
+++ b/sys/v4l2/gstv4l2colorbalance.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/sys/v4l2/gstv4l2colorbalance.h b/sys/v4l2/gstv4l2colorbalance.h
index cd720a423..e3be0d490 100644
--- a/sys/v4l2/gstv4l2colorbalance.h
+++ b/sys/v4l2/gstv4l2colorbalance.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_V4L2_COLOR_BALANCE_H__
diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
index 843f3b425..8de234a2f 100644
--- a/sys/v4l2/gstv4l2object.c
+++ b/sys/v4l2/gstv4l2object.c
@@ -14,7 +14,7 @@
  * 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,
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
  * USA.
  */
 
@@ -389,6 +389,7 @@ gst_v4l2_io_mode_get_type (void)
       {GST_V4L2_IO_RW, "GST_V4L2_IO_RW", "rw"},
       {GST_V4L2_IO_MMAP, "GST_V4L2_IO_MMAP", "mmap"},
       {GST_V4L2_IO_USERPTR, "GST_V4L2_IO_USERPTR", "userptr"},
+      {GST_V4L2_IO_DMABUF, "GST_V4L2_IO_DMABUF", "dmabuf"},
 
       {0, NULL, NULL}
     };
@@ -489,6 +490,47 @@ gst_v4l2_object_install_properties_helper (GObjectClass * gobject_class,
           "I/O mode",
           GST_TYPE_V4L2_IO_MODE, DEFAULT_PROP_IO_MODE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstV4l2Src:extra-controls
+   *
+   * Additional v4l2 controls for the device. The controls are identified
+   * by the control name (lowercase with '_' for any non-alphanumeric
+   * characters).
+   *
+   * Since: 1.2
+   */
+  g_object_class_install_property (gobject_class, PROP_EXTRA_CONTROLS,
+      g_param_spec_boxed ("extra-controls", "Extra Controls",
+          "Extra v4l2 controls (CIDs) for the device",
+          GST_TYPE_STRUCTURE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstV4l2Src:pixel-aspect-ratio
+   *
+   * The pixel aspect ratio of the device. This overwrites the pixel aspect
+   * ratio queried from the device.
+   *
+   * Since: 1.2
+   */
+  g_object_class_install_property (gobject_class, PROP_PIXEL_ASPECT_RATIO,
+      g_param_spec_string ("pixel-aspect-ratio", "Pixel Aspect Ratio",
+          "Overwrite the pixel aspect ratio of the device", "1/1",
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstV4l2Src:force-aspect-ratio
+   *
+   * When enabled, the pixel aspect ratio queried from the device or set
+   * with the pixel-aspect-ratio property will be enforced.
+   *
+   * Since: 1.2
+   */
+  g_object_class_install_property (gobject_class, PROP_FORCE_ASPECT_RATIO,
+      g_param_spec_boolean ("force-aspect-ratio", "Force aspect ratio",
+          "When enabled, the pixel aspect ratio will be enforced", TRUE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
 }
 
 GstV4l2Object *
@@ -525,6 +567,8 @@ gst_v4l2_object_new (GstElement * element,
 
   v4l2object->xwindow_id = 0;
 
+  v4l2object->keep_aspect = TRUE;
+
   return v4l2object;
 }
 
@@ -653,6 +697,32 @@ gst_v4l2_object_set_property_helper (GstV4l2Object * v4l2object,
     case PROP_IO_MODE:
       v4l2object->req_mode = g_value_get_enum (value);
       break;
+    case PROP_EXTRA_CONTROLS:{
+      const GstStructure *s = gst_value_get_structure (value);
+
+      if (v4l2object->extra_controls)
+        gst_structure_free (v4l2object->extra_controls);
+
+      v4l2object->extra_controls = s ? gst_structure_copy (s) : NULL;
+      if (GST_V4L2_IS_OPEN (v4l2object))
+        gst_v4l2_set_controls (v4l2object, v4l2object->extra_controls);
+      break;
+    }
+    case PROP_PIXEL_ASPECT_RATIO:
+      g_free (v4l2object->par);
+      v4l2object->par = g_new0 (GValue, 1);
+      g_value_init (v4l2object->par, GST_TYPE_FRACTION);
+      if (!g_value_transform (value, v4l2object->par)) {
+        g_warning ("Could not transform string to aspect ratio");
+        gst_value_set_fraction (v4l2object->par, 1, 1);
+      }
+      GST_DEBUG_OBJECT (v4l2object->element, "set PAR to %d/%d",
+          gst_value_get_fraction_numerator (v4l2object->par),
+          gst_value_get_fraction_denominator (v4l2object->par));
+      break;
+    case PROP_FORCE_ASPECT_RATIO:
+      v4l2object->keep_aspect = g_value_get_boolean (value);
+      break;
     default:
       return FALSE;
       break;
@@ -729,6 +799,16 @@ gst_v4l2_object_get_property_helper (GstV4l2Object * v4l2object,
     case PROP_IO_MODE:
       g_value_set_enum (value, v4l2object->req_mode);
       break;
+    case PROP_EXTRA_CONTROLS:
+      gst_value_set_structure (value, v4l2object->extra_controls);
+      break;
+    case PROP_PIXEL_ASPECT_RATIO:
+      if (v4l2object->par)
+        g_value_transform (v4l2object->par, value);
+      break;
+    case PROP_FORCE_ASPECT_RATIO:
+      g_value_set_boolean (value, v4l2object->keep_aspect);
+      break;
     default:
       return FALSE;
       break;
@@ -879,7 +959,13 @@ static const GstV4L2FormatDesc gst_v4l2_formats[] = {
 #endif
   {V4L2_PIX_FMT_DV, TRUE},
   {V4L2_PIX_FMT_MPEG, FALSE},
+#ifdef V4L2_PIX_FMT_MPEG4
+  {V4L2_PIX_FMT_MPEG4, TRUE},
+#endif
 
+#ifdef V4L2_PIX_FMT_H263
+  {V4L2_PIX_FMT_H263, TRUE},
+#endif
 #ifdef V4L2_PIX_FMT_H264
   {V4L2_PIX_FMT_H264, TRUE},
 #endif
@@ -1203,6 +1289,19 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
     case V4L2_PIX_FMT_HI240:   /*  8  8-bit color   */
       /* FIXME: get correct fourccs here */
       break;
+#ifdef V4L2_PIX_FMT_MPEG4
+    case V4L2_PIX_FMT_MPEG4:
+      structure = gst_structure_new ("video/mpeg",
+          "mpegversion", G_TYPE_INT, 4, "systemstream",
+          G_TYPE_BOOLEAN, FALSE, NULL);
+      break;
+#endif
+#ifdef V4L2_PIX_FMT_H263
+    case V4L2_PIX_FMT_H263:
+      structure = gst_structure_new ("video/x-h263",
+          "variant", G_TYPE_STRING, "itu", NULL);
+      break;
+#endif
 #ifdef V4L2_PIX_FMT_H264
     case V4L2_PIX_FMT_H264:    /* H.264 */
       structure = gst_structure_new_empty ("video/x-h264");
@@ -1403,11 +1502,10 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
 
   mimetype = gst_structure_get_name (structure);
 
-  if (g_str_equal (mimetype, "video/x-raw")) {
-    /* raw caps, parse into video info */
-    if (!gst_video_info_from_caps (info, caps))
-      goto invalid_format;
+  if (!gst_video_info_from_caps (info, caps))
+    goto invalid_format;
 
+  if (g_str_equal (mimetype, "video/x-raw")) {
     switch (GST_VIDEO_INFO_FORMAT (info)) {
       case GST_VIDEO_FORMAT_I420:
         fourcc = V4L2_PIX_FMT_YUV420;
@@ -1469,18 +1567,20 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
         break;
     }
   } else {
-    gboolean dimensions = TRUE;
-
-    /* no video caps, construct videoinfo ourselves */
-    gst_video_info_init (info);
-
     if (g_str_equal (mimetype, "video/mpegts")) {
       fourcc = V4L2_PIX_FMT_MPEG;
-      dimensions = FALSE;
     } else if (g_str_equal (mimetype, "video/x-dv")) {
       fourcc = V4L2_PIX_FMT_DV;
     } else if (g_str_equal (mimetype, "image/jpeg")) {
       fourcc = V4L2_PIX_FMT_JPEG;
+#ifdef V4L2_PIX_FMT_MPEG4
+    } else if (g_str_equal (mimetype, "video/mpeg")) {
+      fourcc = V4L2_PIX_FMT_MPEG4;
+#endif
+#ifdef V4L2_PIX_FMT_H263
+    } else if (g_str_equal (mimetype, "video/x-h263")) {
+      fourcc = V4L2_PIX_FMT_H263;
+#endif
 #ifdef V4L2_PIX_FMT_H264
     } else if (g_str_equal (mimetype, "video/x-h264")) {
       fourcc = V4L2_PIX_FMT_H264;
@@ -1502,26 +1602,6 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
       fourcc = V4L2_PIX_FMT_PWC2;
     }
 #endif
-
-    if (dimensions) {
-      const gchar *interlace_mode;
-
-      if (!gst_structure_get_int (structure, "width", &info->width))
-        goto no_width;
-
-      if (!gst_structure_get_int (structure, "height", &info->height))
-        goto no_height;
-
-      interlace_mode = gst_structure_get_string (structure, "interlace-mode");
-      if (g_str_equal (interlace_mode, "progressive")) {
-        info->interlace_mode = GST_VIDEO_INTERLACE_MODE_PROGRESSIVE;
-      } else {
-        info->interlace_mode = GST_VIDEO_INTERLACE_MODE_MIXED;
-      }
-      if (!gst_structure_get_fraction (structure, "framerate", &info->fps_n,
-              &info->fps_d))
-        goto no_framerate;
-    }
   }
 
   if (fourcc == 0)
@@ -1536,21 +1616,6 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
   return TRUE;
 
   /* ERRORS */
-no_width:
-  {
-    GST_DEBUG_OBJECT (v4l2object, "no width");
-    return FALSE;
-  }
-no_height:
-  {
-    GST_DEBUG_OBJECT (v4l2object, "no height");
-    return FALSE;
-  }
-no_framerate:
-  {
-    GST_DEBUG_OBJECT (v4l2object, "no framerate");
-    return FALSE;
-  }
 invalid_format:
   {
     GST_DEBUG_OBJECT (v4l2object, "invalid format");
@@ -1573,6 +1638,43 @@ static gboolean
 gst_v4l2_object_get_nearest_size (GstV4l2Object * v4l2object,
     guint32 pixelformat, gint * width, gint * height, gboolean * interlaced);
 
+static void
+gst_v4l2_object_add_aspect_ratio (GstV4l2Object * v4l2object, GstStructure * s)
+{
+  struct v4l2_cropcap cropcap;
+  int num = 1, den = 1;
+
+  if (!v4l2object->keep_aspect)
+    return;
+
+  if (v4l2object->par) {
+    num = gst_value_get_fraction_numerator (v4l2object->par);
+    den = gst_value_get_fraction_denominator (v4l2object->par);
+    goto done;
+  }
+
+  memset (&cropcap, 0, sizeof (cropcap));
+
+  cropcap.type = v4l2object->type;
+  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_CROPCAP, &cropcap) < 0)
+    goto cropcap_failed;
+
+  num = cropcap.pixelaspect.numerator;
+  den = cropcap.pixelaspect.denominator;
+
+done:
+  gst_structure_set (s, "pixel-aspect-ratio", GST_TYPE_FRACTION, num, den,
+      NULL);
+  return;
+
+cropcap_failed:
+  if (errno != ENOTTY)
+    GST_WARNING_OBJECT (v4l2object->element,
+        "Failed to probe pixel aspect ratio with VIDIOC_CROPCAP: %s",
+        g_strerror (errno));
+  goto done;
+}
+
 
 /* The frame interval enumeration code first appeared in Linux 2.6.19. */
 #ifdef VIDIOC_ENUM_FRAMEINTERVALS
@@ -1759,9 +1861,11 @@ gst_v4l2_object_probe_caps_for_format_and_size (GstV4l2Object * v4l2object,
 return_data:
   s = gst_structure_copy (template);
   gst_structure_set (s, "width", G_TYPE_INT, (gint) width,
-      "height", G_TYPE_INT, (gint) height,
-      "interlace-mode", G_TYPE_STRING, (interlaced ? "mixed" : "progressive"),
-      "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1, NULL);
+      "height", G_TYPE_INT, (gint) height, NULL);
+  gst_v4l2_object_add_aspect_ratio (v4l2object, s);
+  if (g_str_equal (gst_structure_get_name (s), "video/x-raw"))
+    gst_structure_set (s, "interlace-mode", G_TYPE_STRING,
+        (interlaced ? "mixed" : "progressive"), NULL);
 
   if (G_IS_VALUE (&rates)) {
     /* only change the framerate on the template when we have a valid probed new
@@ -2021,10 +2125,10 @@ default_frame_sizes:
     else
       gst_structure_set (tmp, "height", GST_TYPE_INT_RANGE, min_h, max_h, NULL);
 
-    gst_structure_set (tmp, "interlace-mode", G_TYPE_STRING,
-        (interlaced ? "mixed" : "progressive"), NULL);
-    gst_structure_set (tmp, "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1,
-        NULL);
+    if (g_str_equal (gst_structure_get_name (tmp), "video/x-raw"))
+      gst_structure_set (tmp, "interlace-mode", G_TYPE_STRING,
+          (interlaced ? "mixed" : "progressive"), NULL);
+    gst_v4l2_object_add_aspect_ratio (v4l2object, tmp);
 
     gst_caps_append_structure (ret, tmp);
 
@@ -2205,12 +2309,6 @@ no_supported_capture_method:
   }
 }
 
-
-/* Note about fraction simplification
- *  * n1/d1 == n2/d2  is also written as  n1 == ( n2 * d1 ) / d2
- *   */
-#define fractions_are_equal(n1,d1,n2,d2) ((n1) == gst_util_uint64_scale_int((n2), (d1), (d2)))
-
 gboolean
 gst_v4l2_object_set_format (GstV4l2Object * v4l2object, GstCaps * caps)
 {
@@ -2439,7 +2537,7 @@ invalid_pixelformat:
 get_parm_failed:
   {
     /* it's possible that this call is not supported */
-    if (errno != EINVAL) {
+    if (errno != EINVAL && errno != ENOTTY) {
       GST_ELEMENT_WARNING (v4l2object->element, RESOURCE, SETTINGS,
           (_("Could not get parameters on device '%s'"),
               v4l2object->videodev), GST_ERROR_SYSTEM);
@@ -2461,6 +2559,21 @@ pool_failed:
   }
 }
 
+gboolean
+gst_v4l2_object_caps_equal (GstV4l2Object * v4l2object, GstCaps * caps)
+{
+  GstStructure *s;
+  GstCaps *oldcaps;
+
+  if (!v4l2object->pool)
+    return FALSE;
+
+  s = gst_buffer_pool_get_config (GST_BUFFER_POOL_CAST (v4l2object->pool));
+  gst_buffer_pool_config_get_params (s, &oldcaps, NULL, NULL, NULL);
+
+  return oldcaps && gst_caps_is_equal (caps, oldcaps);
+}
+
 gboolean
 gst_v4l2_object_unlock (GstV4l2Object * v4l2object)
 {
@@ -2506,7 +2619,10 @@ gboolean
 gst_v4l2_object_copy (GstV4l2Object * v4l2object, GstBuffer * dest,
     GstBuffer * src)
 {
-  if (v4l2object->info.finfo) {
+  const GstVideoFormatInfo *finfo = v4l2object->info.finfo;
+
+  if (finfo && (finfo->format != GST_VIDEO_FORMAT_UNKNOWN &&
+          finfo->format != GST_VIDEO_FORMAT_ENCODED)) {
     GstVideoFrame src_frame, dest_frame;
 
     GST_DEBUG_OBJECT (v4l2object->element, "copy video frame");
@@ -2530,8 +2646,9 @@ gst_v4l2_object_copy (GstV4l2Object * v4l2object, GstBuffer * dest,
 
     GST_DEBUG_OBJECT (v4l2object->element, "copy raw bytes");
     gst_buffer_map (src, &map, GST_MAP_READ);
-    gst_buffer_fill (dest, 0, map.data, map.size);
+    gst_buffer_fill (dest, 0, map.data, gst_buffer_get_size (src));
     gst_buffer_unmap (src, &map);
+    gst_buffer_resize (dest, 0, gst_buffer_get_size (src));
   }
   GST_CAT_LOG_OBJECT (GST_CAT_PERFORMANCE, v4l2object->element,
       "slow copy into buffer %p", dest);
diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h
index 9b3c5d270..1876f5992 100644
--- a/sys/v4l2/gstv4l2object.h
+++ b/sys/v4l2/gstv4l2object.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_V4L2_OBJECT_H__
@@ -75,7 +75,8 @@ typedef enum {
   GST_V4L2_IO_AUTO    = 0,
   GST_V4L2_IO_RW      = 1,
   GST_V4L2_IO_MMAP    = 2,
-  GST_V4L2_IO_USERPTR = 3
+  GST_V4L2_IO_USERPTR = 3,
+  GST_V4L2_IO_DMABUF  = 4
 } GstV4l2IOMode;
 
 typedef gboolean  (*GstV4l2GetInOutFunction)  (GstV4l2Object * v4l2object, gint * input);
@@ -142,11 +143,15 @@ struct _GstV4l2Object {
   GList *colors;
   GList *norms;
   GList *channels;
+  GData *controls;
 
   /* properties */
   v4l2_std_id tv_norm;
   gchar *channel;
   gulong frequency;
+  GstStructure *extra_controls;
+  gboolean keep_aspect;
+  GValue *par;
 
   /* X-overlay */
   GstV4l2Xv *xv;
@@ -175,7 +180,10 @@ GType gst_v4l2_object_get_type (void);
     PROP_SATURATION,			\
     PROP_HUE,                           \
     PROP_TV_NORM,                       \
-    PROP_IO_MODE
+    PROP_IO_MODE,                       \
+    PROP_EXTRA_CONTROLS,                \
+    PROP_PIXEL_ASPECT_RATIO,            \
+    PROP_FORCE_ASPECT_RATIO
 
 /* create/destroy */
 GstV4l2Object *	gst_v4l2_object_new 		 (GstElement * element,
@@ -226,6 +234,8 @@ GstStructure* gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc);
 
 gboolean      gst_v4l2_object_set_format (GstV4l2Object *v4l2object, GstCaps * caps);
 
+gboolean      gst_v4l2_object_caps_equal  (GstV4l2Object * v4l2object, GstCaps * caps);
+
 gboolean      gst_v4l2_object_unlock      (GstV4l2Object *v4l2object);
 gboolean      gst_v4l2_object_unlock_stop (GstV4l2Object *v4l2object);
 
diff --git a/sys/v4l2/gstv4l2radio.c b/sys/v4l2/gstv4l2radio.c
index 831db61ee..7a6463c1a 100644
--- a/sys/v4l2/gstv4l2radio.c
+++ b/sys/v4l2/gstv4l2radio.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/sys/v4l2/gstv4l2radio.h b/sys/v4l2/gstv4l2radio.h
index 68b7ec391..2fda4fb46 100644
--- a/sys/v4l2/gstv4l2radio.h
+++ b/sys/v4l2/gstv4l2radio.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_V4L2RADIO_H__
diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
index 115f0578e..b291aa889 100644
--- a/sys/v4l2/gstv4l2sink.c
+++ b/sys/v4l2/gstv4l2sink.c
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -574,6 +574,10 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
     return FALSE;
   }
 
+  /* make sure the caps changed before doing anything */
+  if (gst_v4l2_object_caps_equal (obj, caps))
+    return TRUE;
+
   if (!gst_v4l2_object_stop (obj))
     goto stop_failed;
 
diff --git a/sys/v4l2/gstv4l2sink.h b/sys/v4l2/gstv4l2sink.h
index b461e2c92..eb31ff7a2 100644
--- a/sys/v4l2/gstv4l2sink.h
+++ b/sys/v4l2/gstv4l2sink.h
@@ -18,8 +18,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GSTV4L2SINK_H__
diff --git a/sys/v4l2/gstv4l2src.c b/sys/v4l2/gstv4l2src.c
index ce92d36ab..107ea21ba 100644
--- a/sys/v4l2/gstv4l2src.c
+++ b/sys/v4l2/gstv4l2src.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -128,7 +128,6 @@ static gboolean gst_v4l2src_decide_allocation (GstBaseSrc * src,
     GstQuery * query);
 static GstFlowReturn gst_v4l2src_fill (GstPushSrc * src, GstBuffer * out);
 static GstCaps *gst_v4l2src_fixate (GstBaseSrc * basesrc, GstCaps * caps);
-static gboolean gst_v4l2src_event (GstBaseSrc * src, GstEvent * event);
 static gboolean gst_v4l2src_negotiate (GstBaseSrc * basesrc);
 
 static void gst_v4l2src_set_property (GObject * object, guint prop_id,
@@ -163,9 +162,7 @@ gst_v4l2src_class_init (GstV4l2SrcClass * klass)
    * GstV4l2Src::prepare-format:
    * @v4l2src: the v4l2src instance
    * @fd: the file descriptor of the current device
-   * @fourcc: the fourcc of the format being set
-   * @width: The width of the video
-   * @height: The height of the video
+   * @caps: the caps of the format being set
    *
    * This signal gets emitted before calling the v4l2 VIDIOC_S_FMT ioctl
    * (set format). This allows for any custom configuration of the device to
@@ -178,9 +175,7 @@ gst_v4l2src_class_init (GstV4l2SrcClass * klass)
   gst_v4l2_signals[SIGNAL_PRE_SET_FORMAT] = g_signal_new ("prepare-format",
       G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST,
-      0,
-      NULL, NULL,
-      NULL, G_TYPE_NONE, 4, G_TYPE_INT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT);
+      0, NULL, NULL, NULL, G_TYPE_NONE, 2, G_TYPE_INT, GST_TYPE_CAPS);
 
   gst_element_class_set_static_metadata (element_class,
       "Video (video4linux2) Source", "Source/Video",
@@ -201,7 +196,6 @@ gst_v4l2src_class_init (GstV4l2SrcClass * klass)
   basesrc_class->stop = GST_DEBUG_FUNCPTR (gst_v4l2src_stop);
   basesrc_class->query = GST_DEBUG_FUNCPTR (gst_v4l2src_query);
   basesrc_class->fixate = GST_DEBUG_FUNCPTR (gst_v4l2src_fixate);
-  basesrc_class->event = GST_DEBUG_FUNCPTR (gst_v4l2src_event);
   basesrc_class->negotiate = GST_DEBUG_FUNCPTR (gst_v4l2src_negotiate);
   basesrc_class->decide_allocation =
       GST_DEBUG_FUNCPTR (gst_v4l2src_decide_allocation);
@@ -310,30 +304,23 @@ gst_v4l2src_fixate (GstBaseSrc * basesrc, GstCaps * caps)
 }
 
 
-static gboolean
-gst_v4l2src_event (GstBaseSrc * src, GstEvent * event)
-{
-  GST_DEBUG_OBJECT (src, "handle event %" GST_PTR_FORMAT, event);
-
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_RECONFIGURE:
-      gst_pad_check_reconfigure (GST_BASE_SRC_PAD (src));
-      break;
-    default:
-      break;
-  }
-  return GST_BASE_SRC_CLASS (parent_class)->event (src, event);
-}
-
-
 static gboolean
 gst_v4l2src_negotiate (GstBaseSrc * basesrc)
 {
+  GstV4l2Src *v4l2src;
+  GstV4l2Object *obj;
   GstCaps *thiscaps;
   GstCaps *caps = NULL;
   GstCaps *peercaps = NULL;
   gboolean result = FALSE;
 
+  v4l2src = GST_V4L2SRC (basesrc);
+  obj = v4l2src->v4l2object;
+
+  /* We don't allow renegotiation, just return TRUE in that case */
+  if (GST_V4L2_IS_ACTIVE (obj))
+    return TRUE;
+
   /* first see what is possible on our source pad */
   thiscaps = gst_pad_query_caps (GST_BASE_SRC_PAD (basesrc), NULL);
   GST_DEBUG_OBJECT (basesrc, "caps of src: %" GST_PTR_FORMAT, thiscaps);
@@ -343,8 +330,8 @@ gst_v4l2src_negotiate (GstBaseSrc * basesrc)
   if (thiscaps == NULL || gst_caps_is_any (thiscaps))
     goto no_nego_needed;
 
-  /* get the peer caps */
-  peercaps = gst_pad_peer_query_caps (GST_BASE_SRC_PAD (basesrc), thiscaps);
+  /* get the peer caps without a filter as we'll filter ourselves later on */
+  peercaps = gst_pad_peer_query_caps (GST_BASE_SRC_PAD (basesrc), NULL);
   GST_DEBUG_OBJECT (basesrc, "caps of peer: %" GST_PTR_FORMAT, peercaps);
   LOG_CAPS (basesrc, peercaps);
   if (peercaps && !gst_caps_is_any (peercaps)) {
@@ -507,10 +494,17 @@ gst_v4l2src_set_caps (GstBaseSrc * src, GstCaps * caps)
   v4l2src = GST_V4L2SRC (src);
   obj = v4l2src->v4l2object;
 
+  /* make sure the caps changed before doing anything */
+  if (gst_v4l2_object_caps_equal (obj, caps))
+    return TRUE;
+
   /* make sure we stop capturing and dealloc buffers */
   if (!gst_v4l2_object_stop (obj))
     return FALSE;
 
+  g_signal_emit (v4l2src, gst_v4l2_signals[SIGNAL_PRE_SET_FORMAT], 0,
+      v4l2src->v4l2object->video_fd, caps);
+
   if (!gst_v4l2_object_set_format (obj, caps))
     /* error already posted */
     return FALSE;
@@ -572,6 +566,7 @@ gst_v4l2src_decide_allocation (GstBaseSrc * bsrc, GstQuery * query)
       break;
     case GST_V4L2_IO_MMAP:
     case GST_V4L2_IO_USERPTR:
+    case GST_V4L2_IO_DMABUF:
       /* in streaming mode, prefer our own pool */
       pool = GST_BUFFER_POOL_CAST (obj->pool);
       size = obj->sizeimage;
diff --git a/sys/v4l2/gstv4l2src.h b/sys/v4l2/gstv4l2src.h
index db5209243..e7cb04e04 100644
--- a/sys/v4l2/gstv4l2src.h
+++ b/sys/v4l2/gstv4l2src.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_V4L2SRC_H__
diff --git a/sys/v4l2/gstv4l2tuner.c b/sys/v4l2/gstv4l2tuner.c
index c885dc674..536fbbd7c 100644
--- a/sys/v4l2/gstv4l2tuner.c
+++ b/sys/v4l2/gstv4l2tuner.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/sys/v4l2/gstv4l2tuner.h b/sys/v4l2/gstv4l2tuner.h
index 5a6e2f54d..3556502b2 100644
--- a/sys/v4l2/gstv4l2tuner.h
+++ b/sys/v4l2/gstv4l2tuner.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_V4L2_TUNER_H__
diff --git a/sys/v4l2/gstv4l2videooverlay.c b/sys/v4l2/gstv4l2videooverlay.c
index 88ccf5cdf..66d2109be 100644
--- a/sys/v4l2/gstv4l2videooverlay.c
+++ b/sys/v4l2/gstv4l2videooverlay.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/sys/v4l2/gstv4l2videooverlay.h b/sys/v4l2/gstv4l2videooverlay.h
index 0f602e75c..cd4091621 100644
--- a/sys/v4l2/gstv4l2videooverlay.h
+++ b/sys/v4l2/gstv4l2videooverlay.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_V4L2_VIDEO_OVERLAY_H__
diff --git a/sys/v4l2/gstv4l2vidorient.c b/sys/v4l2/gstv4l2vidorient.c
index 4dc0da73f..75589470f 100644
--- a/sys/v4l2/gstv4l2vidorient.c
+++ b/sys/v4l2/gstv4l2vidorient.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/sys/v4l2/gstv4l2vidorient.h b/sys/v4l2/gstv4l2vidorient.h
index 41da501b3..ab8847852 100644
--- a/sys/v4l2/gstv4l2vidorient.h
+++ b/sys/v4l2/gstv4l2vidorient.h
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_V4L2_VIDORIENT_H__
diff --git a/sys/v4l2/tuner.c b/sys/v4l2/tuner.c
index 59cea711d..738bd4fd1 100644
--- a/sys/v4l2/tuner.c
+++ b/sys/v4l2/tuner.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/sys/v4l2/tuner.h b/sys/v4l2/tuner.h
index c7cffe509..d245a170b 100644
--- a/sys/v4l2/tuner.h
+++ b/sys/v4l2/tuner.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_TUNER_H__
diff --git a/sys/v4l2/tunerchannel.c b/sys/v4l2/tunerchannel.c
index ac2b74e81..0911f672b 100644
--- a/sys/v4l2/tunerchannel.c
+++ b/sys/v4l2/tunerchannel.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/sys/v4l2/tunerchannel.h b/sys/v4l2/tunerchannel.h
index 1bbb6cfaa..0080c734c 100644
--- a/sys/v4l2/tunerchannel.h
+++ b/sys/v4l2/tunerchannel.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_TUNER_CHANNEL_H__
diff --git a/sys/v4l2/tunernorm.c b/sys/v4l2/tunernorm.c
index 47260b0ed..a43fce536 100644
--- a/sys/v4l2/tunernorm.c
+++ b/sys/v4l2/tunernorm.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/sys/v4l2/tunernorm.h b/sys/v4l2/tunernorm.h
index 988f4cb5d..94da22ca9 100644
--- a/sys/v4l2/tunernorm.h
+++ b/sys/v4l2/tunernorm.h
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_TUNER_NORM_H__
diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c
index 7c2702469..a84ce506b 100644
--- a/sys/v4l2/v4l2_calls.c
+++ b/sys/v4l2/v4l2_calls.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -109,7 +109,8 @@ cap_failed:
 static gboolean
 gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
 {
-  gint n;
+  gint n, next;
+  struct v4l2_queryctrl control = { 0, };
 
   GstElement *e;
 
@@ -145,7 +146,8 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
     GST_LOG_OBJECT (e, "   name:      '%s'", input.name);
     GST_LOG_OBJECT (e, "   type:      %08x", input.type);
     GST_LOG_OBJECT (e, "   audioset:  %08x", input.audioset);
-    GST_LOG_OBJECT (e, "   std:       %016" G_GINT64_MODIFIER "x", input.std);
+    GST_LOG_OBJECT (e, "   std:       %016" G_GINT64_MODIFIER "x",
+        (guint64) input.std);
     GST_LOG_OBJECT (e, "   status:    %08x", input.status);
 
     v4l2channel = g_object_new (GST_TYPE_V4L2_TUNER_CHANNEL, NULL);
@@ -203,7 +205,7 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
     standard.index = n;
 
     if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_ENUMSTD, &standard) < 0) {
-      if (errno == EINVAL || errno == ENOTTY)
+      if (errno == EINVAL || errno == ENOTTY || errno == ENODATA)
         break;                  /* end of enumeration */
       else {
         GST_ELEMENT_ERROR (e, RESOURCE, SETTINGS,
@@ -236,11 +238,21 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
   GST_DEBUG_OBJECT (e, "  controls+menus");
 
   /* and lastly, controls+menus (if appropriate) */
-  for (n = V4L2_CID_BASE;; n++) {
-    struct v4l2_queryctrl control = { 0, };
+#ifdef V4L2_CTRL_FLAG_NEXT_CTRL
+  next = V4L2_CTRL_FLAG_NEXT_CTRL;
+  n = 0;
+#else
+  next = 0;
+  n = V4L2_CID_BASE;
+#endif
+  control.id = next;
+  while (TRUE) {
     GstV4l2ColorBalanceChannel *v4l2channel;
     GstColorBalanceChannel *channel;
 
+    if (!next)
+      n++;
+
     /* when we reached the last official CID, continue with private CIDs */
     if (n == V4L2_CID_LASTP1) {
       GST_DEBUG_OBJECT (e, "checking private CIDs");
@@ -248,8 +260,19 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
     }
     GST_DEBUG_OBJECT (e, "checking control %08x", n);
 
-    control.id = n;
+    control.id = n | next;
     if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_QUERYCTRL, &control) < 0) {
+      if (next) {
+        if (n > 0) {
+          GST_DEBUG_OBJECT (e, "controls finished");
+          break;
+        } else {
+          GST_DEBUG_OBJECT (e, "V4L2_CTRL_FLAG_NEXT_CTRL not supported.");
+          next = 0;
+          n = V4L2_CID_BASE;
+          continue;
+        }
+      }
       if (errno == EINVAL || errno == ENOTTY || errno == EIO || errno == ENOENT) {
         if (n < V4L2_CID_PRIVATE_BASE) {
           GST_DEBUG_OBJECT (e, "skipping control %08x", n);
@@ -265,10 +288,47 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
         continue;
       }
     }
+    n = control.id;
     if (control.flags & V4L2_CTRL_FLAG_DISABLED) {
       GST_DEBUG_OBJECT (e, "skipping disabled control");
       continue;
     }
+#ifdef V4L2_CTRL_TYPE_CTRL_CLASS
+    if (control.type == V4L2_CTRL_TYPE_CTRL_CLASS) {
+      GST_DEBUG_OBJECT (e, "starting control class '%s'", control.name);
+      continue;
+    }
+#endif
+    switch (control.type) {
+      case V4L2_CTRL_TYPE_INTEGER:
+      case V4L2_CTRL_TYPE_BOOLEAN:
+      case V4L2_CTRL_TYPE_MENU:
+#ifdef V4L2_CTRL_TYPE_INTEGER_MENU
+      case V4L2_CTRL_TYPE_INTEGER_MENU:
+#endif
+#ifdef V4L2_CTRL_TYPE_BITMASK
+      case V4L2_CTRL_TYPE_BITMASK:
+#endif
+      case V4L2_CTRL_TYPE_BUTTON:{
+        int i;
+        control.name[31] = '\0';
+        for (i = 0; control.name[i]; ++i) {
+          control.name[i] = g_ascii_tolower (control.name[i]);
+          if (!g_ascii_isalnum (control.name[i]))
+            control.name[i] = '_';
+        }
+        GST_INFO_OBJECT (e, "adding generic controls '%s'", control.name);
+        g_datalist_id_set_data (&v4l2object->controls,
+            g_quark_from_string ((const gchar *) control.name),
+            GINT_TO_POINTER (n));
+        break;
+      }
+      default:
+        GST_DEBUG_OBJECT (e,
+            "Control type for '%s' not suppored for extra controls.",
+            control.name);
+        break;
+    }
 
     switch (n) {
       case V4L2_CID_BRIGHTNESS:
@@ -406,6 +466,8 @@ gst_v4l2_empty_lists (GstV4l2Object * v4l2object)
   g_list_foreach (v4l2object->colors, (GFunc) g_object_unref, NULL);
   g_list_free (v4l2object->colors);
   v4l2object->colors = NULL;
+
+  g_datalist_clear (&v4l2object->controls);
 }
 
 /******************************************************
@@ -480,7 +542,13 @@ gst_v4l2_open (GstV4l2Object * v4l2object)
 
   pollfd.fd = v4l2object->video_fd;
   gst_poll_add_fd (v4l2object->poll, &pollfd);
-  gst_poll_fd_ctl_read (v4l2object->poll, &pollfd, TRUE);
+  if (v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE)
+    gst_poll_fd_ctl_read (v4l2object->poll, &pollfd, TRUE);
+  else
+    gst_poll_fd_ctl_write (v4l2object->poll, &pollfd, TRUE);
+
+  if (v4l2object->extra_controls)
+    gst_v4l2_set_controls (v4l2object, v4l2object->extra_controls);
 
   return TRUE;
 
@@ -807,6 +875,33 @@ ctrl_failed:
   }
 }
 
+static gboolean
+set_contol (GQuark field_id, const GValue * value, gpointer user_data)
+{
+  GstV4l2Object *v4l2object = user_data;
+  gpointer *d = g_datalist_id_get_data (&v4l2object->controls, field_id);
+  if (!d) {
+    GST_WARNING_OBJECT (v4l2object,
+        "Control '%s' does not exist or has an unsupported type.",
+        g_quark_to_string (field_id));
+    return TRUE;
+  }
+  if (!G_VALUE_HOLDS (value, G_TYPE_INT)) {
+    GST_WARNING_OBJECT (v4l2object,
+        "'int' value expected for control '%s'.", g_quark_to_string (field_id));
+    return TRUE;
+  }
+  gst_v4l2_set_attribute (v4l2object, GPOINTER_TO_INT (d),
+      g_value_get_int (value));
+  return TRUE;
+}
+
+gboolean
+gst_v4l2_set_controls (GstV4l2Object * v4l2object, GstStructure * controls)
+{
+  return gst_structure_foreach (controls, set_contol, v4l2object);
+}
+
 gboolean
 gst_v4l2_get_input (GstV4l2Object * v4l2object, gint * input)
 {
diff --git a/sys/v4l2/v4l2_calls.h b/sys/v4l2/v4l2_calls.h
index 36cf0f3a9..221d26e07 100644
--- a/sys/v4l2/v4l2_calls.h
+++ b/sys/v4l2/v4l2_calls.h
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __V4L2_CALLS_H__
@@ -126,6 +126,9 @@ gboolean	gst_v4l2_set_attribute		(GstV4l2Object *v4l2object,
 						 int             attribute,
 						 const int       value);
 
+gboolean	gst_v4l2_set_controls		(GstV4l2Object * v4l2object,
+						 GstStructure * controls);
+
 gboolean        gst_v4l2_get_capabilities       (GstV4l2Object * v4l2object);
 
 
diff --git a/sys/waveform/Makefile.in b/sys/waveform/Makefile.in
index e042dfab7..d518ac015 100644
--- a/sys/waveform/Makefile.in
+++ b/sys/waveform/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/waveform
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -137,10 +163,23 @@ libgstwaveformsink_la_OBJECTS = $(am_libgstwaveformsink_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstwaveformsink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstwaveformsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstwaveformsink_la_CFLAGS) $(CFLAGS) \
 	$(libgstwaveformsink_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -153,20 +192,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstwaveformsink_la_SOURCES)
 DIST_SOURCES = $(libgstwaveformsink_la_SOURCES)
 am__can_run_installinfo = \
@@ -175,6 +210,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -343,6 +395,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -552,6 +605,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -578,12 +632,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstwaveformsink.la: $(libgstwaveformsink_la_OBJECTS) $(libgstwaveformsink_la_DEPENDENCIES) $(EXTRA_libgstwaveformsink_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstwaveformsink_la_LINK) -rpath $(plugindir) $(libgstwaveformsink_la_OBJECTS) $(libgstwaveformsink_la_LIBADD) $(LIBS)
 
@@ -637,26 +694,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -668,15 +714,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -685,6 +727,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -829,19 +886,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/sys/waveform/gstwaveformplugin.c b/sys/waveform/gstwaveformplugin.c
index a169dd466..d00c4c245 100644
--- a/sys/waveform/gstwaveformplugin.c
+++ b/sys/waveform/gstwaveformplugin.c
@@ -15,8 +15,8 @@
 *
 * 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.
+* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+* Boston, MA 02110-1301, USA.
 */
 
 #ifdef HAVE_CONFIG_H
diff --git a/sys/waveform/gstwaveformsink.c b/sys/waveform/gstwaveformsink.c
index 305679551..934147555 100644
--- a/sys/waveform/gstwaveformsink.c
+++ b/sys/waveform/gstwaveformsink.c
@@ -15,8 +15,8 @@
 *
 * 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.
+* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+* Boston, MA 02110-1301, USA.
 */
 
 /**
diff --git a/sys/waveform/gstwaveformsink.h b/sys/waveform/gstwaveformsink.h
index b23aea145..340dfc355 100644
--- a/sys/waveform/gstwaveformsink.h
+++ b/sys/waveform/gstwaveformsink.h
@@ -15,14 +15,15 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_WAVEFORMSINK_H__
 #define __GST_WAVEFORMSINK_H__
 
 #include <gst/gst.h>
+#include <gst/audio/audio.h>
 #include <gst/audio/gstaudiosink.h>
 
 #include <windows.h>
diff --git a/sys/ximage/Makefile.in b/sys/ximage/Makefile.in
index bda8135ed..96d70137b 100644
--- a/sys/ximage/Makefile.in
+++ b/sys/ximage/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,15 +81,14 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/ximage
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -138,10 +164,23 @@ libgstximagesrc_la_OBJECTS = $(am_libgstximagesrc_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstximagesrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstximagesrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstximagesrc_la_CFLAGS) $(CFLAGS) \
 	$(libgstximagesrc_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -154,20 +193,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstximagesrc_la_SOURCES)
 DIST_SOURCES = $(libgstximagesrc_la_SOURCES)
 am__can_run_installinfo = \
@@ -176,6 +211,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -344,6 +396,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -554,6 +607,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -580,12 +634,15 @@ uninstall-pluginLTLIBRARIES:
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstximagesrc.la: $(libgstximagesrc_la_OBJECTS) $(libgstximagesrc_la_DEPENDENCIES) $(EXTRA_libgstximagesrc_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstximagesrc_la_LINK) -rpath $(plugindir) $(libgstximagesrc_la_OBJECTS) $(libgstximagesrc_la_LIBADD) $(LIBS)
 
@@ -639,26 +696,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -670,15 +716,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -687,6 +729,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -831,19 +888,20 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES 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-pluginLTLIBRARIES \
-	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 uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am 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-pluginLTLIBRARIES 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 tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/sys/ximage/gstximagesrc.c b/sys/ximage/gstximagesrc.c
index ff24de985..644768d85 100644
--- a/sys/ximage/gstximagesrc.c
+++ b/sys/ximage/gstximagesrc.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -862,7 +862,8 @@ gst_ximage_src_create (GstPushSrc * bs, GstBuffer ** buf)
     return GST_FLOW_ERROR;
 
   *buf = image;
-  GST_BUFFER_TIMESTAMP (*buf) = next_capture_ts;
+  GST_BUFFER_DTS (*buf) = GST_CLOCK_TIME_NONE;
+  GST_BUFFER_PTS (*buf) = next_capture_ts;
   GST_BUFFER_DURATION (*buf) = dur;
 
   return GST_FLOW_OK;
diff --git a/sys/ximage/gstximagesrc.h b/sys/ximage/gstximagesrc.h
index 7f5275a85..76506bffc 100644
--- a/sys/ximage/gstximagesrc.h
+++ b/sys/ximage/gstximagesrc.h
@@ -12,8 +12,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_XIMAGE_SRC_H__
diff --git a/sys/ximage/ximageutil.c b/sys/ximage/ximageutil.c
index 20b2dc2b7..76d2866ac 100644
--- a/sys/ximage/ximageutil.c
+++ b/sys/ximage/ximageutil.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/sys/ximage/ximageutil.h b/sys/ximage/ximageutil.h
index 12f2c1064..d5e88fac8 100644
--- a/sys/ximage/ximageutil.h
+++ b/sys/ximage/ximageutil.h
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_XIMAGEUTIL_H__
diff --git a/test-driver b/test-driver
new file mode 100755
index 000000000..32bf39e83
--- /dev/null
+++ b/test-driver
@@ -0,0 +1,127 @@
+#! /bin/sh
+# test-driver - basic testsuite driver script.
+
+scriptversion=2012-06-27.10; # UTC
+
+# Copyright (C) 2011-2013 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
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+# Make unconditional expansion of undefined variables an error.  This
+# helps a lot in preventing typo-related bugs.
+set -u
+
+usage_error ()
+{
+  echo "$0: $*" >&2
+  print_usage >&2
+  exit 2
+}
+
+print_usage ()
+{
+  cat <<END
+Usage:
+  test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
+              [--expect-failure={yes|no}] [--color-tests={yes|no}]
+              [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
+The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+END
+}
+
+# TODO: better error handling in option parsing (in particular, ensure
+# TODO: $log_file, $trs_file and $test_name are defined).
+test_name= # Used for reporting.
+log_file=  # Where to save the output of the test script.
+trs_file=  # Where to save the metadata of the test run.
+expect_failure=no
+color_tests=no
+enable_hard_errors=yes
+while test $# -gt 0; do
+  case $1 in
+  --help) print_usage; exit $?;;
+  --version) echo "test-driver $scriptversion"; exit $?;;
+  --test-name) test_name=$2; shift;;
+  --log-file) log_file=$2; shift;;
+  --trs-file) trs_file=$2; shift;;
+  --color-tests) color_tests=$2; shift;;
+  --expect-failure) expect_failure=$2; shift;;
+  --enable-hard-errors) enable_hard_errors=$2; shift;;
+  --) shift; break;;
+  -*) usage_error "invalid option: '$1'";;
+  esac
+  shift
+done
+
+if test $color_tests = yes; then
+  # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
+  red='' # Red.
+  grn='' # Green.
+  lgn='' # Light green.
+  blu='' # Blue.
+  mgn='' # Magenta.
+  std=''     # No color.
+else
+  red= grn= lgn= blu= mgn= std=
+fi
+
+do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
+trap "st=129; $do_exit" 1
+trap "st=130; $do_exit" 2
+trap "st=141; $do_exit" 13
+trap "st=143; $do_exit" 15
+
+# Test script is run here.
+"$@" >$log_file 2>&1
+estatus=$?
+if test $enable_hard_errors = no && test $estatus -eq 99; then
+  estatus=1
+fi
+
+case $estatus:$expect_failure in
+  0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
+  0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
+  77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
+  99:*)  col=$mgn res=ERROR recheck=yes gcopy=yes;;
+  *:yes) col=$lgn res=XFAIL recheck=no  gcopy=yes;;
+  *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
+esac
+
+# Report outcome to console.
+echo "${col}${res}${std}: $test_name"
+
+# Register the test result, and other relevant metadata.
+echo ":test-result: $res" > $trs_file
+echo ":global-test-result: $res" >> $trs_file
+echo ":recheck: $recheck" >> $trs_file
+echo ":copy-in-global-log: $gcopy" >> $trs_file
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/tests/Makefile.in b/tests/Makefile.in
index d397a6747..462bfe92a 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,14 +79,13 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = tests
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 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-gcc-inline-assembly.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 \
@@ -95,21 +121,28 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -117,9 +150,29 @@ am__can_run_installinfo = \
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -313,6 +366,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -522,22 +576,25 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -552,57 +609,12 @@ $(RECURSIVE_TARGETS):
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-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: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -618,12 +630,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -635,15 +642,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -652,6 +655,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -812,22 +830,20 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean 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 installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean 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 \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index 7177d8603..c3bacc46c 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -4,12 +4,12 @@ CHECK_REGISTRY = $(top_builddir)/tests/check/test-registry.reg
 TEST_FILES_DIRECTORY = $(top_srcdir)/tests/files
 
 REGISTRY_ENVIRONMENT = \
-	GST_REGISTRY=$(CHECK_REGISTRY)
+	GST_REGISTRY_1_0=$(CHECK_REGISTRY)
 
 TESTS_ENVIRONMENT = \
 	$(REGISTRY_ENVIRONMENT)					\
-	GST_PLUGIN_SYSTEM_PATH=					\
-	GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/ext:$(top_builddir)/sys:$(GSTPB_PLUGINS_DIR):$(GST_PLUGINS_DIR)			\
+	GST_PLUGIN_SYSTEM_PATH_1_0=				\
+	GST_PLUGIN_PATH_1_0=$(top_builddir)/gst:$(top_builddir)/ext:$(top_builddir)/sys:$(GSTPB_PLUGINS_DIR):$(GST_PLUGINS_DIR)			\
 	GST_PLUGIN_LOADING_WHITELIST="gstreamer@$(GST_PLUGINS_DIR):gst-plugins-base@$(GSTPB_PLUGINS_DIR):gst-plugins-good@$(top_builddir)"	\
 	GST_STATE_IGNORE_ELEMENTS="aasink autoaudiosrc autoaudiosink autovideosrc autovideosink \
 		cacasink cairotextoverlay \
@@ -121,6 +121,7 @@ check_PROGRAMS = \
 	elements/capssetter \
 	elements/deinterlace \
 	elements/deinterleave \
+	elements/dtmf \
 	elements/equalizer \
 	elements/flacparse \
 	elements/flvdemux \
@@ -133,6 +134,8 @@ check_PROGRAMS = \
 	elements/matroskamux \
 	elements/matroskaparse \
 	elements/mpegaudioparse \
+	elements/mulawdec \
+	elements/mulawenc \
 	elements/multifile \
 	elements/qtmux \
 	elements/rganalysis \
@@ -142,6 +145,7 @@ check_PROGRAMS = \
 	elements/rtpbin \
 	elements/rtpbin_buffer_list \
 	elements/rtpjitterbuffer \
+	elements/rtpmux \
 	elements/shapewipe \
 	elements/spectrum \
 	elements/udpsink \
@@ -149,7 +153,9 @@ check_PROGRAMS = \
 	elements/videocrop \
 	elements/videofilter \
 	elements/wavpackparse \
+	elements/wavparse \
 	elements/y4menc \
+	elements/videomixer \
 	pipelines/simple-launch-lines \
 	pipelines/effectv \
 	pipelines/tagschecking \
@@ -252,6 +258,11 @@ elements_alphacolor_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 elements_deinterlace_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 elements_deinterlace_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) $(LDADD)
 
+elements_dtmf_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
+	$(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
+elements_dtmf_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-@GST_API_VERSION@ \
+    $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD)
+
 elements_deinterleave_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 elements_deinterleave_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(LDADD)
 elements_interleave_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
@@ -285,6 +296,9 @@ elements_rtpbin_buffer_list_LDADD = $(GST_PLUGINS_BASE_LIBS) \
              $(GST_BASE_LIBS) $(GST_LIBS) $(GST_CHECK_LIBS)
 elements_rtpbin_buffer_list_SOURCES = elements/rtpbin_buffer_list.c
 
+elements_rtpmux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+elements_rtpmux_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD)
+
 elements_souphttpsrc_CFLAGS = $(SOUP_CFLAGS) $(AM_CFLAGS)
 elements_souphttpsrc_LDADD = $(SOUP_LIBS) $(LDADD)
 
@@ -311,6 +325,8 @@ elements_gdkpixbufsink_CFLAGS = \
 elements_gdkpixbufsink_LDADD = \
 	$(LDADD) $(GDK_PIXBUF_LIBS)
 
+elements_videomixer_LDADD = $(LDADD)  $(GST_BASE_LIBS)
+elements_videomixer_CFLAGS = $(GST_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 
 pipelines_flacdec_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 pipelines_flacdec_LDADD  = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(LDADD)
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index 38862b474..847352f7c 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,8 +79,9 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/check.mak
+DIST_COMMON = $(top_srcdir)/common/check.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am $(top_srcdir)/depcomp \
+	$(top_srcdir)/test-driver
 check_PROGRAMS = generic/states$(EXEEXT) elements/aacparse$(EXEEXT) \
 	elements/ac3parse$(EXEEXT) elements/amrparse$(EXEEXT) \
 	elements/alphacolor$(EXEEXT) elements/aspectratiocrop$(EXEEXT) \
@@ -67,22 +95,25 @@ check_PROGRAMS = generic/states$(EXEEXT) elements/aacparse$(EXEEXT) \
 	elements/audiowsinclimit$(EXEEXT) elements/autodetect$(EXEEXT) \
 	elements/avimux$(EXEEXT) elements/avisubtitle$(EXEEXT) \
 	elements/capssetter$(EXEEXT) elements/deinterlace$(EXEEXT) \
-	elements/deinterleave$(EXEEXT) elements/equalizer$(EXEEXT) \
-	elements/flacparse$(EXEEXT) elements/flvdemux$(EXEEXT) \
-	elements/flvmux$(EXEEXT) elements/icydemux$(EXEEXT) \
-	elements/id3demux$(EXEEXT) elements/imagefreeze$(EXEEXT) \
-	elements/interleave$(EXEEXT) elements/level$(EXEEXT) \
-	elements/matroskamux$(EXEEXT) elements/matroskaparse$(EXEEXT) \
-	elements/mpegaudioparse$(EXEEXT) elements/multifile$(EXEEXT) \
+	elements/deinterleave$(EXEEXT) elements/dtmf$(EXEEXT) \
+	elements/equalizer$(EXEEXT) elements/flacparse$(EXEEXT) \
+	elements/flvdemux$(EXEEXT) elements/flvmux$(EXEEXT) \
+	elements/icydemux$(EXEEXT) elements/id3demux$(EXEEXT) \
+	elements/imagefreeze$(EXEEXT) elements/interleave$(EXEEXT) \
+	elements/level$(EXEEXT) elements/matroskamux$(EXEEXT) \
+	elements/matroskaparse$(EXEEXT) \
+	elements/mpegaudioparse$(EXEEXT) elements/mulawdec$(EXEEXT) \
+	elements/mulawenc$(EXEEXT) elements/multifile$(EXEEXT) \
 	elements/qtmux$(EXEEXT) elements/rganalysis$(EXEEXT) \
 	elements/rglimiter$(EXEEXT) elements/rgvolume$(EXEEXT) \
 	elements/rtp-payloading$(EXEEXT) elements/rtpbin$(EXEEXT) \
 	elements/rtpbin_buffer_list$(EXEEXT) \
-	elements/rtpjitterbuffer$(EXEEXT) elements/shapewipe$(EXEEXT) \
-	elements/spectrum$(EXEEXT) elements/udpsink$(EXEEXT) \
-	elements/udpsrc$(EXEEXT) elements/videocrop$(EXEEXT) \
-	elements/videofilter$(EXEEXT) elements/wavpackparse$(EXEEXT) \
-	elements/y4menc$(EXEEXT) \
+	elements/rtpjitterbuffer$(EXEEXT) elements/rtpmux$(EXEEXT) \
+	elements/shapewipe$(EXEEXT) elements/spectrum$(EXEEXT) \
+	elements/udpsink$(EXEEXT) elements/udpsrc$(EXEEXT) \
+	elements/videocrop$(EXEEXT) elements/videofilter$(EXEEXT) \
+	elements/wavpackparse$(EXEEXT) elements/wavparse$(EXEEXT) \
+	elements/y4menc$(EXEEXT) elements/videomixer$(EXEEXT) \
 	pipelines/simple-launch-lines$(EXEEXT) \
 	pipelines/effectv$(EXEEXT) pipelines/tagschecking$(EXEEXT) \
 	pipelines/wavenc$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \
@@ -96,7 +127,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-gcc-inline-assembly.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 \
@@ -139,6 +169,7 @@ libparser_la_OBJECTS = $(am_libparser_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libparser_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libparser_la_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
@@ -313,6 +344,14 @@ elements_deinterleave_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(elements_deinterleave_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
+elements_dtmf_SOURCES = elements/dtmf.c
+elements_dtmf_OBJECTS = elements_dtmf-dtmf.$(OBJEXT)
+elements_dtmf_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_2)
+elements_dtmf_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(elements_dtmf_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 elements_equalizer_SOURCES = elements/equalizer.c
 elements_equalizer_OBJECTS = elements_equalizer-equalizer.$(OBJEXT)
 elements_equalizer_DEPENDENCIES = $(am__DEPENDENCIES_1) \
@@ -408,6 +447,14 @@ elements_mpegaudioparse_SOURCES = elements/mpegaudioparse.c
 elements_mpegaudioparse_OBJECTS = mpegaudioparse.$(OBJEXT)
 elements_mpegaudioparse_DEPENDENCIES = libparser.la \
 	$(am__DEPENDENCIES_2)
+elements_mulawdec_SOURCES = elements/mulawdec.c
+elements_mulawdec_OBJECTS = mulawdec.$(OBJEXT)
+elements_mulawdec_LDADD = $(LDADD)
+elements_mulawdec_DEPENDENCIES = $(am__DEPENDENCIES_1)
+elements_mulawenc_SOURCES = elements/mulawenc.c
+elements_mulawenc_OBJECTS = mulawenc.$(OBJEXT)
+elements_mulawenc_LDADD = $(LDADD)
+elements_mulawenc_DEPENDENCIES = $(am__DEPENDENCIES_1)
 elements_multifile_SOURCES = elements/multifile.c
 elements_multifile_OBJECTS = elements_multifile-multifile.$(OBJEXT)
 elements_multifile_DEPENDENCIES = $(am__DEPENDENCIES_1) \
@@ -474,6 +521,14 @@ elements_rtpjitterbuffer_SOURCES = elements/rtpjitterbuffer.c
 elements_rtpjitterbuffer_OBJECTS = rtpjitterbuffer.$(OBJEXT)
 elements_rtpjitterbuffer_LDADD = $(LDADD)
 elements_rtpjitterbuffer_DEPENDENCIES = $(am__DEPENDENCIES_1)
+elements_rtpmux_SOURCES = elements/rtpmux.c
+elements_rtpmux_OBJECTS = elements_rtpmux-rtpmux.$(OBJEXT)
+elements_rtpmux_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+elements_rtpmux_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(elements_rtpmux_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
 elements_shapewipe_SOURCES = elements/shapewipe.c
 elements_shapewipe_OBJECTS = shapewipe.$(OBJEXT)
 elements_shapewipe_LDADD = $(LDADD)
@@ -532,6 +587,15 @@ elements_videofilter_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(elements_videofilter_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
+elements_videomixer_SOURCES = elements/videomixer.c
+elements_videomixer_OBJECTS =  \
+	elements_videomixer-videomixer.$(OBJEXT)
+elements_videomixer_DEPENDENCIES = $(am__DEPENDENCIES_2) \
+	$(am__DEPENDENCIES_1)
+elements_videomixer_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(elements_videomixer_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
 elements_vp8dec_SOURCES = elements/vp8dec.c
 elements_vp8dec_OBJECTS = vp8dec.$(OBJEXT)
 elements_vp8dec_LDADD = $(LDADD)
@@ -552,6 +616,10 @@ elements_wavpackparse_SOURCES = elements/wavpackparse.c
 elements_wavpackparse_OBJECTS = wavpackparse.$(OBJEXT)
 elements_wavpackparse_LDADD = $(LDADD)
 elements_wavpackparse_DEPENDENCIES = $(am__DEPENDENCIES_1)
+elements_wavparse_SOURCES = elements/wavparse.c
+elements_wavparse_OBJECTS = wavparse.$(OBJEXT)
+elements_wavparse_LDADD = $(LDADD)
+elements_wavparse_DEPENDENCIES = $(am__DEPENDENCIES_1)
 elements_y4menc_SOURCES = elements/y4menc.c
 elements_y4menc_OBJECTS = y4menc.$(OBJEXT)
 elements_y4menc_LDADD = $(LDADD)
@@ -618,6 +686,18 @@ pipelines_wavpack_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(pipelines_wavpack_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -630,20 +710,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libparser_la_SOURCES) elements/aacparse.c \
 	elements/ac3parse.c elements/alphacolor.c elements/amrparse.c \
 	elements/apev2mux.c elements/aspectratiocrop.c \
@@ -654,24 +730,25 @@ SOURCES = $(libparser_la_SOURCES) elements/aacparse.c \
 	elements/audiopanorama.c elements/audiowsincband.c \
 	elements/audiowsinclimit.c elements/autodetect.c \
 	elements/avimux.c elements/avisubtitle.c elements/capssetter.c \
-	elements/deinterlace.c elements/deinterleave.c \
+	elements/deinterlace.c elements/deinterleave.c elements/dtmf.c \
 	elements/equalizer.c elements/flacparse.c elements/flvdemux.c \
 	elements/flvmux.c elements/gdkpixbufsink.c elements/icydemux.c \
 	elements/id3demux.c elements/id3v2mux.c elements/imagefreeze.c \
 	elements/interleave.c elements/jpegdec.c elements/jpegenc.c \
 	elements/level.c elements/matroskamux.c \
 	elements/matroskaparse.c elements/mpegaudioparse.c \
-	elements/multifile.c elements/qtmux.c elements/rganalysis.c \
-	elements/rglimiter.c elements/rgvolume.c \
-	elements/rtp-payloading.c elements/rtpbin.c \
-	$(elements_rtpbin_buffer_list_SOURCES) \
-	elements/rtpjitterbuffer.c elements/shapewipe.c \
-	elements/souphttpsrc.c elements/spectrum.c elements/sunaudio.c \
-	elements/udpsink.c elements/udpsrc.c elements/videocrop.c \
-	elements/videofilter.c elements/vp8dec.c elements/vp8enc.c \
+	elements/mulawdec.c elements/mulawenc.c elements/multifile.c \
+	elements/qtmux.c elements/rganalysis.c elements/rglimiter.c \
+	elements/rgvolume.c elements/rtp-payloading.c \
+	elements/rtpbin.c $(elements_rtpbin_buffer_list_SOURCES) \
+	elements/rtpjitterbuffer.c elements/rtpmux.c \
+	elements/shapewipe.c elements/souphttpsrc.c \
+	elements/spectrum.c elements/sunaudio.c elements/udpsink.c \
+	elements/udpsrc.c elements/videocrop.c elements/videofilter.c \
+	elements/videomixer.c elements/vp8dec.c elements/vp8enc.c \
 	elements/wavpackdec.c elements/wavpackenc.c \
-	elements/wavpackparse.c elements/y4menc.c generic/states.c \
-	$(nodist_orc_deinterlace_SOURCES) \
+	elements/wavpackparse.c elements/wavparse.c elements/y4menc.c \
+	generic/states.c $(nodist_orc_deinterlace_SOURCES) \
 	$(nodist_orc_videobox_SOURCES) \
 	$(nodist_orc_videomixer_SOURCES) pipelines/effectv.c \
 	pipelines/flacdec.c pipelines/simple-launch-lines.c \
@@ -687,24 +764,25 @@ DIST_SOURCES = $(libparser_la_SOURCES) elements/aacparse.c \
 	elements/audiopanorama.c elements/audiowsincband.c \
 	elements/audiowsinclimit.c elements/autodetect.c \
 	elements/avimux.c elements/avisubtitle.c elements/capssetter.c \
-	elements/deinterlace.c elements/deinterleave.c \
+	elements/deinterlace.c elements/deinterleave.c elements/dtmf.c \
 	elements/equalizer.c elements/flacparse.c elements/flvdemux.c \
 	elements/flvmux.c elements/gdkpixbufsink.c elements/icydemux.c \
 	elements/id3demux.c elements/id3v2mux.c elements/imagefreeze.c \
 	elements/interleave.c elements/jpegdec.c elements/jpegenc.c \
 	elements/level.c elements/matroskamux.c \
 	elements/matroskaparse.c elements/mpegaudioparse.c \
-	elements/multifile.c elements/qtmux.c elements/rganalysis.c \
-	elements/rglimiter.c elements/rgvolume.c \
-	elements/rtp-payloading.c elements/rtpbin.c \
-	$(elements_rtpbin_buffer_list_SOURCES) \
-	elements/rtpjitterbuffer.c elements/shapewipe.c \
-	elements/souphttpsrc.c elements/spectrum.c elements/sunaudio.c \
-	elements/udpsink.c elements/udpsrc.c elements/videocrop.c \
-	elements/videofilter.c elements/vp8dec.c elements/vp8enc.c \
+	elements/mulawdec.c elements/mulawenc.c elements/multifile.c \
+	elements/qtmux.c elements/rganalysis.c elements/rglimiter.c \
+	elements/rgvolume.c elements/rtp-payloading.c \
+	elements/rtpbin.c $(elements_rtpbin_buffer_list_SOURCES) \
+	elements/rtpjitterbuffer.c elements/rtpmux.c \
+	elements/shapewipe.c elements/souphttpsrc.c \
+	elements/spectrum.c elements/sunaudio.c elements/udpsink.c \
+	elements/udpsrc.c elements/videocrop.c elements/videofilter.c \
+	elements/videomixer.c elements/vp8dec.c elements/vp8enc.c \
 	elements/wavpackdec.c elements/wavpackenc.c \
-	elements/wavpackparse.c elements/y4menc.c generic/states.c \
-	pipelines/effectv.c pipelines/flacdec.c \
+	elements/wavpackparse.c elements/wavparse.c elements/y4menc.c \
+	generic/states.c pipelines/effectv.c pipelines/flacdec.c \
 	pipelines/simple-launch-lines.c pipelines/tagschecking.c \
 	pipelines/wavenc.c pipelines/wavpack.c
 am__can_run_installinfo = \
@@ -712,10 +790,229 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
-am__tty_colors = \
-red=; grn=; lgn=; blu=; std=
+am__tty_colors_dummy = \
+  mgn= red= grn= lgn= blu= brg= std=; \
+  am__color_tests=no
+am__tty_colors = { \
+  $(am__tty_colors_dummy); \
+  if test "X$(AM_COLOR_TESTS)" = Xno; then \
+    am__color_tests=no; \
+  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+    am__color_tests=yes; \
+  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+    am__color_tests=yes; \
+  fi; \
+  if test $$am__color_tests = yes; then \
+    red=''; \
+    grn=''; \
+    lgn=''; \
+    blu=''; \
+    mgn=''; \
+    brg=''; \
+    std=''; \
+  fi; \
+}
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+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__recheck_rx = ^[ 	]*:recheck:[ 	]*
+am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
+am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+  recheck = 1; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+        { \
+          if ((getline line2 < ($$0 ".log")) < 0) \
+	    recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+        { \
+          recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+        { \
+          break; \
+        } \
+    }; \
+  if (recheck) \
+    print $$0; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+  print "fatal: making $@: " msg | "cat >&2"; \
+  exit 1; \
+} \
+function rst_section(header) \
+{ \
+  print header; \
+  len = length(header); \
+  for (i = 1; i <= len; i = i + 1) \
+    printf "="; \
+  printf "\n\n"; \
+} \
+{ \
+  copy_in_global_log = 1; \
+  global_test_result = "RUN"; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+         fatal("failed to read from " $$0 ".trs"); \
+      if (line ~ /$(am__global_test_result_rx)/) \
+        { \
+          sub("$(am__global_test_result_rx)", "", line); \
+          sub("[ 	]*$$", "", line); \
+          global_test_result = line; \
+        } \
+      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+        copy_in_global_log = 0; \
+    }; \
+  if (copy_in_global_log) \
+    { \
+      rst_section(global_test_result ": " $$0); \
+      while ((rc = (getline line < ($$0 ".log"))) != 0) \
+      { \
+        if (rc < 0) \
+          fatal("failed to read from " $$0 ".log"); \
+        print line; \
+      }; \
+      printf "\n"; \
+    }; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+  --color-tests "$$am__color_tests" \
+  --enable-hard-errors "$$am__enable_hard_errors" \
+  --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log.  Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup);					\
+$(am__vpath_adj_setup) $(am__vpath_adj)			\
+$(am__tty_colors);					\
+srcdir=$(srcdir); export srcdir;			\
+case "$@" in						\
+  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
+    *) am__odir=.;; 					\
+esac;							\
+test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
+  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
+if test -f "./$$f"; then dir=./;			\
+elif test -f "$$f"; then dir=;				\
+else dir="$(srcdir)/"; fi;				\
+tst=$$dir$$f; log='$@'; 				\
+if test -n '$(DISABLE_HARD_ERRORS)'; then		\
+  am__enable_hard_errors=no; 				\
+else							\
+  am__enable_hard_errors=yes; 				\
+fi; 							\
+case " $(XFAIL_TESTS) " in				\
+  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
+    am__expect_failure=yes;;				\
+  *)							\
+    am__expect_failure=no;;				\
+esac; 							\
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed).  The result is saved in the shell variable
+# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+  bases='$(TEST_LOGS)'; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+  bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+  case '$@' in \
+    */*) \
+      case '$*' in \
+        */*) b='$*';; \
+          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+       esac;; \
+    *) \
+      b='$*';; \
+  esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+	$(TEST_LOG_FLAGS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -882,6 +1179,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -1042,19 +1340,18 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-LOOPS = 10
 
 # inspect every plugin feature
 GST_INSPECT = $(GST_TOOLS_DIR)/gst-inspect-$(GST_API_VERSION)
 CHECK_REGISTRY = $(top_builddir)/tests/check/test-registry.reg
 TEST_FILES_DIRECTORY = $(top_srcdir)/tests/files
 REGISTRY_ENVIRONMENT = \
-	GST_REGISTRY=$(CHECK_REGISTRY)
+	GST_REGISTRY_1_0=$(CHECK_REGISTRY)
 
 TESTS_ENVIRONMENT = \
 	$(REGISTRY_ENVIRONMENT)					\
-	GST_PLUGIN_SYSTEM_PATH=					\
-	GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/ext:$(top_builddir)/sys:$(GSTPB_PLUGINS_DIR):$(GST_PLUGINS_DIR)			\
+	GST_PLUGIN_SYSTEM_PATH_1_0=				\
+	GST_PLUGIN_PATH_1_0=$(top_builddir)/gst:$(top_builddir)/ext:$(top_builddir)/sys:$(GSTPB_PLUGINS_DIR):$(GST_PLUGINS_DIR)			\
 	GST_PLUGIN_LOADING_WHITELIST="gstreamer@$(GST_PLUGINS_DIR):gst-plugins-base@$(GSTPB_PLUGINS_DIR):gst-plugins-good@$(top_builddir)"	\
 	GST_STATE_IGNORE_ELEMENTS="aasink autoaudiosrc autoaudiosink autovideosrc autovideosink \
 		cacasink cairotextoverlay \
@@ -1175,6 +1472,12 @@ elements_spectrum_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION)
 elements_alphacolor_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 elements_deinterlace_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 elements_deinterlace_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) $(LDADD)
+elements_dtmf_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
+	$(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
+
+elements_dtmf_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-@GST_API_VERSION@ \
+    $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD)
+
 elements_deinterleave_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 elements_deinterleave_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(LDADD)
 elements_interleave_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
@@ -1202,6 +1505,8 @@ elements_rtpbin_buffer_list_LDADD = $(GST_PLUGINS_BASE_LIBS) \
              $(GST_BASE_LIBS) $(GST_LIBS) $(GST_CHECK_LIBS)
 
 elements_rtpbin_buffer_list_SOURCES = elements/rtpbin_buffer_list.c
+elements_rtpmux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+elements_rtpmux_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD)
 elements_souphttpsrc_CFLAGS = $(SOUP_CFLAGS) $(AM_CFLAGS)
 elements_souphttpsrc_LDADD = $(SOUP_LIBS) $(LDADD)
 elements_sunaudio_CFLAGS = \
@@ -1227,6 +1532,8 @@ elements_gdkpixbufsink_CFLAGS = \
 elements_gdkpixbufsink_LDADD = \
 	$(LDADD) $(GDK_PIXBUF_LIBS)
 
+elements_videomixer_LDADD = $(LDADD)  $(GST_BASE_LIBS)
+elements_videomixer_CFLAGS = $(GST_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 pipelines_flacdec_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 pipelines_flacdec_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(LDADD)
 pipelines_wavenc_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
@@ -1246,7 +1553,7 @@ EXTRA_DIST = gst-plugins-good.supp
 all: all-am
 
 .SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
+.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/check.mak $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -1281,12 +1588,15 @@ $(am__aclocal_m4_deps):
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(noinst_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libparser.la: $(libparser_la_OBJECTS) $(libparser_la_DEPENDENCIES) $(EXTRA_libparser_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libparser_la_LINK)  $(libparser_la_OBJECTS) $(libparser_la_LIBADD) $(LIBS)
 
@@ -1301,228 +1611,324 @@ clean-checkPROGRAMS:
 elements/$(am__dirstamp):
 	@$(MKDIR_P) elements
 	@: > elements/$(am__dirstamp)
+
 elements/aacparse$(EXEEXT): $(elements_aacparse_OBJECTS) $(elements_aacparse_DEPENDENCIES) $(EXTRA_elements_aacparse_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/aacparse$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_aacparse_OBJECTS) $(elements_aacparse_LDADD) $(LIBS)
+
 elements/ac3parse$(EXEEXT): $(elements_ac3parse_OBJECTS) $(elements_ac3parse_DEPENDENCIES) $(EXTRA_elements_ac3parse_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/ac3parse$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_ac3parse_OBJECTS) $(elements_ac3parse_LDADD) $(LIBS)
+
 elements/alphacolor$(EXEEXT): $(elements_alphacolor_OBJECTS) $(elements_alphacolor_DEPENDENCIES) $(EXTRA_elements_alphacolor_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/alphacolor$(EXEEXT)
 	$(AM_V_CCLD)$(elements_alphacolor_LINK) $(elements_alphacolor_OBJECTS) $(elements_alphacolor_LDADD) $(LIBS)
+
 elements/amrparse$(EXEEXT): $(elements_amrparse_OBJECTS) $(elements_amrparse_DEPENDENCIES) $(EXTRA_elements_amrparse_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/amrparse$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_amrparse_OBJECTS) $(elements_amrparse_LDADD) $(LIBS)
+
 elements/apev2mux$(EXEEXT): $(elements_apev2mux_OBJECTS) $(elements_apev2mux_DEPENDENCIES) $(EXTRA_elements_apev2mux_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/apev2mux$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_apev2mux_OBJECTS) $(elements_apev2mux_LDADD) $(LIBS)
+
 elements/aspectratiocrop$(EXEEXT): $(elements_aspectratiocrop_OBJECTS) $(elements_aspectratiocrop_DEPENDENCIES) $(EXTRA_elements_aspectratiocrop_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/aspectratiocrop$(EXEEXT)
 	$(AM_V_CCLD)$(elements_aspectratiocrop_LINK) $(elements_aspectratiocrop_OBJECTS) $(elements_aspectratiocrop_LDADD) $(LIBS)
+
 elements/audioamplify$(EXEEXT): $(elements_audioamplify_OBJECTS) $(elements_audioamplify_DEPENDENCIES) $(EXTRA_elements_audioamplify_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/audioamplify$(EXEEXT)
 	$(AM_V_CCLD)$(elements_audioamplify_LINK) $(elements_audioamplify_OBJECTS) $(elements_audioamplify_LDADD) $(LIBS)
+
 elements/audiochebband$(EXEEXT): $(elements_audiochebband_OBJECTS) $(elements_audiochebband_DEPENDENCIES) $(EXTRA_elements_audiochebband_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/audiochebband$(EXEEXT)
 	$(AM_V_CCLD)$(elements_audiochebband_LINK) $(elements_audiochebband_OBJECTS) $(elements_audiochebband_LDADD) $(LIBS)
+
 elements/audiocheblimit$(EXEEXT): $(elements_audiocheblimit_OBJECTS) $(elements_audiocheblimit_DEPENDENCIES) $(EXTRA_elements_audiocheblimit_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/audiocheblimit$(EXEEXT)
 	$(AM_V_CCLD)$(elements_audiocheblimit_LINK) $(elements_audiocheblimit_OBJECTS) $(elements_audiocheblimit_LDADD) $(LIBS)
+
 elements/audiodynamic$(EXEEXT): $(elements_audiodynamic_OBJECTS) $(elements_audiodynamic_DEPENDENCIES) $(EXTRA_elements_audiodynamic_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/audiodynamic$(EXEEXT)
 	$(AM_V_CCLD)$(elements_audiodynamic_LINK) $(elements_audiodynamic_OBJECTS) $(elements_audiodynamic_LDADD) $(LIBS)
+
 elements/audioecho$(EXEEXT): $(elements_audioecho_OBJECTS) $(elements_audioecho_DEPENDENCIES) $(EXTRA_elements_audioecho_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/audioecho$(EXEEXT)
 	$(AM_V_CCLD)$(elements_audioecho_LINK) $(elements_audioecho_OBJECTS) $(elements_audioecho_LDADD) $(LIBS)
+
 elements/audiofirfilter$(EXEEXT): $(elements_audiofirfilter_OBJECTS) $(elements_audiofirfilter_DEPENDENCIES) $(EXTRA_elements_audiofirfilter_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/audiofirfilter$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_audiofirfilter_OBJECTS) $(elements_audiofirfilter_LDADD) $(LIBS)
+
 elements/audioiirfilter$(EXEEXT): $(elements_audioiirfilter_OBJECTS) $(elements_audioiirfilter_DEPENDENCIES) $(EXTRA_elements_audioiirfilter_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/audioiirfilter$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_audioiirfilter_OBJECTS) $(elements_audioiirfilter_LDADD) $(LIBS)
+
 elements/audioinvert$(EXEEXT): $(elements_audioinvert_OBJECTS) $(elements_audioinvert_DEPENDENCIES) $(EXTRA_elements_audioinvert_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/audioinvert$(EXEEXT)
 	$(AM_V_CCLD)$(elements_audioinvert_LINK) $(elements_audioinvert_OBJECTS) $(elements_audioinvert_LDADD) $(LIBS)
+
 elements/audiopanorama$(EXEEXT): $(elements_audiopanorama_OBJECTS) $(elements_audiopanorama_DEPENDENCIES) $(EXTRA_elements_audiopanorama_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/audiopanorama$(EXEEXT)
 	$(AM_V_CCLD)$(elements_audiopanorama_LINK) $(elements_audiopanorama_OBJECTS) $(elements_audiopanorama_LDADD) $(LIBS)
+
 elements/audiowsincband$(EXEEXT): $(elements_audiowsincband_OBJECTS) $(elements_audiowsincband_DEPENDENCIES) $(EXTRA_elements_audiowsincband_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/audiowsincband$(EXEEXT)
 	$(AM_V_CCLD)$(elements_audiowsincband_LINK) $(elements_audiowsincband_OBJECTS) $(elements_audiowsincband_LDADD) $(LIBS)
+
 elements/audiowsinclimit$(EXEEXT): $(elements_audiowsinclimit_OBJECTS) $(elements_audiowsinclimit_DEPENDENCIES) $(EXTRA_elements_audiowsinclimit_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/audiowsinclimit$(EXEEXT)
 	$(AM_V_CCLD)$(elements_audiowsinclimit_LINK) $(elements_audiowsinclimit_OBJECTS) $(elements_audiowsinclimit_LDADD) $(LIBS)
+
 elements/autodetect$(EXEEXT): $(elements_autodetect_OBJECTS) $(elements_autodetect_DEPENDENCIES) $(EXTRA_elements_autodetect_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/autodetect$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_autodetect_OBJECTS) $(elements_autodetect_LDADD) $(LIBS)
+
 elements/avimux$(EXEEXT): $(elements_avimux_OBJECTS) $(elements_avimux_DEPENDENCIES) $(EXTRA_elements_avimux_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/avimux$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_avimux_OBJECTS) $(elements_avimux_LDADD) $(LIBS)
+
 elements/avisubtitle$(EXEEXT): $(elements_avisubtitle_OBJECTS) $(elements_avisubtitle_DEPENDENCIES) $(EXTRA_elements_avisubtitle_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/avisubtitle$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_avisubtitle_OBJECTS) $(elements_avisubtitle_LDADD) $(LIBS)
+
 elements/capssetter$(EXEEXT): $(elements_capssetter_OBJECTS) $(elements_capssetter_DEPENDENCIES) $(EXTRA_elements_capssetter_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/capssetter$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_capssetter_OBJECTS) $(elements_capssetter_LDADD) $(LIBS)
+
 elements/deinterlace$(EXEEXT): $(elements_deinterlace_OBJECTS) $(elements_deinterlace_DEPENDENCIES) $(EXTRA_elements_deinterlace_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/deinterlace$(EXEEXT)
 	$(AM_V_CCLD)$(elements_deinterlace_LINK) $(elements_deinterlace_OBJECTS) $(elements_deinterlace_LDADD) $(LIBS)
+
 elements/deinterleave$(EXEEXT): $(elements_deinterleave_OBJECTS) $(elements_deinterleave_DEPENDENCIES) $(EXTRA_elements_deinterleave_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/deinterleave$(EXEEXT)
 	$(AM_V_CCLD)$(elements_deinterleave_LINK) $(elements_deinterleave_OBJECTS) $(elements_deinterleave_LDADD) $(LIBS)
+
+elements/dtmf$(EXEEXT): $(elements_dtmf_OBJECTS) $(elements_dtmf_DEPENDENCIES) $(EXTRA_elements_dtmf_DEPENDENCIES) elements/$(am__dirstamp)
+	@rm -f elements/dtmf$(EXEEXT)
+	$(AM_V_CCLD)$(elements_dtmf_LINK) $(elements_dtmf_OBJECTS) $(elements_dtmf_LDADD) $(LIBS)
+
 elements/equalizer$(EXEEXT): $(elements_equalizer_OBJECTS) $(elements_equalizer_DEPENDENCIES) $(EXTRA_elements_equalizer_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/equalizer$(EXEEXT)
 	$(AM_V_CCLD)$(elements_equalizer_LINK) $(elements_equalizer_OBJECTS) $(elements_equalizer_LDADD) $(LIBS)
+
 elements/flacparse$(EXEEXT): $(elements_flacparse_OBJECTS) $(elements_flacparse_DEPENDENCIES) $(EXTRA_elements_flacparse_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/flacparse$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_flacparse_OBJECTS) $(elements_flacparse_LDADD) $(LIBS)
+
 elements/flvdemux$(EXEEXT): $(elements_flvdemux_OBJECTS) $(elements_flvdemux_DEPENDENCIES) $(EXTRA_elements_flvdemux_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/flvdemux$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_flvdemux_OBJECTS) $(elements_flvdemux_LDADD) $(LIBS)
+
 elements/flvmux$(EXEEXT): $(elements_flvmux_OBJECTS) $(elements_flvmux_DEPENDENCIES) $(EXTRA_elements_flvmux_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/flvmux$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_flvmux_OBJECTS) $(elements_flvmux_LDADD) $(LIBS)
+
 elements/gdkpixbufsink$(EXEEXT): $(elements_gdkpixbufsink_OBJECTS) $(elements_gdkpixbufsink_DEPENDENCIES) $(EXTRA_elements_gdkpixbufsink_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/gdkpixbufsink$(EXEEXT)
 	$(AM_V_CCLD)$(elements_gdkpixbufsink_LINK) $(elements_gdkpixbufsink_OBJECTS) $(elements_gdkpixbufsink_LDADD) $(LIBS)
+
 elements/icydemux$(EXEEXT): $(elements_icydemux_OBJECTS) $(elements_icydemux_DEPENDENCIES) $(EXTRA_elements_icydemux_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/icydemux$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_icydemux_OBJECTS) $(elements_icydemux_LDADD) $(LIBS)
+
 elements/id3demux$(EXEEXT): $(elements_id3demux_OBJECTS) $(elements_id3demux_DEPENDENCIES) $(EXTRA_elements_id3demux_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/id3demux$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_id3demux_OBJECTS) $(elements_id3demux_LDADD) $(LIBS)
+
 elements/id3v2mux$(EXEEXT): $(elements_id3v2mux_OBJECTS) $(elements_id3v2mux_DEPENDENCIES) $(EXTRA_elements_id3v2mux_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/id3v2mux$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_id3v2mux_OBJECTS) $(elements_id3v2mux_LDADD) $(LIBS)
+
 elements/imagefreeze$(EXEEXT): $(elements_imagefreeze_OBJECTS) $(elements_imagefreeze_DEPENDENCIES) $(EXTRA_elements_imagefreeze_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/imagefreeze$(EXEEXT)
 	$(AM_V_CCLD)$(elements_imagefreeze_LINK) $(elements_imagefreeze_OBJECTS) $(elements_imagefreeze_LDADD) $(LIBS)
+
 elements/interleave$(EXEEXT): $(elements_interleave_OBJECTS) $(elements_interleave_DEPENDENCIES) $(EXTRA_elements_interleave_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/interleave$(EXEEXT)
 	$(AM_V_CCLD)$(elements_interleave_LINK) $(elements_interleave_OBJECTS) $(elements_interleave_LDADD) $(LIBS)
+
 elements/jpegdec$(EXEEXT): $(elements_jpegdec_OBJECTS) $(elements_jpegdec_DEPENDENCIES) $(EXTRA_elements_jpegdec_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/jpegdec$(EXEEXT)
 	$(AM_V_CCLD)$(elements_jpegdec_LINK) $(elements_jpegdec_OBJECTS) $(elements_jpegdec_LDADD) $(LIBS)
+
 elements/jpegenc$(EXEEXT): $(elements_jpegenc_OBJECTS) $(elements_jpegenc_DEPENDENCIES) $(EXTRA_elements_jpegenc_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/jpegenc$(EXEEXT)
 	$(AM_V_CCLD)$(elements_jpegenc_LINK) $(elements_jpegenc_OBJECTS) $(elements_jpegenc_LDADD) $(LIBS)
+
 elements/level$(EXEEXT): $(elements_level_OBJECTS) $(elements_level_DEPENDENCIES) $(EXTRA_elements_level_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/level$(EXEEXT)
 	$(AM_V_CCLD)$(elements_level_LINK) $(elements_level_OBJECTS) $(elements_level_LDADD) $(LIBS)
+
 elements/matroskamux$(EXEEXT): $(elements_matroskamux_OBJECTS) $(elements_matroskamux_DEPENDENCIES) $(EXTRA_elements_matroskamux_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/matroskamux$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_matroskamux_OBJECTS) $(elements_matroskamux_LDADD) $(LIBS)
+
 elements/matroskaparse$(EXEEXT): $(elements_matroskaparse_OBJECTS) $(elements_matroskaparse_DEPENDENCIES) $(EXTRA_elements_matroskaparse_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/matroskaparse$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_matroskaparse_OBJECTS) $(elements_matroskaparse_LDADD) $(LIBS)
+
 elements/mpegaudioparse$(EXEEXT): $(elements_mpegaudioparse_OBJECTS) $(elements_mpegaudioparse_DEPENDENCIES) $(EXTRA_elements_mpegaudioparse_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/mpegaudioparse$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_mpegaudioparse_OBJECTS) $(elements_mpegaudioparse_LDADD) $(LIBS)
+
+elements/mulawdec$(EXEEXT): $(elements_mulawdec_OBJECTS) $(elements_mulawdec_DEPENDENCIES) $(EXTRA_elements_mulawdec_DEPENDENCIES) elements/$(am__dirstamp)
+	@rm -f elements/mulawdec$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(elements_mulawdec_OBJECTS) $(elements_mulawdec_LDADD) $(LIBS)
+
+elements/mulawenc$(EXEEXT): $(elements_mulawenc_OBJECTS) $(elements_mulawenc_DEPENDENCIES) $(EXTRA_elements_mulawenc_DEPENDENCIES) elements/$(am__dirstamp)
+	@rm -f elements/mulawenc$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(elements_mulawenc_OBJECTS) $(elements_mulawenc_LDADD) $(LIBS)
+
 elements/multifile$(EXEEXT): $(elements_multifile_OBJECTS) $(elements_multifile_DEPENDENCIES) $(EXTRA_elements_multifile_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/multifile$(EXEEXT)
 	$(AM_V_CCLD)$(elements_multifile_LINK) $(elements_multifile_OBJECTS) $(elements_multifile_LDADD) $(LIBS)
+
 elements/qtmux$(EXEEXT): $(elements_qtmux_OBJECTS) $(elements_qtmux_DEPENDENCIES) $(EXTRA_elements_qtmux_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/qtmux$(EXEEXT)
 	$(AM_V_CCLD)$(elements_qtmux_LINK) $(elements_qtmux_OBJECTS) $(elements_qtmux_LDADD) $(LIBS)
+
 elements/rganalysis$(EXEEXT): $(elements_rganalysis_OBJECTS) $(elements_rganalysis_DEPENDENCIES) $(EXTRA_elements_rganalysis_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/rganalysis$(EXEEXT)
 	$(AM_V_CCLD)$(elements_rganalysis_LINK) $(elements_rganalysis_OBJECTS) $(elements_rganalysis_LDADD) $(LIBS)
+
 elements/rglimiter$(EXEEXT): $(elements_rglimiter_OBJECTS) $(elements_rglimiter_DEPENDENCIES) $(EXTRA_elements_rglimiter_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/rglimiter$(EXEEXT)
 	$(AM_V_CCLD)$(elements_rglimiter_LINK) $(elements_rglimiter_OBJECTS) $(elements_rglimiter_LDADD) $(LIBS)
+
 elements/rgvolume$(EXEEXT): $(elements_rgvolume_OBJECTS) $(elements_rgvolume_DEPENDENCIES) $(EXTRA_elements_rgvolume_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/rgvolume$(EXEEXT)
 	$(AM_V_CCLD)$(elements_rgvolume_LINK) $(elements_rgvolume_OBJECTS) $(elements_rgvolume_LDADD) $(LIBS)
+
 elements/rtp-payloading$(EXEEXT): $(elements_rtp_payloading_OBJECTS) $(elements_rtp_payloading_DEPENDENCIES) $(EXTRA_elements_rtp_payloading_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/rtp-payloading$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_rtp_payloading_OBJECTS) $(elements_rtp_payloading_LDADD) $(LIBS)
+
 elements/rtpbin$(EXEEXT): $(elements_rtpbin_OBJECTS) $(elements_rtpbin_DEPENDENCIES) $(EXTRA_elements_rtpbin_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/rtpbin$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_rtpbin_OBJECTS) $(elements_rtpbin_LDADD) $(LIBS)
+
 elements/rtpbin_buffer_list$(EXEEXT): $(elements_rtpbin_buffer_list_OBJECTS) $(elements_rtpbin_buffer_list_DEPENDENCIES) $(EXTRA_elements_rtpbin_buffer_list_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/rtpbin_buffer_list$(EXEEXT)
 	$(AM_V_CCLD)$(elements_rtpbin_buffer_list_LINK) $(elements_rtpbin_buffer_list_OBJECTS) $(elements_rtpbin_buffer_list_LDADD) $(LIBS)
+
 elements/rtpjitterbuffer$(EXEEXT): $(elements_rtpjitterbuffer_OBJECTS) $(elements_rtpjitterbuffer_DEPENDENCIES) $(EXTRA_elements_rtpjitterbuffer_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/rtpjitterbuffer$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_rtpjitterbuffer_OBJECTS) $(elements_rtpjitterbuffer_LDADD) $(LIBS)
+
+elements/rtpmux$(EXEEXT): $(elements_rtpmux_OBJECTS) $(elements_rtpmux_DEPENDENCIES) $(EXTRA_elements_rtpmux_DEPENDENCIES) elements/$(am__dirstamp)
+	@rm -f elements/rtpmux$(EXEEXT)
+	$(AM_V_CCLD)$(elements_rtpmux_LINK) $(elements_rtpmux_OBJECTS) $(elements_rtpmux_LDADD) $(LIBS)
+
 elements/shapewipe$(EXEEXT): $(elements_shapewipe_OBJECTS) $(elements_shapewipe_DEPENDENCIES) $(EXTRA_elements_shapewipe_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/shapewipe$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_shapewipe_OBJECTS) $(elements_shapewipe_LDADD) $(LIBS)
+
 elements/souphttpsrc$(EXEEXT): $(elements_souphttpsrc_OBJECTS) $(elements_souphttpsrc_DEPENDENCIES) $(EXTRA_elements_souphttpsrc_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/souphttpsrc$(EXEEXT)
 	$(AM_V_CCLD)$(elements_souphttpsrc_LINK) $(elements_souphttpsrc_OBJECTS) $(elements_souphttpsrc_LDADD) $(LIBS)
+
 elements/spectrum$(EXEEXT): $(elements_spectrum_OBJECTS) $(elements_spectrum_DEPENDENCIES) $(EXTRA_elements_spectrum_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/spectrum$(EXEEXT)
 	$(AM_V_CCLD)$(elements_spectrum_LINK) $(elements_spectrum_OBJECTS) $(elements_spectrum_LDADD) $(LIBS)
+
 elements/sunaudio$(EXEEXT): $(elements_sunaudio_OBJECTS) $(elements_sunaudio_DEPENDENCIES) $(EXTRA_elements_sunaudio_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/sunaudio$(EXEEXT)
 	$(AM_V_CCLD)$(elements_sunaudio_LINK) $(elements_sunaudio_OBJECTS) $(elements_sunaudio_LDADD) $(LIBS)
+
 elements/udpsink$(EXEEXT): $(elements_udpsink_OBJECTS) $(elements_udpsink_DEPENDENCIES) $(EXTRA_elements_udpsink_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/udpsink$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_udpsink_OBJECTS) $(elements_udpsink_LDADD) $(LIBS)
+
 elements/udpsrc$(EXEEXT): $(elements_udpsrc_OBJECTS) $(elements_udpsrc_DEPENDENCIES) $(EXTRA_elements_udpsrc_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/udpsrc$(EXEEXT)
 	$(AM_V_CCLD)$(elements_udpsrc_LINK) $(elements_udpsrc_OBJECTS) $(elements_udpsrc_LDADD) $(LIBS)
+
 elements/videocrop$(EXEEXT): $(elements_videocrop_OBJECTS) $(elements_videocrop_DEPENDENCIES) $(EXTRA_elements_videocrop_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/videocrop$(EXEEXT)
 	$(AM_V_CCLD)$(elements_videocrop_LINK) $(elements_videocrop_OBJECTS) $(elements_videocrop_LDADD) $(LIBS)
+
 elements/videofilter$(EXEEXT): $(elements_videofilter_OBJECTS) $(elements_videofilter_DEPENDENCIES) $(EXTRA_elements_videofilter_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/videofilter$(EXEEXT)
 	$(AM_V_CCLD)$(elements_videofilter_LINK) $(elements_videofilter_OBJECTS) $(elements_videofilter_LDADD) $(LIBS)
+
+elements/videomixer$(EXEEXT): $(elements_videomixer_OBJECTS) $(elements_videomixer_DEPENDENCIES) $(EXTRA_elements_videomixer_DEPENDENCIES) elements/$(am__dirstamp)
+	@rm -f elements/videomixer$(EXEEXT)
+	$(AM_V_CCLD)$(elements_videomixer_LINK) $(elements_videomixer_OBJECTS) $(elements_videomixer_LDADD) $(LIBS)
+
 elements/vp8dec$(EXEEXT): $(elements_vp8dec_OBJECTS) $(elements_vp8dec_DEPENDENCIES) $(EXTRA_elements_vp8dec_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/vp8dec$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_vp8dec_OBJECTS) $(elements_vp8dec_LDADD) $(LIBS)
+
 elements/vp8enc$(EXEEXT): $(elements_vp8enc_OBJECTS) $(elements_vp8enc_DEPENDENCIES) $(EXTRA_elements_vp8enc_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/vp8enc$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_vp8enc_OBJECTS) $(elements_vp8enc_LDADD) $(LIBS)
+
 elements/wavpackdec$(EXEEXT): $(elements_wavpackdec_OBJECTS) $(elements_wavpackdec_DEPENDENCIES) $(EXTRA_elements_wavpackdec_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/wavpackdec$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_wavpackdec_OBJECTS) $(elements_wavpackdec_LDADD) $(LIBS)
+
 elements/wavpackenc$(EXEEXT): $(elements_wavpackenc_OBJECTS) $(elements_wavpackenc_DEPENDENCIES) $(EXTRA_elements_wavpackenc_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/wavpackenc$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_wavpackenc_OBJECTS) $(elements_wavpackenc_LDADD) $(LIBS)
+
 elements/wavpackparse$(EXEEXT): $(elements_wavpackparse_OBJECTS) $(elements_wavpackparse_DEPENDENCIES) $(EXTRA_elements_wavpackparse_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/wavpackparse$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_wavpackparse_OBJECTS) $(elements_wavpackparse_LDADD) $(LIBS)
+
+elements/wavparse$(EXEEXT): $(elements_wavparse_OBJECTS) $(elements_wavparse_DEPENDENCIES) $(EXTRA_elements_wavparse_DEPENDENCIES) elements/$(am__dirstamp)
+	@rm -f elements/wavparse$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(elements_wavparse_OBJECTS) $(elements_wavparse_LDADD) $(LIBS)
+
 elements/y4menc$(EXEEXT): $(elements_y4menc_OBJECTS) $(elements_y4menc_DEPENDENCIES) $(EXTRA_elements_y4menc_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/y4menc$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_y4menc_OBJECTS) $(elements_y4menc_LDADD) $(LIBS)
 generic/$(am__dirstamp):
 	@$(MKDIR_P) generic
 	@: > 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)
 orc/$(am__dirstamp):
 	@$(MKDIR_P) orc
 	@: > orc/$(am__dirstamp)
+
 orc/deinterlace$(EXEEXT): $(orc_deinterlace_OBJECTS) $(orc_deinterlace_DEPENDENCIES) $(EXTRA_orc_deinterlace_DEPENDENCIES) orc/$(am__dirstamp)
 	@rm -f orc/deinterlace$(EXEEXT)
 	$(AM_V_CCLD)$(orc_deinterlace_LINK) $(orc_deinterlace_OBJECTS) $(orc_deinterlace_LDADD) $(LIBS)
+
 orc/videobox$(EXEEXT): $(orc_videobox_OBJECTS) $(orc_videobox_DEPENDENCIES) $(EXTRA_orc_videobox_DEPENDENCIES) orc/$(am__dirstamp)
 	@rm -f orc/videobox$(EXEEXT)
 	$(AM_V_CCLD)$(orc_videobox_LINK) $(orc_videobox_OBJECTS) $(orc_videobox_LDADD) $(LIBS)
+
 orc/videomixer$(EXEEXT): $(orc_videomixer_OBJECTS) $(orc_videomixer_DEPENDENCIES) $(EXTRA_orc_videomixer_DEPENDENCIES) orc/$(am__dirstamp)
 	@rm -f orc/videomixer$(EXEEXT)
 	$(AM_V_CCLD)$(orc_videomixer_LINK) $(orc_videomixer_OBJECTS) $(orc_videomixer_LDADD) $(LIBS)
 pipelines/$(am__dirstamp):
 	@$(MKDIR_P) pipelines
 	@: > pipelines/$(am__dirstamp)
+
 pipelines/effectv$(EXEEXT): $(pipelines_effectv_OBJECTS) $(pipelines_effectv_DEPENDENCIES) $(EXTRA_pipelines_effectv_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/effectv$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(pipelines_effectv_OBJECTS) $(pipelines_effectv_LDADD) $(LIBS)
+
 pipelines/flacdec$(EXEEXT): $(pipelines_flacdec_OBJECTS) $(pipelines_flacdec_DEPENDENCIES) $(EXTRA_pipelines_flacdec_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/flacdec$(EXEEXT)
 	$(AM_V_CCLD)$(pipelines_flacdec_LINK) $(pipelines_flacdec_OBJECTS) $(pipelines_flacdec_LDADD) $(LIBS)
+
 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)$(LINK) $(pipelines_simple_launch_lines_OBJECTS) $(pipelines_simple_launch_lines_LDADD) $(LIBS)
+
 pipelines/tagschecking$(EXEEXT): $(pipelines_tagschecking_OBJECTS) $(pipelines_tagschecking_DEPENDENCIES) $(EXTRA_pipelines_tagschecking_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/tagschecking$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(pipelines_tagschecking_OBJECTS) $(pipelines_tagschecking_LDADD) $(LIBS)
+
 pipelines/wavenc$(EXEEXT): $(pipelines_wavenc_OBJECTS) $(pipelines_wavenc_DEPENDENCIES) $(EXTRA_pipelines_wavenc_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/wavenc$(EXEEXT)
 	$(AM_V_CCLD)$(pipelines_wavenc_LINK) $(pipelines_wavenc_OBJECTS) $(pipelines_wavenc_LDADD) $(LIBS)
+
 pipelines/wavpack$(EXEEXT): $(pipelines_wavpack_OBJECTS) $(pipelines_wavpack_DEPENDENCIES) $(EXTRA_pipelines_wavpack_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/wavpack$(EXEEXT)
 	$(AM_V_CCLD)$(pipelines_wavpack_LINK) $(pipelines_wavpack_OBJECTS) $(pipelines_wavpack_LDADD) $(LIBS)
@@ -1557,6 +1963,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_audiowsinclimit-audiowsinclimit.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_deinterlace-deinterlace.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_deinterleave-deinterleave.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_dtmf-dtmf.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_equalizer-equalizer.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_gdkpixbufsink-gdkpixbufsink.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_imagefreeze-imagefreeze.Po@am__quote@
@@ -1570,12 +1977,14 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_rglimiter-rglimiter.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_rgvolume-rgvolume.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_rtpbin_buffer_list-rtpbin_buffer_list.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_rtpmux-rtpmux.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_souphttpsrc-souphttpsrc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_spectrum-spectrum.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_sunaudio-sunaudio.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_udpsrc-udpsrc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_videocrop-videocrop.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_videofilter-videofilter.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_videomixer-videomixer.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flacparse.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flvdemux.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flvmux.Po@am__quote@
@@ -1586,6 +1995,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matroskamux.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matroskaparse.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpegaudioparse.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mulawdec.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mulawenc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orc_deinterlace-deinterlace.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orc_videobox-videobox.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orc_videomixer-videomixer.Po@am__quote@
@@ -1605,6 +2016,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wavpackdec.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wavpackenc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wavpackparse.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wavparse.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/y4menc.Po@am__quote@
 
 .c.o:
@@ -1957,6 +2369,20 @@ elements_deinterleave-deinterleave.obj: elements/deinterleave.c
 @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_deinterleave_CFLAGS) $(CFLAGS) -c -o elements_deinterleave-deinterleave.obj `if test -f 'elements/deinterleave.c'; then $(CYGPATH_W) 'elements/deinterleave.c'; else $(CYGPATH_W) '$(srcdir)/elements/deinterleave.c'; fi`
 
+elements_dtmf-dtmf.o: elements/dtmf.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_dtmf_CFLAGS) $(CFLAGS) -MT elements_dtmf-dtmf.o -MD -MP -MF $(DEPDIR)/elements_dtmf-dtmf.Tpo -c -o elements_dtmf-dtmf.o `test -f 'elements/dtmf.c' || echo '$(srcdir)/'`elements/dtmf.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_dtmf-dtmf.Tpo $(DEPDIR)/elements_dtmf-dtmf.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/dtmf.c' object='elements_dtmf-dtmf.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_dtmf_CFLAGS) $(CFLAGS) -c -o elements_dtmf-dtmf.o `test -f 'elements/dtmf.c' || echo '$(srcdir)/'`elements/dtmf.c
+
+elements_dtmf-dtmf.obj: elements/dtmf.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_dtmf_CFLAGS) $(CFLAGS) -MT elements_dtmf-dtmf.obj -MD -MP -MF $(DEPDIR)/elements_dtmf-dtmf.Tpo -c -o elements_dtmf-dtmf.obj `if test -f 'elements/dtmf.c'; then $(CYGPATH_W) 'elements/dtmf.c'; else $(CYGPATH_W) '$(srcdir)/elements/dtmf.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_dtmf-dtmf.Tpo $(DEPDIR)/elements_dtmf-dtmf.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/dtmf.c' object='elements_dtmf-dtmf.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_dtmf_CFLAGS) $(CFLAGS) -c -o elements_dtmf-dtmf.obj `if test -f 'elements/dtmf.c'; then $(CYGPATH_W) 'elements/dtmf.c'; else $(CYGPATH_W) '$(srcdir)/elements/dtmf.c'; fi`
+
 elements_equalizer-equalizer.o: elements/equalizer.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_equalizer_CFLAGS) $(CFLAGS) -MT elements_equalizer-equalizer.o -MD -MP -MF $(DEPDIR)/elements_equalizer-equalizer.Tpo -c -o elements_equalizer-equalizer.o `test -f 'elements/equalizer.c' || echo '$(srcdir)/'`elements/equalizer.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_equalizer-equalizer.Tpo $(DEPDIR)/elements_equalizer-equalizer.Po
@@ -2181,6 +2607,34 @@ mpegaudioparse.obj: elements/mpegaudioparse.c
 @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) $(AM_CFLAGS) $(CFLAGS) -c -o mpegaudioparse.obj `if test -f 'elements/mpegaudioparse.c'; then $(CYGPATH_W) 'elements/mpegaudioparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/mpegaudioparse.c'; fi`
 
+mulawdec.o: elements/mulawdec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mulawdec.o -MD -MP -MF $(DEPDIR)/mulawdec.Tpo -c -o mulawdec.o `test -f 'elements/mulawdec.c' || echo '$(srcdir)/'`elements/mulawdec.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mulawdec.Tpo $(DEPDIR)/mulawdec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/mulawdec.c' object='mulawdec.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) $(AM_CFLAGS) $(CFLAGS) -c -o mulawdec.o `test -f 'elements/mulawdec.c' || echo '$(srcdir)/'`elements/mulawdec.c
+
+mulawdec.obj: elements/mulawdec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mulawdec.obj -MD -MP -MF $(DEPDIR)/mulawdec.Tpo -c -o mulawdec.obj `if test -f 'elements/mulawdec.c'; then $(CYGPATH_W) 'elements/mulawdec.c'; else $(CYGPATH_W) '$(srcdir)/elements/mulawdec.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mulawdec.Tpo $(DEPDIR)/mulawdec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/mulawdec.c' object='mulawdec.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) $(AM_CFLAGS) $(CFLAGS) -c -o mulawdec.obj `if test -f 'elements/mulawdec.c'; then $(CYGPATH_W) 'elements/mulawdec.c'; else $(CYGPATH_W) '$(srcdir)/elements/mulawdec.c'; fi`
+
+mulawenc.o: elements/mulawenc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mulawenc.o -MD -MP -MF $(DEPDIR)/mulawenc.Tpo -c -o mulawenc.o `test -f 'elements/mulawenc.c' || echo '$(srcdir)/'`elements/mulawenc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mulawenc.Tpo $(DEPDIR)/mulawenc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/mulawenc.c' object='mulawenc.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) $(AM_CFLAGS) $(CFLAGS) -c -o mulawenc.o `test -f 'elements/mulawenc.c' || echo '$(srcdir)/'`elements/mulawenc.c
+
+mulawenc.obj: elements/mulawenc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mulawenc.obj -MD -MP -MF $(DEPDIR)/mulawenc.Tpo -c -o mulawenc.obj `if test -f 'elements/mulawenc.c'; then $(CYGPATH_W) 'elements/mulawenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/mulawenc.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mulawenc.Tpo $(DEPDIR)/mulawenc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/mulawenc.c' object='mulawenc.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) $(AM_CFLAGS) $(CFLAGS) -c -o mulawenc.obj `if test -f 'elements/mulawenc.c'; then $(CYGPATH_W) 'elements/mulawenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/mulawenc.c'; fi`
+
 elements_multifile-multifile.o: elements/multifile.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_multifile_CFLAGS) $(CFLAGS) -MT elements_multifile-multifile.o -MD -MP -MF $(DEPDIR)/elements_multifile-multifile.Tpo -c -o elements_multifile-multifile.o `test -f 'elements/multifile.c' || echo '$(srcdir)/'`elements/multifile.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_multifile-multifile.Tpo $(DEPDIR)/elements_multifile-multifile.Po
@@ -2307,6 +2761,20 @@ rtpjitterbuffer.obj: elements/rtpjitterbuffer.c
 @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) $(AM_CFLAGS) $(CFLAGS) -c -o rtpjitterbuffer.obj `if test -f 'elements/rtpjitterbuffer.c'; then $(CYGPATH_W) 'elements/rtpjitterbuffer.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpjitterbuffer.c'; fi`
 
+elements_rtpmux-rtpmux.o: elements/rtpmux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpmux_CFLAGS) $(CFLAGS) -MT elements_rtpmux-rtpmux.o -MD -MP -MF $(DEPDIR)/elements_rtpmux-rtpmux.Tpo -c -o elements_rtpmux-rtpmux.o `test -f 'elements/rtpmux.c' || echo '$(srcdir)/'`elements/rtpmux.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_rtpmux-rtpmux.Tpo $(DEPDIR)/elements_rtpmux-rtpmux.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/rtpmux.c' object='elements_rtpmux-rtpmux.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_rtpmux_CFLAGS) $(CFLAGS) -c -o elements_rtpmux-rtpmux.o `test -f 'elements/rtpmux.c' || echo '$(srcdir)/'`elements/rtpmux.c
+
+elements_rtpmux-rtpmux.obj: elements/rtpmux.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpmux_CFLAGS) $(CFLAGS) -MT elements_rtpmux-rtpmux.obj -MD -MP -MF $(DEPDIR)/elements_rtpmux-rtpmux.Tpo -c -o elements_rtpmux-rtpmux.obj `if test -f 'elements/rtpmux.c'; then $(CYGPATH_W) 'elements/rtpmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpmux.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_rtpmux-rtpmux.Tpo $(DEPDIR)/elements_rtpmux-rtpmux.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/rtpmux.c' object='elements_rtpmux-rtpmux.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_rtpmux_CFLAGS) $(CFLAGS) -c -o elements_rtpmux-rtpmux.obj `if test -f 'elements/rtpmux.c'; then $(CYGPATH_W) 'elements/rtpmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpmux.c'; fi`
+
 shapewipe.o: elements/shapewipe.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shapewipe.o -MD -MP -MF $(DEPDIR)/shapewipe.Tpo -c -o shapewipe.o `test -f 'elements/shapewipe.c' || echo '$(srcdir)/'`elements/shapewipe.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/shapewipe.Tpo $(DEPDIR)/shapewipe.Po
@@ -2419,6 +2887,20 @@ elements_videofilter-videofilter.obj: elements/videofilter.c
 @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_videofilter_CFLAGS) $(CFLAGS) -c -o elements_videofilter-videofilter.obj `if test -f 'elements/videofilter.c'; then $(CYGPATH_W) 'elements/videofilter.c'; else $(CYGPATH_W) '$(srcdir)/elements/videofilter.c'; fi`
 
+elements_videomixer-videomixer.o: elements/videomixer.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videomixer_CFLAGS) $(CFLAGS) -MT elements_videomixer-videomixer.o -MD -MP -MF $(DEPDIR)/elements_videomixer-videomixer.Tpo -c -o elements_videomixer-videomixer.o `test -f 'elements/videomixer.c' || echo '$(srcdir)/'`elements/videomixer.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_videomixer-videomixer.Tpo $(DEPDIR)/elements_videomixer-videomixer.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/videomixer.c' object='elements_videomixer-videomixer.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_videomixer_CFLAGS) $(CFLAGS) -c -o elements_videomixer-videomixer.o `test -f 'elements/videomixer.c' || echo '$(srcdir)/'`elements/videomixer.c
+
+elements_videomixer-videomixer.obj: elements/videomixer.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videomixer_CFLAGS) $(CFLAGS) -MT elements_videomixer-videomixer.obj -MD -MP -MF $(DEPDIR)/elements_videomixer-videomixer.Tpo -c -o elements_videomixer-videomixer.obj `if test -f 'elements/videomixer.c'; then $(CYGPATH_W) 'elements/videomixer.c'; else $(CYGPATH_W) '$(srcdir)/elements/videomixer.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_videomixer-videomixer.Tpo $(DEPDIR)/elements_videomixer-videomixer.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/videomixer.c' object='elements_videomixer-videomixer.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_videomixer_CFLAGS) $(CFLAGS) -c -o elements_videomixer-videomixer.obj `if test -f 'elements/videomixer.c'; then $(CYGPATH_W) 'elements/videomixer.c'; else $(CYGPATH_W) '$(srcdir)/elements/videomixer.c'; fi`
+
 vp8dec.o: elements/vp8dec.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vp8dec.o -MD -MP -MF $(DEPDIR)/vp8dec.Tpo -c -o vp8dec.o `test -f 'elements/vp8dec.c' || echo '$(srcdir)/'`elements/vp8dec.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/vp8dec.Tpo $(DEPDIR)/vp8dec.Po
@@ -2489,6 +2971,20 @@ wavpackparse.obj: elements/wavpackparse.c
 @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) $(AM_CFLAGS) $(CFLAGS) -c -o wavpackparse.obj `if test -f 'elements/wavpackparse.c'; then $(CYGPATH_W) 'elements/wavpackparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/wavpackparse.c'; fi`
 
+wavparse.o: elements/wavparse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT wavparse.o -MD -MP -MF $(DEPDIR)/wavparse.Tpo -c -o wavparse.o `test -f 'elements/wavparse.c' || echo '$(srcdir)/'`elements/wavparse.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/wavparse.Tpo $(DEPDIR)/wavparse.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/wavparse.c' object='wavparse.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) $(AM_CFLAGS) $(CFLAGS) -c -o wavparse.o `test -f 'elements/wavparse.c' || echo '$(srcdir)/'`elements/wavparse.c
+
+wavparse.obj: elements/wavparse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT wavparse.obj -MD -MP -MF $(DEPDIR)/wavparse.Tpo -c -o wavparse.obj `if test -f 'elements/wavparse.c'; then $(CYGPATH_W) 'elements/wavparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/wavparse.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/wavparse.Tpo $(DEPDIR)/wavparse.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/wavparse.c' object='wavparse.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) $(AM_CFLAGS) $(CFLAGS) -c -o wavparse.obj `if test -f 'elements/wavparse.c'; then $(CYGPATH_W) 'elements/wavparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/wavparse.c'; fi`
+
 y4menc.o: elements/y4menc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT y4menc.o -MD -MP -MF $(DEPDIR)/y4menc.Tpo -c -o y4menc.o `test -f 'elements/y4menc.c' || echo '$(srcdir)/'`elements/y4menc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/y4menc.Tpo $(DEPDIR)/y4menc.Po
@@ -2653,26 +3149,15 @@ clean-libtool:
 	-rm -rf orc/.libs orc/_libs
 	-rm -rf pipelines/.libs pipelines/_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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -2684,15 +3169,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -2701,102 +3182,726 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
-check-TESTS: $(TESTS)
-	@failed=0; all=0; xfail=0; xpass=0; skip=0; \
-	srcdir=$(srcdir); export srcdir; \
-	list=' $(TESTS) '; \
-	$(am__tty_colors); \
-	if test -n "$$list"; then \
-	  for tst in $$list; do \
-	    if test -f ./$$tst; then dir=./; \
-	    elif test -f $$tst; then dir=; \
-	    else dir="$(srcdir)/"; fi; \
-	    if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
-	      all=`expr $$all + 1`; \
-	      case " $(XFAIL_TESTS) " in \
-	      *[\ \	]$$tst[\ \	]*) \
-		xpass=`expr $$xpass + 1`; \
-		failed=`expr $$failed + 1`; \
-		col=$$red; res=XPASS; \
-	      ;; \
-	      *) \
-		col=$$grn; res=PASS; \
-	      ;; \
-	      esac; \
-	    elif test $$? -ne 77; then \
-	      all=`expr $$all + 1`; \
-	      case " $(XFAIL_TESTS) " in \
-	      *[\ \	]$$tst[\ \	]*) \
-		xfail=`expr $$xfail + 1`; \
-		col=$$lgn; res=XFAIL; \
-	      ;; \
-	      *) \
-		failed=`expr $$failed + 1`; \
-		col=$$red; res=FAIL; \
-	      ;; \
-	      esac; \
-	    else \
-	      skip=`expr $$skip + 1`; \
-	      col=$$blu; res=SKIP; \
-	    fi; \
-	    echo "$${col}$$res$${std}: $$tst"; \
-	  done; \
-	  if test "$$all" -eq 1; then \
-	    tests="test"; \
-	    All=""; \
-	  else \
-	    tests="tests"; \
-	    All="All "; \
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+	rm -f $< $@
+	$(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+	@:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+	@$(am__set_TESTS_bases); \
+	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+	redo_bases=`for i in $$bases; do \
+	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+	            done`; \
+	if test -n "$$redo_bases"; then \
+	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+	  if $(am__make_dryrun); then :; else \
+	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
 	  fi; \
-	  if test "$$failed" -eq 0; then \
-	    if test "$$xfail" -eq 0; then \
-	      banner="$$All$$all $$tests passed"; \
+	fi; \
+	if test -n "$$am__remaking_logs"; then \
+	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+	       "recursion detected" >&2; \
+	else \
+	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+	fi; \
+	if $(am__make_dryrun); then :; else \
+	  st=0;  \
+	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+	  for i in $$redo_bases; do \
+	    test -f $$i.trs && test -r $$i.trs \
+	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+	    test -f $$i.log && test -r $$i.log \
+	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+	  done; \
+	  test $$st -eq 0 || exit 1; \
+	fi
+	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+	ws='[ 	]'; \
+	results=`for b in $$bases; do echo $$b.trs; done`; \
+	test -n "$$results" || results=/dev/null; \
+	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
+	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
+	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
+	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
+	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+	  success=true; \
+	else \
+	  success=false; \
+	fi; \
+	br='==================='; br=$$br$$br$$br$$br; \
+	result_count () \
+	{ \
+	    if test x"$$1" = x"--maybe-color"; then \
+	      maybe_colorize=yes; \
+	    elif test x"$$1" = x"--no-color"; then \
+	      maybe_colorize=no; \
 	    else \
-	      if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
-	      banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
 	    fi; \
-	  else \
-	    if test "$$xpass" -eq 0; then \
-	      banner="$$failed of $$all $$tests failed"; \
+	    shift; \
+	    desc=$$1 count=$$2; \
+	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
+	      color_start=$$3 color_end=$$std; \
 	    else \
-	      if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
-	      banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+	      color_start= color_end=; \
 	    fi; \
-	  fi; \
-	  dashes="$$banner"; \
-	  skipped=""; \
-	  if test "$$skip" -ne 0; then \
-	    if test "$$skip" -eq 1; then \
-	      skipped="($$skip test was not run)"; \
-	    else \
-	      skipped="($$skip tests were not run)"; \
-	    fi; \
-	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
-	      dashes="$$skipped"; \
-	  fi; \
-	  report=""; \
-	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
-	    report="Please report to $(PACKAGE_BUGREPORT)"; \
-	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
-	      dashes="$$report"; \
-	  fi; \
-	  dashes=`echo "$$dashes" | sed s/./=/g`; \
-	  if test "$$failed" -eq 0; then \
-	    col="$$grn"; \
-	  else \
-	    col="$$red"; \
-	  fi; \
-	  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
+	    echo "$${color_start}# $$desc $$count$${color_end}"; \
+	}; \
+	create_testsuite_report () \
+	{ \
+	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
+	  result_count $$1 "PASS: " $$pass  "$$grn"; \
+	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
+	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+	  result_count $$1 "FAIL: " $$fail  "$$red"; \
+	  result_count $$1 "XPASS:" $$xpass "$$red"; \
+	  result_count $$1 "ERROR:" $$error "$$mgn"; \
+	}; \
+	{								\
+	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
+	    $(am__rst_title);						\
+	  create_testsuite_report --no-color;				\
+	  echo;								\
+	  echo ".. contents:: :depth: 2";				\
+	  echo;								\
+	  for b in $$bases; do echo $$b; done				\
+	    | $(am__create_global_log);					\
+	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
+	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
+	if $$success; then						\
+	  col="$$grn";							\
+	 else								\
+	  col="$$red";							\
+	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
+	fi;								\
+	echo "$${col}$$br$${std}"; 					\
+	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
+	echo "$${col}$$br$${std}"; 					\
+	create_testsuite_report --maybe-color;				\
+	echo "$$col$$br$$std";						\
+	if $$success; then :; else					\
+	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
+	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
+	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
+	  fi;								\
+	  echo "$$col$$br$$std";					\
+	fi;								\
+	$$success || exit 1
+
+check-TESTS:
+	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+	exit $$?;
+recheck: all $(check_PROGRAMS)
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	bases=`for i in $$bases; do echo $$i; done \
+	         | $(am__list_recheck_tests)` || exit 1; \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	log_list=`echo $$log_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+	        am__force_recheck=am--force-recheck \
+	        TEST_LOGS="$$log_list"; \
+	exit $$?
+generic/states.log: generic/states$(EXEEXT)
+	@p='generic/states$(EXEEXT)'; \
+	b='generic/states'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/aacparse.log: elements/aacparse$(EXEEXT)
+	@p='elements/aacparse$(EXEEXT)'; \
+	b='elements/aacparse'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/ac3parse.log: elements/ac3parse$(EXEEXT)
+	@p='elements/ac3parse$(EXEEXT)'; \
+	b='elements/ac3parse'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/amrparse.log: elements/amrparse$(EXEEXT)
+	@p='elements/amrparse$(EXEEXT)'; \
+	b='elements/amrparse'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/alphacolor.log: elements/alphacolor$(EXEEXT)
+	@p='elements/alphacolor$(EXEEXT)'; \
+	b='elements/alphacolor'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/aspectratiocrop.log: elements/aspectratiocrop$(EXEEXT)
+	@p='elements/aspectratiocrop$(EXEEXT)'; \
+	b='elements/aspectratiocrop'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/audioamplify.log: elements/audioamplify$(EXEEXT)
+	@p='elements/audioamplify$(EXEEXT)'; \
+	b='elements/audioamplify'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/audiochebband.log: elements/audiochebband$(EXEEXT)
+	@p='elements/audiochebband$(EXEEXT)'; \
+	b='elements/audiochebband'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/audiocheblimit.log: elements/audiocheblimit$(EXEEXT)
+	@p='elements/audiocheblimit$(EXEEXT)'; \
+	b='elements/audiocheblimit'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/audiodynamic.log: elements/audiodynamic$(EXEEXT)
+	@p='elements/audiodynamic$(EXEEXT)'; \
+	b='elements/audiodynamic'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/audioecho.log: elements/audioecho$(EXEEXT)
+	@p='elements/audioecho$(EXEEXT)'; \
+	b='elements/audioecho'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/audiofirfilter.log: elements/audiofirfilter$(EXEEXT)
+	@p='elements/audiofirfilter$(EXEEXT)'; \
+	b='elements/audiofirfilter'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/audioiirfilter.log: elements/audioiirfilter$(EXEEXT)
+	@p='elements/audioiirfilter$(EXEEXT)'; \
+	b='elements/audioiirfilter'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/audioinvert.log: elements/audioinvert$(EXEEXT)
+	@p='elements/audioinvert$(EXEEXT)'; \
+	b='elements/audioinvert'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/audiopanorama.log: elements/audiopanorama$(EXEEXT)
+	@p='elements/audiopanorama$(EXEEXT)'; \
+	b='elements/audiopanorama'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/audiowsincband.log: elements/audiowsincband$(EXEEXT)
+	@p='elements/audiowsincband$(EXEEXT)'; \
+	b='elements/audiowsincband'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/audiowsinclimit.log: elements/audiowsinclimit$(EXEEXT)
+	@p='elements/audiowsinclimit$(EXEEXT)'; \
+	b='elements/audiowsinclimit'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/autodetect.log: elements/autodetect$(EXEEXT)
+	@p='elements/autodetect$(EXEEXT)'; \
+	b='elements/autodetect'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/avimux.log: elements/avimux$(EXEEXT)
+	@p='elements/avimux$(EXEEXT)'; \
+	b='elements/avimux'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/avisubtitle.log: elements/avisubtitle$(EXEEXT)
+	@p='elements/avisubtitle$(EXEEXT)'; \
+	b='elements/avisubtitle'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/capssetter.log: elements/capssetter$(EXEEXT)
+	@p='elements/capssetter$(EXEEXT)'; \
+	b='elements/capssetter'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/deinterlace.log: elements/deinterlace$(EXEEXT)
+	@p='elements/deinterlace$(EXEEXT)'; \
+	b='elements/deinterlace'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/deinterleave.log: elements/deinterleave$(EXEEXT)
+	@p='elements/deinterleave$(EXEEXT)'; \
+	b='elements/deinterleave'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/dtmf.log: elements/dtmf$(EXEEXT)
+	@p='elements/dtmf$(EXEEXT)'; \
+	b='elements/dtmf'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/equalizer.log: elements/equalizer$(EXEEXT)
+	@p='elements/equalizer$(EXEEXT)'; \
+	b='elements/equalizer'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/flacparse.log: elements/flacparse$(EXEEXT)
+	@p='elements/flacparse$(EXEEXT)'; \
+	b='elements/flacparse'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/flvdemux.log: elements/flvdemux$(EXEEXT)
+	@p='elements/flvdemux$(EXEEXT)'; \
+	b='elements/flvdemux'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/flvmux.log: elements/flvmux$(EXEEXT)
+	@p='elements/flvmux$(EXEEXT)'; \
+	b='elements/flvmux'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/icydemux.log: elements/icydemux$(EXEEXT)
+	@p='elements/icydemux$(EXEEXT)'; \
+	b='elements/icydemux'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/id3demux.log: elements/id3demux$(EXEEXT)
+	@p='elements/id3demux$(EXEEXT)'; \
+	b='elements/id3demux'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/imagefreeze.log: elements/imagefreeze$(EXEEXT)
+	@p='elements/imagefreeze$(EXEEXT)'; \
+	b='elements/imagefreeze'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/interleave.log: elements/interleave$(EXEEXT)
+	@p='elements/interleave$(EXEEXT)'; \
+	b='elements/interleave'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/level.log: elements/level$(EXEEXT)
+	@p='elements/level$(EXEEXT)'; \
+	b='elements/level'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/matroskamux.log: elements/matroskamux$(EXEEXT)
+	@p='elements/matroskamux$(EXEEXT)'; \
+	b='elements/matroskamux'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/matroskaparse.log: elements/matroskaparse$(EXEEXT)
+	@p='elements/matroskaparse$(EXEEXT)'; \
+	b='elements/matroskaparse'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/mpegaudioparse.log: elements/mpegaudioparse$(EXEEXT)
+	@p='elements/mpegaudioparse$(EXEEXT)'; \
+	b='elements/mpegaudioparse'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/mulawdec.log: elements/mulawdec$(EXEEXT)
+	@p='elements/mulawdec$(EXEEXT)'; \
+	b='elements/mulawdec'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/mulawenc.log: elements/mulawenc$(EXEEXT)
+	@p='elements/mulawenc$(EXEEXT)'; \
+	b='elements/mulawenc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/multifile.log: elements/multifile$(EXEEXT)
+	@p='elements/multifile$(EXEEXT)'; \
+	b='elements/multifile'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/qtmux.log: elements/qtmux$(EXEEXT)
+	@p='elements/qtmux$(EXEEXT)'; \
+	b='elements/qtmux'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/rganalysis.log: elements/rganalysis$(EXEEXT)
+	@p='elements/rganalysis$(EXEEXT)'; \
+	b='elements/rganalysis'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/rglimiter.log: elements/rglimiter$(EXEEXT)
+	@p='elements/rglimiter$(EXEEXT)'; \
+	b='elements/rglimiter'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/rgvolume.log: elements/rgvolume$(EXEEXT)
+	@p='elements/rgvolume$(EXEEXT)'; \
+	b='elements/rgvolume'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/rtp-payloading.log: elements/rtp-payloading$(EXEEXT)
+	@p='elements/rtp-payloading$(EXEEXT)'; \
+	b='elements/rtp-payloading'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/rtpbin.log: elements/rtpbin$(EXEEXT)
+	@p='elements/rtpbin$(EXEEXT)'; \
+	b='elements/rtpbin'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/rtpbin_buffer_list.log: elements/rtpbin_buffer_list$(EXEEXT)
+	@p='elements/rtpbin_buffer_list$(EXEEXT)'; \
+	b='elements/rtpbin_buffer_list'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/rtpjitterbuffer.log: elements/rtpjitterbuffer$(EXEEXT)
+	@p='elements/rtpjitterbuffer$(EXEEXT)'; \
+	b='elements/rtpjitterbuffer'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/rtpmux.log: elements/rtpmux$(EXEEXT)
+	@p='elements/rtpmux$(EXEEXT)'; \
+	b='elements/rtpmux'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/shapewipe.log: elements/shapewipe$(EXEEXT)
+	@p='elements/shapewipe$(EXEEXT)'; \
+	b='elements/shapewipe'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/spectrum.log: elements/spectrum$(EXEEXT)
+	@p='elements/spectrum$(EXEEXT)'; \
+	b='elements/spectrum'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/udpsink.log: elements/udpsink$(EXEEXT)
+	@p='elements/udpsink$(EXEEXT)'; \
+	b='elements/udpsink'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/udpsrc.log: elements/udpsrc$(EXEEXT)
+	@p='elements/udpsrc$(EXEEXT)'; \
+	b='elements/udpsrc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/videocrop.log: elements/videocrop$(EXEEXT)
+	@p='elements/videocrop$(EXEEXT)'; \
+	b='elements/videocrop'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/videofilter.log: elements/videofilter$(EXEEXT)
+	@p='elements/videofilter$(EXEEXT)'; \
+	b='elements/videofilter'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/wavpackparse.log: elements/wavpackparse$(EXEEXT)
+	@p='elements/wavpackparse$(EXEEXT)'; \
+	b='elements/wavpackparse'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/wavparse.log: elements/wavparse$(EXEEXT)
+	@p='elements/wavparse$(EXEEXT)'; \
+	b='elements/wavparse'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/y4menc.log: elements/y4menc$(EXEEXT)
+	@p='elements/y4menc$(EXEEXT)'; \
+	b='elements/y4menc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/videomixer.log: elements/videomixer$(EXEEXT)
+	@p='elements/videomixer$(EXEEXT)'; \
+	b='elements/videomixer'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/simple-launch-lines.log: pipelines/simple-launch-lines$(EXEEXT)
+	@p='pipelines/simple-launch-lines$(EXEEXT)'; \
+	b='pipelines/simple-launch-lines'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/effectv.log: pipelines/effectv$(EXEEXT)
+	@p='pipelines/effectv$(EXEEXT)'; \
+	b='pipelines/effectv'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/tagschecking.log: pipelines/tagschecking$(EXEEXT)
+	@p='pipelines/tagschecking$(EXEEXT)'; \
+	b='pipelines/tagschecking'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/wavenc.log: pipelines/wavenc$(EXEEXT)
+	@p='pipelines/wavenc$(EXEEXT)'; \
+	b='pipelines/wavenc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/flacdec.log: pipelines/flacdec$(EXEEXT)
+	@p='pipelines/flacdec$(EXEEXT)'; \
+	b='pipelines/flacdec'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/gdkpixbufsink.log: elements/gdkpixbufsink$(EXEEXT)
+	@p='elements/gdkpixbufsink$(EXEEXT)'; \
+	b='elements/gdkpixbufsink'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/jpegdec.log: elements/jpegdec$(EXEEXT)
+	@p='elements/jpegdec$(EXEEXT)'; \
+	b='elements/jpegdec'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/jpegenc.log: elements/jpegenc$(EXEEXT)
+	@p='elements/jpegenc$(EXEEXT)'; \
+	b='elements/jpegenc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/souphttpsrc.log: elements/souphttpsrc$(EXEEXT)
+	@p='elements/souphttpsrc$(EXEEXT)'; \
+	b='elements/souphttpsrc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/sunaudio.log: elements/sunaudio$(EXEEXT)
+	@p='elements/sunaudio$(EXEEXT)'; \
+	b='elements/sunaudio'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/id3v2mux.log: elements/id3v2mux$(EXEEXT)
+	@p='elements/id3v2mux$(EXEEXT)'; \
+	b='elements/id3v2mux'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/apev2mux.log: elements/apev2mux$(EXEEXT)
+	@p='elements/apev2mux$(EXEEXT)'; \
+	b='elements/apev2mux'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/vp8enc.log: elements/vp8enc$(EXEEXT)
+	@p='elements/vp8enc$(EXEEXT)'; \
+	b='elements/vp8enc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/vp8dec.log: elements/vp8dec$(EXEEXT)
+	@p='elements/vp8dec$(EXEEXT)'; \
+	b='elements/vp8dec'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/wavpackdec.log: elements/wavpackdec$(EXEEXT)
+	@p='elements/wavpackdec$(EXEEXT)'; \
+	b='elements/wavpackdec'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/wavpackenc.log: elements/wavpackenc$(EXEEXT)
+	@p='elements/wavpackenc$(EXEEXT)'; \
+	b='elements/wavpackenc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/wavpack.log: pipelines/wavpack$(EXEEXT)
+	@p='pipelines/wavpack$(EXEEXT)'; \
+	b='pipelines/wavpack'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+orc/deinterlace.log: orc/deinterlace$(EXEEXT)
+	@p='orc/deinterlace$(EXEEXT)'; \
+	b='orc/deinterlace'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+orc/videomixer.log: orc/videomixer$(EXEEXT)
+	@p='orc/videomixer$(EXEEXT)'; \
+	b='orc/videomixer'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+orc/videobox.log: orc/videobox$(EXEEXT)
+	@p='orc/videobox$(EXEEXT)'; \
+	b='orc/videobox'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+	@p='$<'; \
+	$(am__set_b); \
+	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@	@p='$<'; \
+@am__EXEEXT_TRUE@	$(am__set_b); \
+@am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -2854,6 +3959,9 @@ install-strip:
 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
 	fi
 mostlyclean-generic:
+	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
 
 clean-generic:
 	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
@@ -2942,19 +4050,20 @@ uninstall-am:
 
 .MAKE: check-am install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \
 	clean-checkPROGRAMS clean-generic clean-libtool clean-local \
-	clean-noinstLTLIBRARIES 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
+	clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am 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 recheck tags tags-am uninstall \
+	uninstall-am
 
 
 # keep target around, since it's referenced in the modules' Makefiles
@@ -2967,6 +4076,8 @@ clean-local-check:
 @HAVE_VALGRIND_FALSE@check-valgrind:
 @HAVE_VALGRIND_FALSE@	@true
 
+LOOPS ?= 10
+
 # run any given test by running make test.check
 # if the test fails, run it again at at least debug level 2
 %.check: %
@@ -3028,6 +4139,17 @@ clean-local-check:
 	--gen-suppressions=all					\
 	./$* 2>&1 | tee suppressions.log
 
+# valgrind torture any given test
+%.valgrind-torture: %
+	@for i in `seq 1 $(LOOPS)`; do				\
+		$(MAKE) $*.valgrind ||				\
+		(echo "Failure after $$i runs"; exit 1) ||	\
+		exit 1;						\
+	done
+	@banner="All $(LOOPS) loops passed";			\
+	dashes=`echo "$$banner" | sed s/./=/g`;			\
+	echo $$dashes; echo $$banner; echo $$dashes
+
 # valgrind any given test until failure by running make test.valgrind-forever
 %.valgrind-forever: %
 	@while $(MAKE) $*.valgrind; do				\
@@ -3040,9 +4162,31 @@ clean-local-check:
 	$(LIBTOOL) --mode=execute				\
 	gdb $*
 
+%.lcov-reset:
+	$(MAKE) $*.lcov-run
+	$(MAKE) $*.lcov-report
+
+%.lcov: %
+	$(MAKE) $*.lcov-reset
+
+@GST_GCOV_ENABLED_TRUE@%.lcov-clean:
+@GST_GCOV_ENABLED_TRUE@	$(MAKE) -C $(top_builddir) lcov-clean
+
+@GST_GCOV_ENABLED_TRUE@%.lcov-run:
+@GST_GCOV_ENABLED_TRUE@	$(MAKE) $*.lcov-clean
+@GST_GCOV_ENABLED_TRUE@	$(MAKE) $*.check
+
+@GST_GCOV_ENABLED_TRUE@%.lcov-report:
+@GST_GCOV_ENABLED_TRUE@	$(MAKE) -C $(top_builddir) lcov-report
+@GST_GCOV_ENABLED_FALSE@%.lcov-run:
+@GST_GCOV_ENABLED_FALSE@	echo "Need to reconfigure with --enable-gcov"
+
+@GST_GCOV_ENABLED_FALSE@%.lcov-report:
+@GST_GCOV_ENABLED_FALSE@	echo "Need to reconfigure with --enable-gcov"
+
 # torture tests
 torture: $(TESTS)
-	-rm test-registry.xml
+	-rm test-registry.*
 	@echo "Torturing tests ..."
 	@for i in `seq 1 $(LOOPS)`; do				\
 		$(MAKE) check ||				\
@@ -3055,7 +4199,7 @@ torture: $(TESTS)
 
 # forever tests
 forever: $(TESTS)
-	-rm test-registry.xml
+	-rm test-registry.*
 	@echo "Forever tests ..."
 	@while true; do						\
 		$(MAKE) check ||				\
@@ -3081,6 +4225,29 @@ valgrind: $(TESTS)
 		false;							\
 	fi
 
+# valgrind all tests until failure
+valgrind-forever: $(TESTS)
+	-rm test-registry.*
+	@echo "Forever valgrinding tests ..."
+	@while true; do						\
+		$(MAKE) valgrind ||				\
+		(echo "Failure"; exit 1) ||			\
+		exit 1;						\
+	done
+
+# valgrind torture all tests
+valgrind-torture: $(TESTS)
+	-rm test-registry.*
+	@echo "Torturing and valgrinding tests ..."
+	@for i in `seq 1 $(LOOPS)`; do				\
+		$(MAKE) valgrind ||				\
+		(echo "Failure after $$i runs"; exit 1) ||	\
+		exit 1;						\
+	done
+	@banner="All $(LOOPS) loops passed";			\
+	dashes=`echo "$$banner" | sed s/./=/g`;			\
+	echo $$dashes; echo $$banner; echo $$dashes
+
 # valgrind all tests and generate suppressions
 valgrind.gen-suppressions: $(TESTS)
 	@echo "Valgrinding tests ..."
@@ -3117,10 +4284,13 @@ help:
 	@echo "make (dir)/(test).gdb              -- start up gdb for the given test"
 	@echo
 	@echo "make valgrind                      -- valgrind all tests"
+	@echo "make valgrind-forever              -- valgrind all tests forever"
+	@echo "make valgrind-torture              -- valgrind all tests $(LOOPS) times"
 	@echo "make valgrind.gen-suppressions     -- generate suppressions for all tests"
 	@echo "                                      and save to suppressions.log"
 	@echo "make (dir)/(test).valgrind         -- valgrind the given test"
 	@echo "make (dir)/(test).valgrind-forever -- valgrind the given test forever"
+	@echo "make (dir)/(test).valgrind-torture -- valgrind the given test $(LOOPS) times"
 	@echo "make (dir)/(test).valgrind.gen-suppressions -- generate suppressions"
 	@echo "                                               and save to suppressions.log"
 	@echo "make inspect                       -- inspect all plugin features"
diff --git a/tests/check/elements/aacparse.c b/tests/check/elements/aacparse.c
index 1b72479de..b6112971a 100644
--- a/tests/check/elements/aacparse.c
+++ b/tests/check/elements/aacparse.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/elements/ac3parse.c b/tests/check/elements/ac3parse.c
index eb2500497..7877cd08f 100644
--- a/tests/check/elements/ac3parse.c
+++ b/tests/check/elements/ac3parse.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/elements/alphacolor.c b/tests/check/elements/alphacolor.c
index ff2cc93ab..15496d81b 100644
--- a/tests/check/elements/alphacolor.c
+++ b/tests/check/elements/alphacolor.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -95,13 +95,6 @@ create_caps_rgba32 (void)
   return caps;
 }
 
-static void
-push_caps (GstCaps * caps)
-{
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_caps_unref (caps);
-}
-
 static GstBuffer *
 create_buffer_rgb24_3x4 (void)
 {
@@ -167,7 +160,7 @@ GST_START_TEST (test_rgb24)
   fail_unless_equals_int (gst_element_set_state (alphacolor, GST_STATE_PLAYING),
       GST_STATE_CHANGE_SUCCESS);
 
-  push_caps (create_caps_rgb24 ());
+  gst_check_setup_events (mysrcpad, alphacolor, incaps, GST_FORMAT_TIME);
 
   inbuffer = create_buffer_rgb24_3x4 ();
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
@@ -218,10 +211,11 @@ GST_START_TEST (test_rgba32)
   fail_unless_equals_int (gst_element_set_state (alphacolor, GST_STATE_PLAYING),
       GST_STATE_CHANGE_SUCCESS);
 
-  push_caps (create_caps_rgba32 ());
+  gst_check_setup_events (mysrcpad, alphacolor, incaps, GST_FORMAT_TIME);
 
   inbuffer = create_buffer_rgba32_3x4 ();
-  GST_DEBUG ("Created buffer of %d bytes", gst_buffer_get_size (inbuffer));
+  GST_DEBUG ("Created buffer of %" G_GSIZE_FORMAT " bytes",
+      gst_buffer_get_size (inbuffer));
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
   /* pushing gives away reference */
diff --git a/tests/check/elements/amrparse.c b/tests/check/elements/amrparse.c
index e5d64ca57..ee5b45516 100644
--- a/tests/check/elements/amrparse.c
+++ b/tests/check/elements/amrparse.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/elements/apev2mux.c b/tests/check/elements/apev2mux.c
index 8fecc664b..88f9e3ecb 100644
--- a/tests/check/elements/apev2mux.c
+++ b/tests/check/elements/apev2mux.c
@@ -17,8 +17,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -209,7 +209,7 @@ got_buffer (GstElement * fakesink, GstBuffer * buf, GstPad * pad,
 
   gst_buffer_map (buf, &map, GST_MAP_READ);
 
-  GST_LOG ("got buffer, size=%u, offset=%" G_GINT64_FORMAT, map.size, off);
+  GST_LOG ("size=%" G_GSIZE_FORMAT ", offset=%" G_GINT64_FORMAT, map.size, off);
 
   fail_unless (GST_BUFFER_OFFSET_IS_VALID (buf));
 
diff --git a/tests/check/elements/aspectratiocrop.c b/tests/check/elements/aspectratiocrop.c
index f02c6f9ba..1728afd6e 100644
--- a/tests/check/elements/aspectratiocrop.c
+++ b/tests/check/elements/aspectratiocrop.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -69,8 +69,7 @@ check_aspectratiocrop (const gchar * in_string, const gchar * out_string,
   src_pad = gst_pad_new (NULL, GST_PAD_SRC);
   gst_pad_set_active (src_pad, TRUE);
   GST_DEBUG ("setting caps %s %" GST_PTR_FORMAT, in_string, incaps);
-  fail_unless (gst_pad_set_caps (src_pad, incaps),
-      "Couldn't set input caps %" GST_PTR_FORMAT, incaps);
+  gst_check_setup_events (src_pad, element, incaps, GST_FORMAT_TIME);
 
   pad_peer = gst_element_get_static_pad (element, "sink");
   fail_if (pad_peer == NULL);
diff --git a/tests/check/elements/audioamplify.c b/tests/check/elements/audioamplify.c
index ed3e15e08..bebb00450 100644
--- a/tests/check/elements/audioamplify.c
+++ b/tests/check/elements/audioamplify.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -106,7 +106,7 @@ GST_START_TEST (test_passthrough)
       "could not set to playing");
 
   caps = gst_caps_from_string (AMPLIFY_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, amplify, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
   inbuffer =
@@ -150,7 +150,7 @@ GST_START_TEST (test_zero)
       "could not set to playing");
 
   caps = gst_caps_from_string (AMPLIFY_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, amplify, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
   inbuffer =
@@ -194,7 +194,7 @@ GST_START_TEST (test_050_clip)
       "could not set to playing");
 
   caps = gst_caps_from_string (AMPLIFY_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, amplify, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
   inbuffer =
@@ -238,7 +238,7 @@ GST_START_TEST (test_200_clip)
       "could not set to playing");
 
   caps = gst_caps_from_string (AMPLIFY_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, amplify, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
   inbuffer =
@@ -283,7 +283,7 @@ GST_START_TEST (test_050_wrap_negative)
       "could not set to playing");
 
   caps = gst_caps_from_string (AMPLIFY_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, amplify, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
   inbuffer =
@@ -328,7 +328,7 @@ GST_START_TEST (test_200_wrap_negative)
       "could not set to playing");
 
   caps = gst_caps_from_string (AMPLIFY_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, amplify, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
   inbuffer =
@@ -373,7 +373,7 @@ GST_START_TEST (test_050_wrap_positive)
       "could not set to playing");
 
   caps = gst_caps_from_string (AMPLIFY_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, amplify, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
   inbuffer =
@@ -418,7 +418,7 @@ GST_START_TEST (test_200_wrap_positive)
       "could not set to playing");
 
   caps = gst_caps_from_string (AMPLIFY_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, amplify, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
   inbuffer =
diff --git a/tests/check/elements/audiochebband.c b/tests/check/elements/audiochebband.c
index 5f6148514..70218223a 100644
--- a/tests/check/elements/audiochebband.c
+++ b/tests/check/elements/audiochebband.c
@@ -131,7 +131,7 @@ GST_START_TEST (test_type1_32_bp_0hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -197,7 +197,7 @@ GST_START_TEST (test_type1_32_bp_11025hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -261,7 +261,7 @@ GST_START_TEST (test_type1_32_bp_22050hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -323,7 +323,7 @@ GST_START_TEST (test_type1_32_br_0hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -389,7 +389,7 @@ GST_START_TEST (test_type1_32_br_11025hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -453,7 +453,7 @@ GST_START_TEST (test_type1_32_br_22050hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -515,7 +515,7 @@ GST_START_TEST (test_type1_64_bp_0hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -581,7 +581,7 @@ GST_START_TEST (test_type1_64_bp_11025hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -645,7 +645,7 @@ GST_START_TEST (test_type1_64_bp_22050hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -707,7 +707,7 @@ GST_START_TEST (test_type1_64_br_0hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -773,7 +773,7 @@ GST_START_TEST (test_type1_64_br_11025hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -837,7 +837,7 @@ GST_START_TEST (test_type1_64_br_22050hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -899,7 +899,7 @@ GST_START_TEST (test_type2_32_bp_0hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -965,7 +965,7 @@ GST_START_TEST (test_type2_32_bp_11025hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -1029,7 +1029,7 @@ GST_START_TEST (test_type2_32_bp_22050hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -1091,7 +1091,7 @@ GST_START_TEST (test_type2_32_br_0hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -1157,7 +1157,7 @@ GST_START_TEST (test_type2_32_br_11025hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -1221,7 +1221,7 @@ GST_START_TEST (test_type2_32_br_22050hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -1283,7 +1283,7 @@ GST_START_TEST (test_type2_64_bp_0hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -1349,7 +1349,7 @@ GST_START_TEST (test_type2_64_bp_11025hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -1413,7 +1413,7 @@ GST_START_TEST (test_type2_64_bp_22050hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -1475,7 +1475,7 @@ GST_START_TEST (test_type2_64_br_0hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -1541,7 +1541,7 @@ GST_START_TEST (test_type2_64_br_11025hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -1605,7 +1605,7 @@ GST_START_TEST (test_type2_64_br_22050hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiochebband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
diff --git a/tests/check/elements/audiocheblimit.c b/tests/check/elements/audiocheblimit.c
index 0a137f46c..c155b202f 100644
--- a/tests/check/elements/audiocheblimit.c
+++ b/tests/check/elements/audiocheblimit.c
@@ -128,7 +128,7 @@ GST_START_TEST (test_type1_32_lp_0hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -189,7 +189,7 @@ GST_START_TEST (test_type1_32_lp_22050hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -248,7 +248,7 @@ GST_START_TEST (test_type1_32_hp_0hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -309,7 +309,7 @@ GST_START_TEST (test_type1_32_hp_22050hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -368,7 +368,7 @@ GST_START_TEST (test_type1_64_lp_0hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -429,7 +429,7 @@ GST_START_TEST (test_type1_64_lp_22050hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -488,7 +488,7 @@ GST_START_TEST (test_type1_64_hp_0hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -549,7 +549,7 @@ GST_START_TEST (test_type1_64_hp_22050hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -608,7 +608,7 @@ GST_START_TEST (test_type2_32_lp_0hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -669,7 +669,7 @@ GST_START_TEST (test_type2_32_lp_22050hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -728,7 +728,7 @@ GST_START_TEST (test_type2_32_hp_0hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -789,7 +789,7 @@ GST_START_TEST (test_type2_32_hp_22050hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -848,7 +848,7 @@ GST_START_TEST (test_type2_64_lp_0hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -909,7 +909,7 @@ GST_START_TEST (test_type2_64_lp_22050hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -968,7 +968,7 @@ GST_START_TEST (test_type2_64_hp_0hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -1029,7 +1029,7 @@ GST_START_TEST (test_type2_64_hp_22050hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (BUFFER_CAPS_STRING_64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, audiocheblimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
diff --git a/tests/check/elements/audiodynamic.c b/tests/check/elements/audiodynamic.c
index 63602b05a..779f8e947 100644
--- a/tests/check/elements/audiodynamic.c
+++ b/tests/check/elements/audiodynamic.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -110,7 +110,7 @@ GST_START_TEST (test_passthrough)
       NULL, NULL);
   fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 12) == 0);
   caps = gst_caps_from_string (DYNAMIC_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, dynamic, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -154,7 +154,7 @@ GST_START_TEST (test_compress_hard_50_50)
   gst_buffer_fill (inbuffer, 0, in, 16);
   fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 16) == 0);
   caps = gst_caps_from_string (DYNAMIC_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, dynamic, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -202,7 +202,7 @@ GST_START_TEST (test_compress_soft_50_50)
   gst_buffer_fill (inbuffer, 0, in, 16);
   fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 16) == 0);
   caps = gst_caps_from_string (DYNAMIC_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, dynamic, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -250,7 +250,7 @@ GST_START_TEST (test_compress_hard_100_50)
   gst_buffer_fill (inbuffer, 0, in, 16);
   fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 16) == 0);
   caps = gst_caps_from_string (DYNAMIC_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, dynamic, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -299,7 +299,7 @@ GST_START_TEST (test_expand_hard_50_200)
   gst_buffer_fill (inbuffer, 0, in, 16);
   fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 16) == 0);
   caps = gst_caps_from_string (DYNAMIC_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, dynamic, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -347,7 +347,7 @@ GST_START_TEST (test_expand_soft_50_200)
   gst_buffer_fill (inbuffer, 0, in, 16);
   fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 16) == 0);
   caps = gst_caps_from_string (DYNAMIC_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, dynamic, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -395,7 +395,7 @@ GST_START_TEST (test_expand_hard_0_200)
   gst_buffer_fill (inbuffer, 0, in, 16);
   fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 16) == 0);
   caps = gst_caps_from_string (DYNAMIC_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, dynamic, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
diff --git a/tests/check/elements/audioecho.c b/tests/check/elements/audioecho.c
index 3c39a9910..025b710c0 100644
--- a/tests/check/elements/audioecho.c
+++ b/tests/check/elements/audioecho.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -100,7 +100,7 @@ GST_START_TEST (test_passthrough)
       "could not set to playing");
 
   caps = gst_caps_from_string (ECHO_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, echo, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
   inbuffer =
@@ -146,7 +146,7 @@ GST_START_TEST (test_echo)
       "could not set to playing");
 
   caps = gst_caps_from_string (ECHO_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, echo, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
   inbuffer =
@@ -193,7 +193,7 @@ GST_START_TEST (test_feedback)
       "could not set to playing");
 
   caps = gst_caps_from_string (ECHO_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, echo, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
   inbuffer =
diff --git a/tests/check/elements/audioinvert.c b/tests/check/elements/audioinvert.c
index 9d80baad7..50981d7af 100644
--- a/tests/check/elements/audioinvert.c
+++ b/tests/check/elements/audioinvert.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -110,7 +110,7 @@ GST_START_TEST (test_passthrough)
   gst_buffer_fill (inbuffer, 0, in, 8);
   fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 8) == 0);
   caps = gst_caps_from_string (INVERT_CAPS_STRING);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, invert, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -154,7 +154,7 @@ GST_START_TEST (test_zero)
   gst_buffer_fill (inbuffer, 0, in, 8);
   fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 8) == 0);
   caps = gst_caps_from_string (INVERT_CAPS_STRING);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, invert, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -198,7 +198,7 @@ GST_START_TEST (test_full_inverse)
   gst_buffer_fill (inbuffer, 0, in, 8);
   fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 8) == 0);
   caps = gst_caps_from_string (INVERT_CAPS_STRING);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, invert, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -242,7 +242,7 @@ GST_START_TEST (test_25_inverse)
   gst_buffer_fill (inbuffer, 0, in, 8);
   fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 8) == 0);
   caps = gst_caps_from_string (INVERT_CAPS_STRING);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, invert, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
diff --git a/tests/check/elements/audiopanorama.c b/tests/check/elements/audiopanorama.c
index 7f80ce8bb..3857119b0 100644
--- a/tests/check/elements/audiopanorama.c
+++ b/tests/check/elements/audiopanorama.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -34,14 +34,14 @@ gboolean have_eos = FALSE;
 GstPad *mysrcpad, *mysinkpad;
 
 
-#define PANORAMA_MONO_CAPS_STRING    \
+#define PANORAMA_S16_MONO_CAPS_STRING   \
     "audio/x-raw, "                     \
     "channels = (int) 1, "              \
     "rate = (int) 44100, "              \
     "layout = (string) interleaved, "   \
     "format = (string) " GST_AUDIO_NE(S16)
 
-#define PANORAMA_STEREO_CAPS_STRING  \
+#define PANORAMA_S16_STEREO_CAPS_STRING \
     "audio/x-raw, "                     \
     "channels = (int) 2, "              \
     "channel-mask = (bitmask) 3, "      \
@@ -49,6 +49,21 @@ GstPad *mysrcpad, *mysinkpad;
     "layout = (string) interleaved, "   \
     "format = (string) " GST_AUDIO_NE(S16)
 
+#define PANORAMA_F32_MONO_CAPS_STRING   \
+    "audio/x-raw, "                     \
+    "channels = (int) 1, "              \
+    "rate = (int) 44100, "              \
+    "layout = (string) interleaved, "   \
+    "format = (string) " GST_AUDIO_NE(F32)
+
+#define PANORAMA_F32_STEREO_CAPS_STRING \
+    "audio/x-raw, "                     \
+    "channels = (int) 2, "              \
+    "channel-mask = (bitmask) 3, "      \
+    "rate = (int) 44100, "              \
+    "layout = (string) interleaved, "   \
+    "format = (string) " GST_AUDIO_NE(F32)
+
 #define PANORAMA_WRONG_CAPS_STRING  \
     "audio/x-raw, "                     \
     "channels = (int) 5, "              \
@@ -57,60 +72,134 @@ GstPad *mysrcpad, *mysinkpad;
     "format = (string) " GST_AUDIO_NE(U16)
 
 
-static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
-    GST_PAD_SINK,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("audio/x-raw, "
-        "channels = (int) 2, "
-        "rate = (int) [ 1,  MAX ], "
-        "layout = (string) interleaved, "
-        "format = (string) " GST_AUDIO_NE (S16))
-    );
-static GstStaticPadTemplate msrctemplate = GST_STATIC_PAD_TEMPLATE ("src",
-    GST_PAD_SRC,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("audio/x-raw, "
-        "channels = (int) 1, "
-        "rate = (int) [ 1,  MAX ], "
-        "layout = (string) interleaved, "
-        "format = (string) " GST_AUDIO_NE (S16))
-    );
-static GstStaticPadTemplate ssrctemplate = GST_STATIC_PAD_TEMPLATE ("src",
-    GST_PAD_SRC,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("audio/x-raw, "
-        "channels = (int) 2, "
-        "rate = (int) [ 1,  MAX ], "
-        "layout = (string) interleaved, "
-        "format = (string) " GST_AUDIO_NE (S16))
-    );
+static GstStaticPadTemplate sinktemplate[2] = {
+  GST_STATIC_PAD_TEMPLATE ("sink",
+      GST_PAD_SINK,
+      GST_PAD_ALWAYS,
+      GST_STATIC_CAPS ("audio/x-raw, "
+          "channels = (int) 2, "
+          "rate = (int) [ 1,  MAX ], "
+          "layout = (string) interleaved, "
+          "format = (string) " GST_AUDIO_NE (S16))
+      ),
+  GST_STATIC_PAD_TEMPLATE ("sink",
+      GST_PAD_SINK,
+      GST_PAD_ALWAYS,
+      GST_STATIC_CAPS ("audio/x-raw, "
+          "channels = (int) 2, "
+          "rate = (int) [ 1,  MAX ], "
+          "layout = (string) interleaved, "
+          "format = (string) " GST_AUDIO_NE (F32))
+      ),
+};
+
+static GstStaticPadTemplate msrctemplate[2] = {
+  GST_STATIC_PAD_TEMPLATE ("src",
+      GST_PAD_SRC,
+      GST_PAD_ALWAYS,
+      GST_STATIC_CAPS ("audio/x-raw, "
+          "channels = (int) 1, "
+          "rate = (int) [ 1,  MAX ], "
+          "layout = (string) interleaved, "
+          "format = (string) " GST_AUDIO_NE (S16))
+      ),
+  GST_STATIC_PAD_TEMPLATE ("src",
+      GST_PAD_SRC,
+      GST_PAD_ALWAYS,
+      GST_STATIC_CAPS ("audio/x-raw, "
+          "channels = (int) 1, "
+          "rate = (int) [ 1,  MAX ], "
+          "layout = (string) interleaved, "
+          "format = (string) " GST_AUDIO_NE (F32))
+      ),
+};
+
+static GstStaticPadTemplate ssrctemplate[2] = {
+  GST_STATIC_PAD_TEMPLATE ("src",
+      GST_PAD_SRC,
+      GST_PAD_ALWAYS,
+      GST_STATIC_CAPS ("audio/x-raw, "
+          "channels = (int) 2, "
+          "rate = (int) [ 1,  MAX ], "
+          "layout = (string) interleaved, "
+          "format = (string) " GST_AUDIO_NE (S16))
+      ),
+  GST_STATIC_PAD_TEMPLATE ("src",
+      GST_PAD_SRC,
+      GST_PAD_ALWAYS,
+      GST_STATIC_CAPS ("audio/x-raw, "
+          "channels = (int) 2, "
+          "rate = (int) [ 1,  MAX ], "
+          "layout = (string) interleaved, "
+          "format = (string) " GST_AUDIO_NE (F32))
+      ),
+};
 
 static GstElement *
-setup_panorama_m (void)
+setup_panorama (GstStaticPadTemplate * srctemplate, gint fmt,
+    const gchar * caps_str)
 {
   GstElement *panorama;
 
   GST_DEBUG ("setup_panorama");
   panorama = gst_check_setup_element ("audiopanorama");
-  mysrcpad = gst_check_setup_src_pad (panorama, &msrctemplate);
-  mysinkpad = gst_check_setup_sink_pad (panorama, &sinktemplate);
+  mysrcpad = gst_check_setup_src_pad (panorama, &srctemplate[fmt]);
+  mysinkpad = gst_check_setup_sink_pad (panorama, &sinktemplate[fmt]);
   gst_pad_set_active (mysrcpad, TRUE);
   gst_pad_set_active (mysinkpad, TRUE);
 
+  if (caps_str) {
+    GstCaps *caps = gst_caps_from_string (caps_str);
+    gst_check_setup_events (mysrcpad, panorama, caps, GST_FORMAT_TIME);
+    gst_caps_unref (caps);
+  }
   return panorama;
 }
 
 static GstElement *
-setup_panorama_s (void)
+setup_panorama_s16_m (gint method, gfloat pan)
 {
   GstElement *panorama;
+  panorama = setup_panorama (msrctemplate, 0, PANORAMA_S16_MONO_CAPS_STRING);
+  g_object_set (G_OBJECT (panorama), "method", method, "panorama", pan, NULL);
+  gst_element_set_state (panorama, GST_STATE_PLAYING);
+  GST_DEBUG ("panorama(mono) ready");
 
-  GST_DEBUG ("setup_panorama");
-  panorama = gst_check_setup_element ("audiopanorama");
-  mysrcpad = gst_check_setup_src_pad (panorama, &ssrctemplate);
-  mysinkpad = gst_check_setup_sink_pad (panorama, &sinktemplate);
-  gst_pad_set_active (mysrcpad, TRUE);
-  gst_pad_set_active (mysinkpad, TRUE);
+  return panorama;
+}
+
+static GstElement *
+setup_panorama_f32_m (gint method, gfloat pan)
+{
+  GstElement *panorama;
+  panorama = setup_panorama (msrctemplate, 1, PANORAMA_F32_MONO_CAPS_STRING);
+  g_object_set (G_OBJECT (panorama), "method", method, "panorama", pan, NULL);
+  gst_element_set_state (panorama, GST_STATE_PLAYING);
+  GST_DEBUG ("panorama(mono) ready");
+
+  return panorama;
+}
+
+static GstElement *
+setup_panorama_s16_s (gint method, gfloat pan)
+{
+  GstElement *panorama;
+  panorama = setup_panorama (ssrctemplate, 0, PANORAMA_S16_STEREO_CAPS_STRING);
+  g_object_set (G_OBJECT (panorama), "method", method, "panorama", pan, NULL);
+  gst_element_set_state (panorama, GST_STATE_PLAYING);
+  GST_DEBUG ("panorama(stereo) ready");
+
+  return panorama;
+}
+
+static GstElement *
+setup_panorama_f32_s (gint method, gfloat pan)
+{
+  GstElement *panorama;
+  panorama = setup_panorama (ssrctemplate, 1, PANORAMA_F32_STEREO_CAPS_STRING);
+  g_object_set (G_OBJECT (panorama), "method", method, "panorama", pan, NULL);
+  gst_element_set_state (panorama, GST_STATE_PLAYING);
+  GST_DEBUG ("panorama(stereo) ready");
 
   return panorama;
 }
@@ -118,7 +207,8 @@ setup_panorama_s (void)
 static void
 cleanup_panorama (GstElement * panorama)
 {
-  GST_DEBUG ("cleanup_panorama");
+  GST_DEBUG ("cleaning up");
+  gst_element_set_state (panorama, GST_STATE_NULL);
 
   g_list_foreach (buffers, (GFunc) gst_mini_object_unref, NULL);
   g_list_free (buffers);
@@ -131,27 +221,39 @@ cleanup_panorama (GstElement * panorama)
   gst_check_teardown_element (panorama);
 }
 
-GST_START_TEST (test_mono_middle)
+static GstBuffer *
+setup_buffer (gpointer data, gsize size)
+{
+  return gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, data, size, 0,
+      size, NULL, NULL);
+}
+
+static void
+do_panorama (gpointer in_data, gsize in_size, gpointer out_data, gsize out_size)
+{
+  GstBuffer *in, *out;
+
+  in = setup_buffer (in_data, in_size);
+  fail_unless (gst_pad_push (mysrcpad, in) == GST_FLOW_OK);
+  fail_unless_equals_int (g_list_length (buffers), 1);
+  fail_if ((out = (GstBuffer *) buffers->data) == NULL);
+  fail_unless (gst_buffer_extract (out, 0, out_data, out_size) == out_size);
+}
+
+/* the tests */
+
+GST_START_TEST (test_ref_counts)
 {
   GstElement *panorama;
   GstBuffer *inbuffer, *outbuffer;
-  GstCaps *caps;
   gint16 in[2] = { 16384, -256 };
-  gint16 out[4] = { 8192, 8192, -128, -128 };
-  gint16 res[4];
 
-  panorama = setup_panorama_m ();
+  panorama = setup_panorama (msrctemplate, 0, PANORAMA_S16_MONO_CAPS_STRING);
   fail_unless (gst_element_set_state (panorama,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
 
-  caps = gst_caps_from_string (PANORAMA_MONO_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_caps_unref (caps);
-
-  inbuffer =
-      gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0,
-      sizeof (in), NULL, NULL);
+  inbuffer = setup_buffer (in, sizeof (in));
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
   /* pushing gives away my reference ... */
@@ -159,517 +261,515 @@ GST_START_TEST (test_mono_middle)
   /* ... but it ends up being collected on the global buffer list */
   fail_unless_equals_int (g_list_length (buffers), 1);
   fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
-
-  fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8);
-  GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d",
-      out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]);
-  fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0);
+  fail_if (inbuffer == outbuffer);
 
   /* cleanup */
+  fail_unless (gst_element_set_state (panorama,
+          GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null");
+  ASSERT_OBJECT_REFCOUNT (panorama, "panorama", 1);
   cleanup_panorama (panorama);
 }
 
 GST_END_TEST;
 
-GST_START_TEST (test_mono_left)
+GST_START_TEST (test_wrong_caps)
 {
   GstElement *panorama;
-  GstBuffer *inbuffer, *outbuffer;
-  GstCaps *caps;
+  GstBuffer *inbuffer;
   gint16 in[2] = { 16384, -256 };
-  gint16 out[4] = { 16384, 0, -256, 0 };
-  gint16 res[4];
+  GstBus *bus;
+  GstMessage *message;
+  GstCaps *caps;
 
-  panorama = setup_panorama_m ();
-  g_object_set (G_OBJECT (panorama), "panorama", -1.0, NULL);
-  fail_unless (gst_element_set_state (panorama,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
+  panorama = setup_panorama (msrctemplate, 0, NULL);
+  bus = gst_bus_new ();
+  gst_element_set_state (panorama, GST_STATE_PLAYING);
+
+  inbuffer = setup_buffer (in, sizeof (in));
+  gst_buffer_ref (inbuffer);
 
-  caps = gst_caps_from_string (PANORAMA_MONO_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  /* set a bus here so we avoid getting state change messages */
+  gst_element_set_bus (panorama, bus);
+
+  caps = gst_caps_from_string (PANORAMA_WRONG_CAPS_STRING);
+  /* this actually succeeds, because the caps event is sticky */
+  gst_check_setup_events (mysrcpad, panorama, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
-  inbuffer =
-      gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0,
-      sizeof (in), NULL, NULL);
-  fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 4) == 0);
+  /* pushing gives an error because it can't negotiate with wrong caps */
+  fail_unless_equals_int (gst_pad_push (mysrcpad, inbuffer),
+      GST_FLOW_NOT_NEGOTIATED);
+  /* ... and the buffer would have been lost if we didn't ref it ourselves */
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  gst_buffer_unref (inbuffer);
+  fail_unless_equals_int (g_list_length (buffers), 0);
 
-  /* pushing gives away my reference ... */
-  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
-  /* ... and puts a new buffer on the global list */
-  fail_unless_equals_int (g_list_length (buffers), 1);
-  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
-
-  fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8);
-  GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d",
-      out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]);
-  fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0);
+  /* panorama_set_caps should not have been called since basetransform caught
+   * the negotiation problem */
+  fail_if ((message = gst_bus_pop (bus)) != NULL);
 
   /* cleanup */
+  gst_element_set_bus (panorama, NULL);
+  gst_object_unref (GST_OBJECT (bus));
+  gst_element_set_state (panorama, GST_STATE_NULL);
   cleanup_panorama (panorama);
 }
 
 GST_END_TEST;
 
-GST_START_TEST (test_mono_right)
+/* processing for method=psy */
+
+GST_START_TEST (test_s16_mono_middle)
 {
-  GstElement *panorama;
-  GstBuffer *inbuffer, *outbuffer;
-  GstCaps *caps;
   gint16 in[2] = { 16384, -256 };
-  gint16 out[4] = { 0, 16384, 0, -256 };
+  gint16 out[4] = { 8192, 8192, -128, -128 };
   gint16 res[4];
+  GstElement *panorama = setup_panorama_s16_m (0, 0.0);
 
-  panorama = setup_panorama_m ();
-  g_object_set (G_OBJECT (panorama), "panorama", 1.0, NULL);
-  fail_unless (gst_element_set_state (panorama,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
+  do_panorama (in, sizeof (in), res, sizeof (res));
 
-  caps = gst_caps_from_string (PANORAMA_MONO_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_caps_unref (caps);
+  GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]);
+  fail_unless (memcmp (res, out, sizeof (res)) == 0);
 
-  inbuffer =
-      gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0,
-      sizeof (in), NULL, NULL);
-  fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 4) == 0);
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  cleanup_panorama (panorama);
+}
 
-  /* pushing gives away my reference ... */
-  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
-  /* ... and puts a new buffer on the global list */
-  fail_unless_equals_int (g_list_length (buffers), 1);
-  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+GST_END_TEST;
+
+GST_START_TEST (test_s16_mono_left)
+{
+  gint16 in[2] = { 16384, -256 };
+  gint16 out[4] = { 16384, 0, -256, 0 };
+  gint16 res[4];
+  GstElement *panorama = setup_panorama_s16_m (0, -1.0);
 
-  fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8);
-  GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d",
-      out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]);
-  fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0);
+  do_panorama (in, sizeof (in), res, sizeof (res));
+
+  GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]);
+  fail_unless (memcmp (res, out, sizeof (res)) == 0);
 
-  /* cleanup */
   cleanup_panorama (panorama);
 }
 
 GST_END_TEST;
 
-GST_START_TEST (test_stereo_middle)
+GST_START_TEST (test_s16_mono_right)
 {
-  GstElement *panorama;
-  GstBuffer *inbuffer, *outbuffer;
-  GstCaps *caps;
-  gint16 in[4] = { 16384, -256, 8192, 128 };
+  gint16 in[2] = { 16384, -256 };
+  gint16 out[4] = { 0, 16384, 0, -256 };
   gint16 res[4];
+  GstElement *panorama = setup_panorama_s16_m (0, 1.0);
 
-  panorama = setup_panorama_s ();
-  fail_unless (gst_element_set_state (panorama,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
+  do_panorama (in, sizeof (in), res, sizeof (res));
 
-  caps = gst_caps_from_string (PANORAMA_STEREO_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_caps_unref (caps);
+  GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]);
+  fail_unless (memcmp (res, out, sizeof (res)) == 0);
 
-  inbuffer =
-      gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0,
-      sizeof (in), NULL, NULL);
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  cleanup_panorama (panorama);
+}
 
-  /* 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);
-  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+GST_END_TEST;
+
+GST_START_TEST (test_s16_stereo_middle)
+{
+  gint16 in[4] = { 16384, -256, 8192, 128 };
+  gint16 res[4];
+  GstElement *panorama = setup_panorama_s16_s (0, 0.0);
 
-  fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8);
-  GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d",
-      in[0], in[1], in[2], in[3], res[0], res[1], res[2], res[3]);
-  fail_unless (gst_buffer_memcmp (outbuffer, 0, in, 8) == 0);
+  do_panorama (in, sizeof (in), res, sizeof (res));
+
+  GST_INFO ("exp. %+5d %+5d %+5d %+5d", in[0], in[1], in[2], in[3]);
+  GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]);
+  fail_unless (memcmp (res, in, sizeof (res)) == 0);
 
-  /* cleanup */
   cleanup_panorama (panorama);
 }
 
 GST_END_TEST;
 
-GST_START_TEST (test_stereo_left)
+GST_START_TEST (test_s16_stereo_left)
 {
-  GstElement *panorama;
-  GstBuffer *inbuffer, *outbuffer;
-  GstCaps *caps;
   gint16 in[4] = { 16384, -256, 8192, 128 };
   gint16 out[4] = { 16384 - 256, 0, 8192 + 128, 0 };
   gint16 res[4];
+  GstElement *panorama = setup_panorama_s16_s (0, -1.0);
 
-  panorama = setup_panorama_s ();
-  g_object_set (G_OBJECT (panorama), "panorama", -1.0, NULL);
-  fail_unless (gst_element_set_state (panorama,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
-
-  caps = gst_caps_from_string (PANORAMA_STEREO_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_caps_unref (caps);
-
-  inbuffer =
-      gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0,
-      sizeof (in), NULL, NULL);
-  fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 8) == 0);
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
-
-  /* pushing gives away my reference ... */
-  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
-  /* ... and puts a new buffer on the global list */
-  fail_unless_equals_int (g_list_length (buffers), 1);
-  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+  do_panorama (in, sizeof (in), res, sizeof (res));
 
-  fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8);
-  GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d",
-      out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]);
-  fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0);
+  GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]);
+  fail_unless (memcmp (res, out, sizeof (res)) == 0);
 
-  /* cleanup */
   cleanup_panorama (panorama);
 }
 
 GST_END_TEST;
 
-GST_START_TEST (test_stereo_right)
+GST_START_TEST (test_s16_stereo_right)
 {
-  GstElement *panorama;
-  GstBuffer *inbuffer, *outbuffer;
-  GstCaps *caps;
   gint16 in[4] = { 16384, -256, 8192, 128 };
   gint16 out[4] = { 0, -256 + 16384, 0, 128 + 8192 };
   gint16 res[4];
+  GstElement *panorama = setup_panorama_s16_s (0, 1.0);
 
-  panorama = setup_panorama_s ();
-  g_object_set (G_OBJECT (panorama), "panorama", 1.0, NULL);
-  fail_unless (gst_element_set_state (panorama,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
+  do_panorama (in, sizeof (in), res, sizeof (res));
 
-  caps = gst_caps_from_string (PANORAMA_STEREO_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_caps_unref (caps);
+  GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]);
+  fail_unless (memcmp (res, out, sizeof (res)) == 0);
 
-  inbuffer =
-      gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0,
-      sizeof (in), NULL, NULL);
-  fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 8) == 0);
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  cleanup_panorama (panorama);
+}
 
-  /* pushing gives away my reference ... */
-  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
-  /* ... and puts a new buffer on the global list */
-  fail_unless_equals_int (g_list_length (buffers), 1);
-  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+GST_END_TEST;
 
-  fail_unless (gst_buffer_extract (outbuffer, 0, res, 8));
-  GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d",
-      out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]);
-  fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0);
+GST_START_TEST (test_f32_mono_middle)
+{
+  gfloat in[2] = { 0.5, -0.2 };
+  gfloat out[4] = { 0.25, 0.25, -0.1, -0.1 };
+  gfloat res[4];
+  GstElement *panorama = setup_panorama_f32_m (0, 0.0);
+  gint i;
+
+  do_panorama (in, sizeof (in), res, sizeof (res));
+
+  GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]);
+  for (i = 0; i < 4; i++)
+    fail_unless (res[i] == out[i], "difference at pos=%d", i);
 
-  /* cleanup */
   cleanup_panorama (panorama);
 }
 
 GST_END_TEST;
 
-GST_START_TEST (test_mono_middle_simple)
+GST_START_TEST (test_f32_mono_left)
 {
-  GstElement *panorama;
-  GstBuffer *inbuffer, *outbuffer;
-  GstCaps *caps;
-  gint16 in[2] = { 16384, -256 };
-  gint16 out[4] = { 16384, 16384, -256, -256 };
-  gint16 res[4];
+  gfloat in[2] = { 0.5, -0.2 };
+  gfloat out[4] = { 0.5, 0.0, -0.2, 0.0 };
+  gfloat res[4];
+  GstElement *panorama = setup_panorama_f32_m (0, -1.0);
+  gint i;
 
-  panorama = setup_panorama_m ();
-  g_object_set (G_OBJECT (panorama), "method", 1, NULL);
-  fail_unless (gst_element_set_state (panorama,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
+  do_panorama (in, sizeof (in), res, sizeof (res));
 
-  inbuffer =
-      gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0,
-      sizeof (in), NULL, NULL);
-  caps = gst_caps_from_string (PANORAMA_MONO_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_caps_unref (caps);
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]);
+  for (i = 0; i < 4; i++)
+    fail_unless (res[i] == out[i], "difference at pos=%d", i);
 
-  /* 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);
-  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+  cleanup_panorama (panorama);
+}
 
-  fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8);
-  GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d",
-      out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]);
-  fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0);
+GST_END_TEST;
+
+GST_START_TEST (test_f32_mono_right)
+{
+  gfloat in[2] = { 0.5, -0.2 };
+  gfloat out[4] = { 0.0, 0.5, 0.0, -0.2 };
+  gfloat res[4];
+  GstElement *panorama = setup_panorama_f32_m (0, 1.0);
+  gint i;
+
+  do_panorama (in, sizeof (in), res, sizeof (res));
+
+  GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]);
+  for (i = 0; i < 4; i++)
+    fail_unless (res[i] == out[i], "difference at pos=%d", i);
 
-  /* cleanup */
   cleanup_panorama (panorama);
 }
 
 GST_END_TEST;
 
-GST_START_TEST (test_mono_left_simple)
+GST_START_TEST (test_f32_stereo_middle)
 {
-  GstElement *panorama;
-  GstBuffer *inbuffer, *outbuffer;
-  GstCaps *caps;
-  gint16 in[2] = { 16384, -256 };
-  gint16 out[4] = { 16384, 0, -256, 0 };
-  gint16 res[4];
+  gfloat in[4] = { 0.5, -0.2, 0.25, 0.1 };
+  gfloat res[4];
+  GstElement *panorama = setup_panorama_f32_s (0, 0.0);
+  gint i;
 
-  panorama = setup_panorama_m ();
-  g_object_set (G_OBJECT (panorama), "method", 1, NULL);
-  g_object_set (G_OBJECT (panorama), "panorama", -1.0, NULL);
-  fail_unless (gst_element_set_state (panorama,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
+  do_panorama (in, sizeof (in), res, sizeof (res));
 
-  inbuffer =
-      gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0,
-      sizeof (in), NULL, NULL);
-  fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 4) == 0);
-  caps = gst_caps_from_string (PANORAMA_MONO_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_caps_unref (caps);
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", in[0], in[1], in[2], in[3]);
+  GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]);
+  for (i = 0; i < 4; i++)
+    fail_unless (res[i] == in[i], "difference at pos=%d", i);
 
-  /* pushing gives away my reference ... */
-  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
-  /* ... and puts a new buffer on the global list */
-  fail_unless_equals_int (g_list_length (buffers), 1);
-  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+  cleanup_panorama (panorama);
+}
 
-  fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8);
-  GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d",
-      out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]);
-  fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0);
+GST_END_TEST;
+
+GST_START_TEST (test_f32_stereo_left)
+{
+  gfloat in[4] = { 0.5, -0.2, 0.25, 0.1 };
+  gfloat out[4] = { 0.5 - 0.2, 0.0, 0.25 + 0.1, 0.0 };
+  gfloat res[4];
+  GstElement *panorama = setup_panorama_f32_s (0, -1.0);
+  gint i;
+
+  do_panorama (in, sizeof (in), res, sizeof (res));
+
+  GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]);
+  for (i = 0; i < 4; i++)
+    fail_unless (res[i] == out[i], "difference at pos=%d", i);
 
-  /* cleanup */
   cleanup_panorama (panorama);
 }
 
 GST_END_TEST;
 
-GST_START_TEST (test_mono_right_simple)
+GST_START_TEST (test_f32_stereo_right)
+{
+  gfloat in[4] = { 0.5, -0.2, 0.25, 0.1 };
+  gfloat out[4] = { 0.0, -0.2 + 0.5, 0.0, 0.1 + 0.25 };
+  gfloat res[4];
+  GstElement *panorama = setup_panorama_f32_s (0, 1.0);
+  gint i;
+
+  do_panorama (in, sizeof (in), res, sizeof (res));
+
+  GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]);
+  for (i = 0; i < 4; i++)
+    fail_unless (res[i] == out[i], "difference at pos=%d", i);
+
+  cleanup_panorama (panorama);
+}
+
+GST_END_TEST;
+
+/* processing for method=simple */
+
+GST_START_TEST (test_s16_mono_middle_simple)
 {
-  GstElement *panorama;
-  GstBuffer *inbuffer, *outbuffer;
-  GstCaps *caps;
   gint16 in[2] = { 16384, -256 };
-  gint16 out[4] = { 0, 16384, 0, -256 };
+  gint16 out[4] = { 16384, 16384, -256, -256 };
   gint16 res[4];
+  GstElement *panorama = setup_panorama_s16_m (1, 0.0);
 
-  panorama = setup_panorama_m ();
-  g_object_set (G_OBJECT (panorama), "method", 1, NULL);
-  g_object_set (G_OBJECT (panorama), "panorama", 1.0, NULL);
-  fail_unless (gst_element_set_state (panorama,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
+  do_panorama (in, sizeof (in), res, sizeof (res));
 
-  inbuffer =
-      gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0,
-      sizeof (in), NULL, NULL);
-  fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 4) == 0);
-  caps = gst_caps_from_string (PANORAMA_MONO_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_caps_unref (caps);
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]);
+  fail_unless (memcmp (res, out, sizeof (res)) == 0);
 
-  /* pushing gives away my reference ... */
-  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
-  /* ... and puts a new buffer on the global list */
-  fail_unless_equals_int (g_list_length (buffers), 1);
-  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+  cleanup_panorama (panorama);
+}
+
+GST_END_TEST;
 
-  fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8);
-  GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d",
-      out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]);
-  fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0);
+GST_START_TEST (test_s16_mono_left_simple)
+{
+  gint16 in[2] = { 16384, -256 };
+  gint16 out[4] = { 16384, 0, -256, 0 };
+  gint16 res[4];
+  GstElement *panorama = setup_panorama_s16_m (1, -1.0);
+
+  do_panorama (in, sizeof (in), res, sizeof (res));
+
+  GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]);
+  fail_unless (memcmp (res, out, sizeof (res)) == 0);
 
-  /* cleanup */
   cleanup_panorama (panorama);
 }
 
 GST_END_TEST;
 
-GST_START_TEST (test_stereo_middle_simple)
+GST_START_TEST (test_s16_mono_right_simple)
 {
-  GstElement *panorama;
-  GstBuffer *inbuffer, *outbuffer;
-  GstCaps *caps;
-  gint16 in[4] = { 16384, -256, 8192, 128 };
+  gint16 in[2] = { 16384, -256 };
+  gint16 out[4] = { 0, 16384, 0, -256 };
   gint16 res[4];
+  GstElement *panorama = setup_panorama_s16_m (1, 1.0);
 
-  panorama = setup_panorama_s ();
-  g_object_set (G_OBJECT (panorama), "method", 1, NULL);
-  fail_unless (gst_element_set_state (panorama,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
+  do_panorama (in, sizeof (in), res, sizeof (res));
 
-  inbuffer =
-      gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0,
-      sizeof (in), NULL, NULL);
-  caps = gst_caps_from_string (PANORAMA_STEREO_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_caps_unref (caps);
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]);
+  fail_unless (memcmp (res, out, sizeof (res)) == 0);
 
-  /* 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);
-  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+  cleanup_panorama (panorama);
+}
 
-  fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8);
-  GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d",
-      in[0], in[1], in[2], in[3], res[0], res[1], res[2], res[3]);
-  fail_unless (gst_buffer_memcmp (outbuffer, 0, in, 8) == 0);
+GST_END_TEST;
+
+GST_START_TEST (test_s16_stereo_middle_simple)
+{
+  gint16 in[4] = { 16384, -256, 8192, 128 };
+  gint16 res[4];
+  GstElement *panorama = setup_panorama_s16_s (1, 0.0);
+
+  do_panorama (in, sizeof (in), res, sizeof (res));
+
+  GST_INFO ("exp. %+5d %+5d %+5d %+5d", in[0], in[1], in[2], in[3]);
+  GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]);
+  fail_unless (memcmp (res, in, sizeof (res)) == 0);
 
-  /* cleanup */
   cleanup_panorama (panorama);
 }
 
 GST_END_TEST;
 
-GST_START_TEST (test_stereo_left_simple)
+GST_START_TEST (test_s16_stereo_left_simple)
 {
-  GstElement *panorama;
-  GstBuffer *inbuffer, *outbuffer;
-  GstCaps *caps;
   gint16 in[4] = { 16384, -256, 8192, 128 };
   gint16 out[4] = { 16384, 0, 8192, 0 };
   gint16 res[4];
+  GstElement *panorama = setup_panorama_s16_s (1, -1.0);
 
-  panorama = setup_panorama_s ();
-  g_object_set (G_OBJECT (panorama), "method", 1, NULL);
-  g_object_set (G_OBJECT (panorama), "panorama", -1.0, NULL);
-  fail_unless (gst_element_set_state (panorama,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
-
-  inbuffer =
-      gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0,
-      sizeof (in), NULL, NULL);
-  fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 8) == 0);
-  caps = gst_caps_from_string (PANORAMA_STEREO_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_caps_unref (caps);
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
-
-  /* pushing gives away my reference ... */
-  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
-  /* ... and puts a new buffer on the global list */
-  fail_unless_equals_int (g_list_length (buffers), 1);
-  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+  do_panorama (in, sizeof (in), res, sizeof (res));
 
-  fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8);
-  GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d",
-      out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]);
-  fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0);
+  GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]);
+  fail_unless (memcmp (res, out, sizeof (res)) == 0);
 
-  /* cleanup */
   cleanup_panorama (panorama);
 }
 
 GST_END_TEST;
 
-GST_START_TEST (test_stereo_right_simple)
+GST_START_TEST (test_s16_stereo_right_simple)
 {
-  GstElement *panorama;
-  GstBuffer *inbuffer, *outbuffer;
-  GstCaps *caps;
   gint16 in[4] = { 16384, -256, 8192, 128 };
   gint16 out[4] = { 0, -256, 0, 128 };
   gint16 res[4];
+  GstElement *panorama = setup_panorama_s16_s (1, 1.0);
 
-  panorama = setup_panorama_s ();
-  g_object_set (G_OBJECT (panorama), "method", 1, NULL);
-  g_object_set (G_OBJECT (panorama), "panorama", 1.0, NULL);
-  fail_unless (gst_element_set_state (panorama,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
+  do_panorama (in, sizeof (in), res, sizeof (res));
 
-  inbuffer =
-      gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0,
-      sizeof (in), NULL, NULL);
-  fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 8) == 0);
-  caps = gst_caps_from_string (PANORAMA_STEREO_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_caps_unref (caps);
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  GST_INFO ("exp. %+5d %+5d %+5d %+5d", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+5d %+5d %+5d %+5d", res[0], res[1], res[2], res[3]);
+  fail_unless (memcmp (res, out, sizeof (res)) == 0);
 
-  /* pushing gives away my reference ... */
-  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
-  /* ... and puts a new buffer on the global list */
-  fail_unless_equals_int (g_list_length (buffers), 1);
-  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+  cleanup_panorama (panorama);
+}
 
-  fail_unless (gst_buffer_extract (outbuffer, 0, res, 8) == 8);
-  GST_INFO ("expected %+5d %+5d %+5d %+5d real %+5d %+5d %+5d %+5d",
-      out[0], out[1], out[2], out[3], res[0], res[1], res[2], res[3]);
-  fail_unless (gst_buffer_memcmp (outbuffer, 0, out, 8) == 0);
+GST_END_TEST;
+
+//-----------------------------------------------------------------------------
+
+GST_START_TEST (test_f32_mono_middle_simple)
+{
+  gfloat in[2] = { 0.5, -0.2 };
+  gfloat out[4] = { 0.5, 0.5, -0.2, -0.2 };
+  gfloat res[4];
+  GstElement *panorama = setup_panorama_f32_m (1, 0.0);
+  gint i;
+
+  do_panorama (in, sizeof (in), res, sizeof (res));
+
+  GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]);
+  for (i = 0; i < 4; i++)
+    fail_unless (res[i] == out[i], "difference at pos=%d", i);
 
-  /* cleanup */
   cleanup_panorama (panorama);
 }
 
 GST_END_TEST;
 
-GST_START_TEST (test_wrong_caps)
+GST_START_TEST (test_f32_mono_left_simple)
 {
-  GstElement *panorama;
-  GstBuffer *inbuffer;
-  gint16 in[2] = { 16384, -256 };
-  GstBus *bus;
-  GstMessage *message;
-  GstCaps *caps;
+  gfloat in[2] = { 0.5, -0.2 };
+  gfloat out[4] = { 0.5, 0.0, -0.2, 0.0 };
+  gfloat res[4];
+  GstElement *panorama = setup_panorama_f32_m (1, -1.0);
+  gint i;
 
-  panorama = setup_panorama_m ();
-  bus = gst_bus_new ();
+  do_panorama (in, sizeof (in), res, sizeof (res));
 
-  fail_unless (gst_element_set_state (panorama,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
+  GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]);
+  for (i = 0; i < 4; i++)
+    fail_unless (res[i] == out[i], "difference at pos=%d", i);
 
-  inbuffer =
-      gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, in, sizeof (in), 0,
-      sizeof (in), NULL, NULL);
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
-  gst_buffer_ref (inbuffer);
+  cleanup_panorama (panorama);
+}
 
-  /* set a bus here so we avoid getting state change messages */
-  gst_element_set_bus (panorama, bus);
+GST_END_TEST;
 
-  caps = gst_caps_from_string (PANORAMA_WRONG_CAPS_STRING);
-  /* this actually succeeds, because the caps event is sticky */
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_caps_unref (caps);
+GST_START_TEST (test_f32_mono_right_simple)
+{
+  gfloat in[2] = { 0.5, -0.2 };
+  gfloat out[4] = { 0.0, 0.5, 0.0, -0.2 };
+  gfloat res[4];
+  GstElement *panorama = setup_panorama_f32_m (1, 1.0);
+  gint i;
 
-  /* pushing gives an error because it can't negotiate with wrong caps */
-  fail_unless_equals_int (gst_pad_push (mysrcpad, inbuffer),
-      GST_FLOW_NOT_NEGOTIATED);
-  /* ... and the buffer would have been lost if we didn't ref it ourselves */
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
-  gst_buffer_unref (inbuffer);
-  fail_unless_equals_int (g_list_length (buffers), 0);
+  do_panorama (in, sizeof (in), res, sizeof (res));
 
-  /* panorama_set_caps should not have been called since basetransform caught
-   * the negotiation problem */
-  fail_if ((message = gst_bus_pop (bus)) != NULL);
+  GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]);
+  for (i = 0; i < 4; i++)
+    fail_unless (res[i] == out[i], "difference at pos=%d", i);
+
+  cleanup_panorama (panorama);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_f32_stereo_middle_simple)
+{
+  gfloat in[4] = { 0.5, -0.2, 0.25, 0.1 };
+  gfloat res[4];
+  GstElement *panorama = setup_panorama_f32_s (1, 0.0);
+  gint i;
+
+  do_panorama (in, sizeof (in), res, sizeof (res));
+
+  GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", in[0], in[1], in[2], in[3]);
+  GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]);
+  for (i = 0; i < 4; i++)
+    fail_unless (res[i] == in[i], "difference at pos=%d", i);
+
+  cleanup_panorama (panorama);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_f32_stereo_left_simple)
+{
+  gfloat in[4] = { 0.5, -0.2, 0.25, 0.1 };
+  gfloat out[4] = { 0.5, 0.0, 0.25, 0.0 };
+  gfloat res[4];
+  GstElement *panorama = setup_panorama_f32_s (1, -1.0);
+  gint i;
+
+  do_panorama (in, sizeof (in), res, sizeof (res));
+
+  GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]);
+  for (i = 0; i < 4; i++)
+    fail_unless (res[i] == out[i], "difference at pos=%d", i);
+
+  cleanup_panorama (panorama);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_f32_stereo_right_simple)
+{
+  gfloat in[4] = { 0.5, -0.2, 0.25, 0.1 };
+  gfloat out[4] = { 0.0, -0.2, 0.0, 0.1 };
+  gfloat res[4];
+  GstElement *panorama = setup_panorama_f32_s (1, 1.0);
+  gint i;
+
+  do_panorama (in, sizeof (in), res, sizeof (res));
+
+  GST_INFO ("exp. %+4.2f %+4.2f %+4.2f %+4.2f", out[0], out[1], out[2], out[3]);
+  GST_INFO ("real %+4.2f %+4.2f %+4.2f %+4.2f", res[0], res[1], res[2], res[3]);
+  for (i = 0; i < 4; i++)
+    fail_unless (res[i] == out[i], "difference at pos=%d", i);
 
-  /* cleanup */
-  gst_element_set_bus (panorama, NULL);
-  gst_object_unref (GST_OBJECT (bus));
   cleanup_panorama (panorama);
 }
 
@@ -683,36 +783,36 @@ panorama_suite (void)
   TCase *tc_chain = tcase_create ("general");
 
   suite_add_tcase (s, tc_chain);
-  tcase_add_test (tc_chain, test_mono_middle);
-  tcase_add_test (tc_chain, test_mono_left);
-  tcase_add_test (tc_chain, test_mono_right);
-  tcase_add_test (tc_chain, test_stereo_middle);
-  tcase_add_test (tc_chain, test_stereo_left);
-  tcase_add_test (tc_chain, test_stereo_right);
-  tcase_add_test (tc_chain, test_mono_middle_simple);
-  tcase_add_test (tc_chain, test_mono_left_simple);
-  tcase_add_test (tc_chain, test_mono_right_simple);
-  tcase_add_test (tc_chain, test_stereo_middle_simple);
-  tcase_add_test (tc_chain, test_stereo_left_simple);
-  tcase_add_test (tc_chain, test_stereo_right_simple);
+  tcase_add_test (tc_chain, test_ref_counts);
   tcase_add_test (tc_chain, test_wrong_caps);
+  /* processing for method=psy */
+  tcase_add_test (tc_chain, test_s16_mono_middle);
+  tcase_add_test (tc_chain, test_s16_mono_left);
+  tcase_add_test (tc_chain, test_s16_mono_right);
+  tcase_add_test (tc_chain, test_s16_stereo_middle);
+  tcase_add_test (tc_chain, test_s16_stereo_left);
+  tcase_add_test (tc_chain, test_s16_stereo_right);
+  tcase_add_test (tc_chain, test_f32_mono_middle);
+  tcase_add_test (tc_chain, test_f32_mono_left);
+  tcase_add_test (tc_chain, test_f32_mono_right);
+  tcase_add_test (tc_chain, test_f32_stereo_middle);
+  tcase_add_test (tc_chain, test_f32_stereo_left);
+  tcase_add_test (tc_chain, test_f32_stereo_right);
+  /* processing for method=simple */
+  tcase_add_test (tc_chain, test_s16_mono_middle_simple);
+  tcase_add_test (tc_chain, test_s16_mono_left_simple);
+  tcase_add_test (tc_chain, test_s16_mono_right_simple);
+  tcase_add_test (tc_chain, test_s16_stereo_middle_simple);
+  tcase_add_test (tc_chain, test_s16_stereo_left_simple);
+  tcase_add_test (tc_chain, test_s16_stereo_right_simple);
+  tcase_add_test (tc_chain, test_f32_mono_middle_simple);
+  tcase_add_test (tc_chain, test_f32_mono_left_simple);
+  tcase_add_test (tc_chain, test_f32_mono_right_simple);
+  tcase_add_test (tc_chain, test_f32_stereo_middle_simple);
+  tcase_add_test (tc_chain, test_f32_stereo_left_simple);
+  tcase_add_test (tc_chain, test_f32_stereo_right_simple);
 
   return s;
 }
 
-int
-main (int argc, char **argv)
-{
-  int nf;
-
-  Suite *s = panorama_suite ();
-  SRunner *sr = srunner_create (s);
-
-  gst_check_init (&argc, &argv);
-
-  srunner_run_all (sr, CK_NORMAL);
-  nf = srunner_ntests_failed (sr);
-  srunner_free (sr);
-
-  return nf;
-}
+GST_CHECK_MAIN (panorama);
diff --git a/tests/check/elements/audiowsincband.c b/tests/check/elements/audiowsincband.c
index 76c8664aa..0a5b9c128 100644
--- a/tests/check/elements/audiowsincband.c
+++ b/tests/check/elements/audiowsincband.c
@@ -132,15 +132,15 @@ GST_START_TEST (test_32_bp_0hz)
     in[i] = 1.0;
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -211,7 +211,7 @@ GST_START_TEST (test_32_bp_11025hz)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -285,15 +285,15 @@ GST_START_TEST (test_32_bp_22050hz)
   }
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -357,15 +357,15 @@ GST_START_TEST (test_32_br_0hz)
     in[i] = 1.0;
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -434,15 +434,15 @@ GST_START_TEST (test_32_br_11025hz)
   }
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -509,15 +509,15 @@ GST_START_TEST (test_32_br_22050hz)
   }
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -579,15 +579,15 @@ GST_START_TEST (test_32_small_buffer)
     in[i] = 1.0;
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -643,15 +643,15 @@ GST_START_TEST (test_64_bp_0hz)
     in[i] = 1.0;
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_64);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -719,15 +719,15 @@ GST_START_TEST (test_64_bp_11025hz)
   }
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_64);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -794,15 +794,15 @@ GST_START_TEST (test_64_bp_22050hz)
   }
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_64);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -866,15 +866,15 @@ GST_START_TEST (test_64_br_0hz)
     in[i] = 1.0;
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_64);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -943,15 +943,15 @@ GST_START_TEST (test_64_br_11025hz)
   }
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_64);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -1018,15 +1018,15 @@ GST_START_TEST (test_64_br_22050hz)
   }
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_64);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -1088,15 +1088,15 @@ GST_START_TEST (test_64_small_buffer)
     in[i] = 1.0;
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_BAND_CAPS_STRING_64);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsincband, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
diff --git a/tests/check/elements/audiowsinclimit.c b/tests/check/elements/audiowsinclimit.c
index bee834c17..de80451a5 100644
--- a/tests/check/elements/audiowsinclimit.c
+++ b/tests/check/elements/audiowsinclimit.c
@@ -129,15 +129,15 @@ GST_START_TEST (test_32_lp_0hz)
     in[i] = 1.0;
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -200,15 +200,15 @@ GST_START_TEST (test_32_lp_22050hz)
   }
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -269,15 +269,15 @@ GST_START_TEST (test_32_hp_0hz)
     in[i] = 1.0;
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -340,15 +340,15 @@ GST_START_TEST (test_32_hp_22050hz)
   }
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -408,15 +408,15 @@ GST_START_TEST (test_32_small_buffer)
     in[i] = 1.0;
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -463,15 +463,15 @@ GST_START_TEST (test_64_lp_0hz)
     in[i] = 1.0;
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_64);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -534,15 +534,15 @@ GST_START_TEST (test_64_lp_22050hz)
   }
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_64);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -603,15 +603,15 @@ GST_START_TEST (test_64_hp_0hz)
     in[i] = 1.0;
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_64);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -674,15 +674,15 @@ GST_START_TEST (test_64_hp_22050hz)
   }
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_64);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
@@ -742,15 +742,15 @@ GST_START_TEST (test_64_small_buffer)
     in[i] = 1.0;
   gst_buffer_unmap (inbuffer, &map);
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   caps = gst_caps_from_string (AUDIO_WSINC_LIMIT_CAPS_STRING_64);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audiowsinclimit, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
+  /* ensure segment (format) properly setup */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
diff --git a/tests/check/elements/autodetect.c b/tests/check/elements/autodetect.c
index 03a7ee95b..c1ee314dd 100644
--- a/tests/check/elements/autodetect.c
+++ b/tests/check/elements/autodetect.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -29,6 +29,7 @@ GST_START_TEST (test_autovideosink_ghostpad_error_case)
   GstStateChangeReturn state_ret;
   GstElement *pipeline, *src, *filter, *sink;
   GstCaps *caps;
+  GstElement *fakesink;
 
   pipeline = gst_pipeline_new ("pipeline");
   src = gst_element_factory_make ("fakesrc", NULL);
@@ -55,12 +56,21 @@ GST_START_TEST (test_autovideosink_ghostpad_error_case)
     state_ret =
         gst_element_get_state (pipeline, &state, &state, GST_CLOCK_TIME_NONE);
   }
-  fail_unless (state_ret == GST_STATE_CHANGE_FAILURE,
-      "pipeline _set_state() to PAUSED succeeded but should have failed");
-
-  /* so, we hit an error and try to shut down the pipeline; this shouldn't
-   * deadlock or block anywhere when autovideosink resets the ghostpad
-   * targets etc. */
+  fakesink = gst_bin_get_by_name (GST_BIN (sink), "fake-video-sink");
+  if (fakesink != NULL) {
+    /* no real video sink available */
+    fail_unless (state_ret == GST_STATE_CHANGE_SUCCESS,
+        "pipeline _set_state() to PAUSED failed");
+    gst_object_unref (fakesink);
+  } else {
+    /* autovideosink contains a real video sink */
+    fail_unless (state_ret == GST_STATE_CHANGE_FAILURE,
+        "pipeline _set_state() to PAUSED succeeded but should have failed");
+
+    /* so, we hit an error and try to shut down the pipeline; this shouldn't
+     * deadlock or block anywhere when autovideosink resets the ghostpad
+     * targets etc. */
+  }
   state_ret = gst_element_set_state (pipeline, GST_STATE_NULL);
   fail_unless (state_ret == GST_STATE_CHANGE_SUCCESS,
       "State change on pipeline failed");
diff --git a/tests/check/elements/avimux.c b/tests/check/elements/avimux.c
index 77441258f..47c155fd9 100644
--- a/tests/check/elements/avimux.c
+++ b/tests/check/elements/avimux.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -161,21 +161,17 @@ check_avimux_pad (GstStaticPadTemplate * srctemplate,
   guint8 data5[4] = "strf";
   guint8 data6[4] = "LIST";
   guint8 data7[4] = "movi";
-  GstSegment segment;
 
   avimux = setup_avimux (srctemplate, sinkname);
   fail_unless (gst_element_set_state (avimux,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
 
-  /* ensure segment (format) properly setup */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
-
   inbuffer = gst_buffer_new_and_alloc (1);
   caps = gst_caps_from_string (src_caps_string);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, avimux, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
+
   GST_BUFFER_TIMESTAMP (inbuffer) = 0;
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
diff --git a/tests/check/elements/avisubtitle.c b/tests/check/elements/avisubtitle.c
index 781c0e6d1..1b00b15e4 100644
--- a/tests/check/elements/avisubtitle.c
+++ b/tests/check/elements/avisubtitle.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /* Element-Checklist-Version: 5 */
 
@@ -70,19 +70,16 @@ static GstElement *
 setup_avisubtitle (void)
 {
   GstElement *avisubtitle;
-  GstCaps *sinkcaps, *srccaps;
+  GstCaps *srccaps;
 
   GST_DEBUG ("setup_avisubtitle");
   avisubtitle = gst_check_setup_element ("avisubtitle");
-  sinkcaps = gst_caps_new_empty_simple ("application/x-subtitle");
   mysinkpad = gst_check_setup_sink_pad (avisubtitle, &sink_template);
-  srccaps = gst_caps_new_empty_simple ("application/x-subtitle-avi");
   mysrcpad = gst_check_setup_src_pad (avisubtitle, &src_template);
   gst_pad_set_active (mysinkpad, TRUE);
   gst_pad_set_active (mysrcpad, TRUE);
-  fail_unless (gst_pad_set_caps (mysinkpad, sinkcaps));
-  fail_unless (gst_pad_set_caps (mysrcpad, srccaps));
-  gst_caps_unref (sinkcaps);
+  srccaps = gst_caps_new_empty_simple ("application/x-subtitle-avi");
+  gst_check_setup_events (mysrcpad, avisubtitle, srccaps, GST_FORMAT_TIME);
   gst_caps_unref (srccaps);
   return avisubtitle;
 }
diff --git a/tests/check/elements/capssetter.c b/tests/check/elements/capssetter.c
index e1eec8d8e..17e563b51 100644
--- a/tests/check/elements/capssetter.c
+++ b/tests/check/elements/capssetter.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -90,7 +90,7 @@ push_and_test (GstCaps * prop_caps, gboolean join, gboolean replace,
   ASSERT_BUFFER_REFCOUNT (buffer, "buffer", 1);
   gst_buffer_fill (buffer, 0, "data", 4);
 
-  gst_pad_set_caps (mysrcpad, in_caps);
+  gst_check_setup_events (mysrcpad, capssetter, in_caps, GST_FORMAT_TIME);
   gst_caps_unref (in_caps);
 
   /* pushing gives away my reference ... */
diff --git a/tests/check/elements/deinterlace.c b/tests/check/elements/deinterlace.c
index cc5634d20..c9da2dd82 100644
--- a/tests/check/elements/deinterlace.c
+++ b/tests/check/elements/deinterlace.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -276,8 +276,13 @@ static void
 deinterlace_set_caps_and_check (GstCaps * input, gboolean must_deinterlace)
 {
   GstCaps *othercaps = NULL;
+  GstSegment segment;
 
+  gst_pad_send_event (sinkpad, gst_event_new_stream_start ("test"));
   fail_unless (gst_pad_set_caps (sinkpad, input));
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  gst_pad_send_event (sinkpad, gst_event_new_segment (&segment));
+
   g_object_get (srcpad, "caps", &othercaps, NULL);
 
   if (must_deinterlace) {
diff --git a/tests/check/elements/deinterleave.c b/tests/check/elements/deinterleave.c
index a76024a97..2ad17b3ac 100644
--- a/tests/check/elements/deinterleave.c
+++ b/tests/check/elements/deinterleave.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -154,8 +154,7 @@ GST_START_TEST (test_2_channels)
   gst_caps_set_simple (caps, "channel-mask", GST_TYPE_BITMASK, channel_mask,
       NULL);
 
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_pad_use_fixed_caps (mysrcpad);
+  gst_check_setup_events (mysrcpad, deinterleave, caps, GST_FORMAT_TIME);
 
   sinkpad = gst_element_get_static_pad (deinterleave, "sink");
   fail_unless (sinkpad != NULL);
@@ -180,7 +179,6 @@ GST_START_TEST (test_2_channels)
     indata[i + 1] = 1.0;
   }
   gst_buffer_unmap (inbuf, &map);
-  gst_pad_set_caps (mysrcpad, caps);
 
   fail_unless (gst_pad_push (mysrcpad, inbuf) == GST_FLOW_OK);
 
@@ -227,8 +225,7 @@ GST_START_TEST (test_2_channels_1_linked)
   gst_caps_set_simple (caps, "channel-mask", GST_TYPE_BITMASK, channel_mask,
       NULL);
 
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_pad_use_fixed_caps (mysrcpad);
+  gst_check_setup_events (mysrcpad, deinterleave, caps, GST_FORMAT_TIME);
 
   sinkpad = gst_element_get_static_pad (deinterleave, "sink");
   fail_unless (sinkpad != NULL);
@@ -253,7 +250,6 @@ GST_START_TEST (test_2_channels_1_linked)
     indata[i + 1] = 1.0;
   }
   gst_buffer_unmap (inbuf, &map);
-  gst_pad_set_caps (mysrcpad, caps);
 
   fail_unless (gst_pad_push (mysrcpad, inbuf) == GST_FLOW_OK);
 
@@ -301,8 +297,7 @@ GST_START_TEST (test_2_channels_caps_change)
       G_GUINT64_CONSTANT (1) << GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT;
   gst_caps_set_simple (caps, "channel-mask", GST_TYPE_BITMASK, channel_mask,
       NULL);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_pad_use_fixed_caps (mysrcpad);
+  gst_check_setup_events (mysrcpad, deinterleave, caps, GST_FORMAT_TIME);
 
   sinkpad = gst_element_get_static_pad (deinterleave, "sink");
   fail_unless (sinkpad != NULL);
@@ -327,7 +322,6 @@ GST_START_TEST (test_2_channels_caps_change)
     indata[i + 1] = 1.0;
   }
   gst_buffer_unmap (inbuf, &map);
-  gst_pad_set_caps (mysrcpad, caps);
 
   fail_unless (gst_pad_push (mysrcpad, inbuf) == GST_FLOW_OK);
 
@@ -350,7 +344,6 @@ GST_START_TEST (test_2_channels_caps_change)
     indata[i + 1] = 1.0;
   }
   gst_buffer_unmap (inbuf, &map);
-  gst_pad_set_caps (mysrcpad, caps2);
 
   /* Should work fine because the caps changed in a compatible way */
   fail_unless (gst_pad_push (mysrcpad, inbuf) == GST_FLOW_OK);
@@ -379,7 +372,6 @@ GST_START_TEST (test_2_channels_caps_change)
     indata[i + 2] = 0.0;
   }
   gst_buffer_unmap (inbuf, &map);
-  gst_pad_set_caps (mysrcpad, caps2);
 
   /* Should break because the caps changed in an incompatible way */
   fail_if (gst_pad_push (mysrcpad, inbuf) == GST_FLOW_OK);
@@ -427,21 +419,6 @@ src_handoff_float32_8ch (GstElement * src, GstBuffer * buf, GstPad * pad,
 {
   gfloat *data, *p;
   guint size, i, c;
-  GstAudioChannelPosition layout[NUM_CHANNELS];
-  GstCaps *caps;
-
-  caps = gst_caps_new_simple ("audio/x-raw",
-      "format", G_TYPE_STRING, GST_AUDIO_NE (F32),
-      "channels", G_TYPE_INT, NUM_CHANNELS,
-      "layout", G_TYPE_STRING, "interleaved",
-      "rate", G_TYPE_INT, SAMPLE_RATE, NULL);
-
-  for (i = 0; i < NUM_CHANNELS; ++i)
-    layout[i] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT + i;
-
-  set_channel_positions (caps, NUM_CHANNELS, layout);
-  gst_pad_set_caps (pad, caps);
-  gst_caps_unref (caps);
 
   size = sizeof (gfloat) * SAMPLES_PER_BUFFER * NUM_CHANNELS;
   data = p = (gfloat *) g_malloc (size);
@@ -464,6 +441,34 @@ src_handoff_float32_8ch (GstElement * src, GstBuffer * buf, GstPad * pad,
   GST_BUFFER_TIMESTAMP (buf) = 0;
 }
 
+static GstPadProbeReturn
+src_event_probe (GstPad * pad, GstPadProbeInfo * info, gpointer userdata)
+{
+  GstAudioChannelPosition layout[NUM_CHANNELS];
+  GstCaps *caps;
+  guint i;
+
+  if ((info->type & GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM)
+      && GST_EVENT_TYPE (info->data) == GST_EVENT_STREAM_START) {
+    gst_pad_remove_probe (pad, info->id);
+
+    caps = gst_caps_new_simple ("audio/x-raw",
+        "format", G_TYPE_STRING, GST_AUDIO_NE (F32),
+        "channels", G_TYPE_INT, NUM_CHANNELS,
+        "layout", G_TYPE_STRING, "interleaved",
+        "rate", G_TYPE_INT, SAMPLE_RATE, NULL);
+
+    for (i = 0; i < NUM_CHANNELS; ++i)
+      layout[i] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT + i;
+
+    set_channel_positions (caps, NUM_CHANNELS, layout);
+    gst_pad_set_caps (pad, caps);
+    gst_caps_unref (caps);
+  }
+
+  return GST_PAD_PROBE_OK;
+}
+
 static GstPadProbeReturn
 float_buffer_check_probe (GstPad * pad, GstPadProbeInfo * info,
     gpointer userdata)
@@ -543,7 +548,6 @@ pad_added_setup_data_check_float32_8ch_cb (GstElement * deinterleave,
   fail_unless_equals_int (gst_pad_link (pad, sinkpad), GST_PAD_LINK_OK);
   gst_object_unref (sinkpad);
 
-
   gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BUFFER, float_buffer_check_probe,
       GUINT_TO_POINTER (pads_created), NULL);
 
@@ -558,6 +562,7 @@ static GstElement *
 make_fake_src_8chans_float32 (void)
 {
   GstElement *src;
+  GstPad *pad;
 
   src = gst_element_factory_make ("fakesrc", "src");
   fail_unless (src != NULL, "failed to create fakesrc element");
@@ -567,6 +572,11 @@ make_fake_src_8chans_float32 (void)
 
   g_signal_connect (src, "handoff", G_CALLBACK (src_handoff_float32_8ch), NULL);
 
+  pad = gst_element_get_static_pad (src, "src");
+  gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM, src_event_probe,
+      NULL, NULL);
+  gst_object_unref (pad);
+
   return src;
 }
 
diff --git a/tests/check/elements/dtmf.c b/tests/check/elements/dtmf.c
new file mode 100644
index 000000000..8b295da06
--- /dev/null
+++ b/tests/check/elements/dtmf.c
@@ -0,0 +1,588 @@
+/* GStreamer
+ *
+ * unit test for dtmf elements
+ * Copyright (C) 2013 Collabora Ltd
+ *   @author: Olivier Crete <olivier.crete@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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/gst.h>
+#include <gst/audio/audio.h>
+#include <gst/check/gstcheck.h>
+#include <gst/check/gsttestclock.h>
+#include <gst/rtp/gstrtpbuffer.h>
+
+
+/* Include this from the plugin to get the defines */
+
+#include "../../gst/dtmf/gstdtmfcommon.h"
+
+#define END_BIT (1<<7)
+
+static GstStaticPadTemplate audio_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-raw, "
+        "format = (string) \"" GST_AUDIO_NE (S16) "\", "
+        "rate = " GST_AUDIO_RATE_RANGE ", " "channels = (int) 1")
+    );
+
+static GstStaticPadTemplate rtp_dtmf_src_template =
+GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("application/x-rtp, "
+        "media = (string) \"audio\", "
+        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
+        "clock-rate = (int) [ 0, MAX ], "
+        "encoding-name = (string) \"TELEPHONE-EVENT\"")
+    );
+
+
+static void
+check_get_dtmf_event_message (GstBus * bus, gint number, gint volume)
+{
+  GstMessage *message;
+  gboolean have_message = FALSE;
+
+  while (!have_message &&
+      (message = gst_bus_pop_filtered (bus, GST_MESSAGE_ELEMENT)) != NULL) {
+    if (gst_message_has_name (message, "dtmf-event")) {
+      const GstStructure *s = gst_message_get_structure (message);
+      gint stype, snumber, smethod, svolume;
+
+      fail_unless (gst_structure_get (s,
+              "type", G_TYPE_INT, &stype,
+              "number", G_TYPE_INT, &snumber,
+              "method", G_TYPE_INT, &smethod,
+              "volume", G_TYPE_INT, &svolume, NULL));
+
+      fail_unless (stype == 1);
+      fail_unless (smethod == 1);
+      fail_unless (snumber == number);
+      fail_unless (svolume == volume);
+      have_message = TRUE;
+    }
+    gst_message_unref (message);
+  }
+
+  fail_unless (have_message);
+}
+
+static void
+check_no_dtmf_event_message (GstBus * bus)
+{
+  GstMessage *message;
+  gboolean have_message = FALSE;
+
+  while (!have_message &&
+      (message = gst_bus_pop_filtered (bus, GST_MESSAGE_ELEMENT)) != NULL) {
+    if (gst_message_has_name (message, "dtmf-event") ||
+        gst_message_has_name (message, "dtmf-event-processed") ||
+        gst_message_has_name (message, "dtmf-event-dropped")) {
+      have_message = TRUE;
+    }
+    gst_message_unref (message);
+  }
+
+  fail_unless (!have_message);
+}
+
+static void
+check_buffers_duration (GstClockTime expected_duration)
+{
+  GstClockTime duration = 0;
+
+  while (buffers) {
+    GstBuffer *buf = buffers->data;
+
+    buffers = g_list_delete_link (buffers, buffers);
+
+    fail_unless (GST_BUFFER_DURATION_IS_VALID (buf));
+    duration += GST_BUFFER_DURATION (buf);
+    gst_buffer_unref (buf);
+  }
+
+  fail_unless (duration == expected_duration);
+}
+
+static void
+send_rtp_packet (GstPad * src, guint timestamp, gboolean marker, gboolean end,
+    guint number, guint volume, guint duration)
+{
+  GstBuffer *buf;
+  GstRTPBuffer rtpbuf = GST_RTP_BUFFER_INIT;
+  gchar *payload;
+  static guint seqnum = 1;
+
+  buf = gst_rtp_buffer_new_allocate (4, 0, 0);
+  fail_unless (gst_rtp_buffer_map (buf, GST_MAP_READWRITE, &rtpbuf));
+  gst_rtp_buffer_set_seq (&rtpbuf, seqnum++);
+  gst_rtp_buffer_set_timestamp (&rtpbuf, timestamp);
+  gst_rtp_buffer_set_marker (&rtpbuf, marker);
+  payload = gst_rtp_buffer_get_payload (&rtpbuf);
+  payload[0] = number;
+  payload[1] = volume | (end ? END_BIT : 0);
+  GST_WRITE_UINT16_BE (payload + 2, duration);
+  gst_rtp_buffer_unmap (&rtpbuf);
+  fail_unless (gst_pad_push (src, buf) == GST_FLOW_OK);
+}
+
+GST_START_TEST (test_rtpdtmfdepay)
+{
+  GstElement *dtmfdepay;
+  GstPad *src, *sink;
+  GstBus *bus;
+  GstCaps *caps_in;
+  GstCaps *expected_caps_out;
+  GstCaps *caps_out;
+
+  dtmfdepay = gst_check_setup_element ("rtpdtmfdepay");
+  sink = gst_check_setup_sink_pad (dtmfdepay, &audio_sink_template);
+  src = gst_check_setup_src_pad (dtmfdepay, &rtp_dtmf_src_template);
+
+  bus = gst_bus_new ();
+  gst_element_set_bus (dtmfdepay, bus);
+
+  gst_pad_set_active (src, TRUE);
+  gst_pad_set_active (sink, TRUE);
+  gst_element_set_state (dtmfdepay, GST_STATE_PLAYING);
+
+
+  caps_in = gst_caps_new_simple ("application/x-rtp",
+      "encoding-name", G_TYPE_STRING, "TELEPHONE-EVENT",
+      "media", G_TYPE_STRING, "audio",
+      "clock-rate", G_TYPE_INT, 1000, "payload", G_TYPE_INT, 99, NULL);
+  gst_check_setup_events (src, dtmfdepay, caps_in, GST_FORMAT_TIME);
+  gst_caps_unref (caps_in);
+
+  caps_out = gst_pad_get_current_caps (sink);
+  expected_caps_out = gst_caps_new_simple ("audio/x-raw",
+      "format", G_TYPE_STRING, GST_AUDIO_NE (S16),
+      "rate", G_TYPE_INT, 1000, "channels", G_TYPE_INT, 1, NULL);
+  fail_unless (gst_caps_is_equal_fixed (caps_out, expected_caps_out));
+  gst_caps_unref (expected_caps_out);
+  gst_caps_unref (caps_out);
+
+  /* Single packet DTMF */
+  send_rtp_packet (src, 200, TRUE, TRUE, 1, 5, 250);
+  check_get_dtmf_event_message (bus, 1, 5);
+  check_buffers_duration (250 * GST_MSECOND);
+
+  /* Two packet DTMF */
+  send_rtp_packet (src, 800, TRUE, FALSE, 1, 5, 200);
+  send_rtp_packet (src, 800, FALSE, TRUE, 1, 5, 400);
+  check_buffers_duration (400 * GST_MSECOND);
+  check_get_dtmf_event_message (bus, 1, 5);
+
+  /* Long DTMF */
+  send_rtp_packet (src, 3000, TRUE, FALSE, 1, 5, 200);
+  check_get_dtmf_event_message (bus, 1, 5);
+  check_buffers_duration (200 * GST_MSECOND);
+  send_rtp_packet (src, 3000, FALSE, FALSE, 1, 5, 400);
+  check_no_dtmf_event_message (bus);
+  check_buffers_duration (200 * GST_MSECOND);
+  send_rtp_packet (src, 3000, FALSE, FALSE, 1, 5, 600);
+  check_no_dtmf_event_message (bus);
+  check_buffers_duration (200 * GST_MSECOND);
+
+  /* New without end to last */
+  send_rtp_packet (src, 4000, TRUE, TRUE, 1, 5, 250);
+  check_get_dtmf_event_message (bus, 1, 5);
+  check_buffers_duration (250 * GST_MSECOND);
+
+  check_no_dtmf_event_message (bus);
+  fail_unless (buffers == NULL);
+  gst_element_set_bus (dtmfdepay, NULL);
+  gst_object_unref (bus);
+
+  gst_pad_set_active (src, FALSE);
+  gst_pad_set_active (sink, FALSE);
+  gst_check_teardown_sink_pad (dtmfdepay);
+  gst_check_teardown_src_pad (dtmfdepay);
+  gst_check_teardown_element (dtmfdepay);
+}
+
+GST_END_TEST;
+
+
+static GstStaticPadTemplate rtp_dtmf_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("application/x-rtp, "
+        "media = (string) \"audio\", "
+        "payload = (int) 99, "
+        "clock-rate = (int) 1000, "
+        "seqnum-base = (uint) 333, "
+        "clock-base = (uint) 666, "
+        "ssrc = (uint) 999, "
+        "maxptime = (uint) 20, encoding-name = (string) \"TELEPHONE-EVENT\"")
+    );
+
+GstElement *dtmfsrc;
+GstPad *sink;
+GstClock *testclock;
+GstBus *bus;
+
+static void
+check_message_structure (GstStructure * expected_s)
+{
+  GstMessage *message;
+  gboolean have_message = FALSE;
+
+  while (!have_message &&
+      (message = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE,
+              GST_MESSAGE_ELEMENT)) != NULL) {
+    if (gst_message_has_name (message, gst_structure_get_name (expected_s))) {
+      const GstStructure *s = gst_message_get_structure (message);
+
+      fail_unless (gst_structure_is_equal (s, expected_s));
+      have_message = TRUE;
+    }
+    gst_message_unref (message);
+  }
+
+  fail_unless (have_message);
+
+  gst_structure_free (expected_s);
+}
+
+static void
+check_rtp_buffer (GstClockTime ts, GstClockTime duration, gboolean start,
+    gboolean end, guint rtpts, guint ssrc, guint volume, guint number,
+    guint rtpduration)
+{
+  GstBuffer *buffer;
+  GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT;
+  gchar *payload;
+
+  g_mutex_lock (&check_mutex);
+  while (buffers == NULL)
+    g_cond_wait (&check_cond, &check_mutex);
+  g_mutex_unlock (&check_mutex);
+  fail_unless (buffers != NULL);
+
+  buffer = buffers->data;
+  buffers = g_list_delete_link (buffers, buffers);
+
+  fail_unless (GST_BUFFER_PTS (buffer) == ts);
+  fail_unless (GST_BUFFER_DURATION (buffer) == duration);
+
+  fail_unless (gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtpbuffer));
+  fail_unless (gst_rtp_buffer_get_marker (&rtpbuffer) == start);
+  fail_unless (gst_rtp_buffer_get_timestamp (&rtpbuffer) == rtpts);
+  payload = gst_rtp_buffer_get_payload (&rtpbuffer);
+
+  fail_unless (payload[0] == number);
+  fail_unless ((payload[1] & 0x7F) == volume);
+  fail_unless (! !(payload[1] & 0x80) == end);
+  fail_unless (GST_READ_UINT16_BE (payload + 2) == rtpduration);
+
+  gst_rtp_buffer_unmap (&rtpbuffer);
+  gst_buffer_unref (buffer);
+}
+
+gint method;
+
+static void
+setup_rtpdtmfsrc (void)
+{
+  testclock = gst_test_clock_new ();
+  bus = gst_bus_new ();
+
+  method = 1;
+  dtmfsrc = gst_check_setup_element ("rtpdtmfsrc");
+  sink = gst_check_setup_sink_pad (dtmfsrc, &rtp_dtmf_sink_template);
+  gst_element_set_bus (dtmfsrc, bus);
+  fail_unless (gst_element_set_clock (dtmfsrc, testclock));
+
+  gst_pad_set_active (sink, TRUE);
+  fail_unless (gst_element_set_state (dtmfsrc, GST_STATE_PLAYING) ==
+      GST_STATE_CHANGE_SUCCESS);
+}
+
+static void
+teardown_dtmfsrc (void)
+{
+  gst_object_unref (testclock);
+  gst_pad_set_active (sink, FALSE);
+  gst_element_set_bus (dtmfsrc, NULL);
+  gst_object_unref (bus);
+  gst_check_teardown_sink_pad (dtmfsrc);
+  gst_check_teardown_element (dtmfsrc);
+}
+
+GST_START_TEST (test_dtmfsrc_invalid_events)
+{
+  GstStructure *s;
+
+  /* Missing start */
+  s = gst_structure_new ("dtmf-event",
+      "type", G_TYPE_INT, 1, "number", G_TYPE_INT, 3,
+      "method", G_TYPE_INT, method, "volume", G_TYPE_INT, 8, NULL);
+  fail_unless (gst_pad_push_event (sink,
+          gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, s)) == FALSE);
+
+  /* Missing volume */
+  s = gst_structure_new ("dtmf-event",
+      "type", G_TYPE_INT, 1, "number", G_TYPE_INT, 3,
+      "method", G_TYPE_INT, method, "start", G_TYPE_BOOLEAN, TRUE, NULL);
+  fail_unless (gst_pad_push_event (sink,
+          gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, s)) == FALSE);
+
+  /* Missing number */
+  s = gst_structure_new ("dtmf-event",
+      "type", G_TYPE_INT, 1, "method", G_TYPE_INT, method,
+      "volume", G_TYPE_INT, 8, "start", G_TYPE_BOOLEAN, TRUE, NULL);
+  fail_unless (gst_pad_push_event (sink,
+          gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, s)) == FALSE);
+
+  /* Missing type */
+  s = gst_structure_new ("dtmf-event",
+      "number", G_TYPE_INT, 3, "method", G_TYPE_INT, method,
+      "volume", G_TYPE_INT, 8, "start", G_TYPE_BOOLEAN, TRUE, NULL);
+  fail_unless (gst_pad_push_event (sink,
+          gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, s)) == FALSE);
+
+  /* Stop before start */
+  s = gst_structure_new ("dtmf-event",
+      "type", G_TYPE_INT, 1, "number", G_TYPE_INT, 3,
+      "method", G_TYPE_INT, method, "volume", G_TYPE_INT, 8,
+      "start", G_TYPE_BOOLEAN, FALSE, NULL);
+  fail_unless (gst_pad_push_event (sink,
+          gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, s)) == FALSE);
+
+  gst_element_set_state (dtmfsrc, GST_STATE_NULL);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_rtpdtmfsrc_min_duration)
+{
+  GstStructure *s;
+  GstClockID id;
+  guint timestamp = 0;
+  GstCaps *expected_caps, *caps;
+
+  /* Minimum duration dtmf */
+
+  s = gst_structure_new ("dtmf-event",
+      "type", G_TYPE_INT, 1, "number", G_TYPE_INT, 3,
+      "method", G_TYPE_INT, 1, "volume", G_TYPE_INT, 8,
+      "start", G_TYPE_BOOLEAN, TRUE, NULL);
+  fail_unless (gst_pad_push_event (sink,
+          gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM,
+              gst_structure_copy (s))));
+  check_no_dtmf_event_message (bus);
+  gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (testclock), NULL);
+  fail_unless (buffers == NULL);
+  id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (testclock));
+  fail_unless (gst_clock_id_get_time (id) == 0);
+  gst_clock_id_unref (id);
+  gst_structure_set_name (s, "dtmf-event-processed");
+  check_message_structure (s);
+
+  s = gst_structure_new ("dtmf-event",
+      "type", G_TYPE_INT, 1, "method", G_TYPE_INT, 1,
+      "start", G_TYPE_BOOLEAN, FALSE, NULL);
+  fail_unless (gst_pad_push_event (sink,
+          gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM,
+              gst_structure_copy (s))));
+
+  check_rtp_buffer (0, 20 * GST_MSECOND, TRUE, FALSE, 666, 999, 8, 3, 20);
+
+  for (timestamp = 20; timestamp < MIN_PULSE_DURATION + 20; timestamp += 20) {
+    gst_test_clock_advance_time (GST_TEST_CLOCK (testclock),
+        20 * GST_MSECOND + 1);
+    gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (testclock), NULL);
+    fail_unless (buffers == NULL);
+    id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (testclock));
+    fail_unless (gst_clock_id_get_time (id) == timestamp * GST_MSECOND);
+    gst_clock_id_unref (id);
+
+    if (timestamp < MIN_PULSE_DURATION) {
+      check_rtp_buffer (timestamp * GST_MSECOND, 20 * GST_MSECOND, FALSE,
+          FALSE, 666, 999, 8, 3, timestamp + 20);
+      check_no_dtmf_event_message (bus);
+    } else {
+      gst_structure_set_name (s, "dtmf-event-processed");
+      check_message_structure (s);
+      check_rtp_buffer (timestamp * GST_MSECOND,
+          (20 + MIN_INTER_DIGIT_INTERVAL) * GST_MSECOND, FALSE, TRUE, 666,
+          999, 8, 3, timestamp + 20);
+    }
+
+    fail_unless (buffers == NULL);
+  }
+
+
+  fail_unless (gst_test_clock_peek_id_count (GST_TEST_CLOCK (testclock)) == 0);
+
+  /* caps check */
+
+  expected_caps = gst_caps_new_simple ("application/x-rtp",
+      "encoding-name", G_TYPE_STRING, "TELEPHONE-EVENT",
+      "media", G_TYPE_STRING, "audio",
+      "clock-rate", G_TYPE_INT, 1000, "payload", G_TYPE_INT, 99,
+      "seqnum-base", G_TYPE_UINT, 333,
+      "clock-base", G_TYPE_UINT, 666,
+      "ssrc", G_TYPE_UINT, 999, "ptime", G_TYPE_UINT, 20, NULL);
+  caps = gst_pad_get_current_caps (sink);
+  fail_unless (gst_caps_can_intersect (caps, expected_caps));
+  gst_caps_unref (caps);
+  gst_caps_unref (expected_caps);
+
+  gst_element_set_state (dtmfsrc, GST_STATE_NULL);
+
+  check_no_dtmf_event_message (bus);
+}
+
+GST_END_TEST;
+
+static GstStaticPadTemplate audio_dtmfsrc_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-raw, "
+        "format = (string) \"" GST_AUDIO_NE (S16) "\", "
+        "rate = (int) 8003, " "channels = (int) 1")
+    );
+static void
+setup_dtmfsrc (void)
+{
+  testclock = gst_test_clock_new ();
+  bus = gst_bus_new ();
+
+  method = 2;
+  dtmfsrc = gst_check_setup_element ("dtmfsrc");
+  sink = gst_check_setup_sink_pad (dtmfsrc, &audio_dtmfsrc_sink_template);
+  gst_element_set_bus (dtmfsrc, bus);
+  fail_unless (gst_element_set_clock (dtmfsrc, testclock));
+
+  gst_pad_set_active (sink, TRUE);
+  fail_unless (gst_element_set_state (dtmfsrc, GST_STATE_PLAYING) ==
+      GST_STATE_CHANGE_SUCCESS);
+}
+
+
+GST_START_TEST (test_dtmfsrc_min_duration)
+{
+  GstStructure *s;
+  GstClockID id;
+  GstClockTime timestamp = 0;
+  GstCaps *expected_caps, *caps;
+  guint interval;
+
+  g_object_get (dtmfsrc, "interval", &interval, NULL);
+  fail_unless (interval == 50);
+
+  /* Minimum duration dtmf */
+  gst_test_clock_set_time (GST_TEST_CLOCK (testclock), 0);
+
+  s = gst_structure_new ("dtmf-event",
+      "type", G_TYPE_INT, 1, "number", G_TYPE_INT, 3,
+      "method", G_TYPE_INT, 2, "volume", G_TYPE_INT, 8,
+      "start", G_TYPE_BOOLEAN, TRUE, NULL);
+  fail_unless (gst_pad_push_event (sink,
+          gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM,
+              gst_structure_copy (s))));
+
+  gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (testclock), NULL);
+  id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (testclock));
+  fail_unless (gst_clock_id_get_time (id) == 0);
+  gst_clock_id_unref (id);
+
+  gst_structure_set_name (s, "dtmf-event-processed");
+  check_message_structure (s);
+
+  s = gst_structure_new ("dtmf-event",
+      "type", G_TYPE_INT, 1, "method", G_TYPE_INT, 2,
+      "start", G_TYPE_BOOLEAN, FALSE, NULL);
+  fail_unless (gst_pad_push_event (sink,
+          gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM,
+              gst_structure_copy (s))));
+
+  for (timestamp = interval * GST_MSECOND;
+      timestamp < (MIN_PULSE_DURATION + MIN_INTER_DIGIT_INTERVAL) *
+      GST_MSECOND; timestamp += GST_MSECOND * interval) {
+    gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (testclock), NULL);
+    gst_test_clock_advance_time (GST_TEST_CLOCK (testclock),
+        interval * GST_MSECOND);
+
+    id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (testclock));
+    fail_unless (gst_clock_id_get_time (id) == timestamp);
+    gst_clock_id_unref (id);
+  }
+
+  gst_structure_set_name (s, "dtmf-event-processed");
+  check_message_structure (s);
+
+  check_buffers_duration ((MIN_PULSE_DURATION + MIN_INTER_DIGIT_INTERVAL) *
+      GST_MSECOND);
+
+  fail_unless (gst_test_clock_peek_id_count (GST_TEST_CLOCK (testclock)) == 0);
+
+  /* caps check */
+
+  expected_caps = gst_caps_new_simple ("audio/x-raw",
+      "format", G_TYPE_STRING, GST_AUDIO_NE (S16),
+      "rate", G_TYPE_INT, 8003, "channels", G_TYPE_INT, 1, NULL);
+  caps = gst_pad_get_current_caps (sink);
+  fail_unless (gst_caps_can_intersect (caps, expected_caps));
+  gst_caps_unref (caps);
+  gst_caps_unref (expected_caps);
+
+  gst_element_set_state (dtmfsrc, GST_STATE_NULL);
+
+  check_no_dtmf_event_message (bus);
+}
+
+GST_END_TEST;
+
+static Suite *
+dtmf_suite (void)
+{
+  Suite *s = suite_create ("dtmf");
+  TCase *tc;
+
+  tc = tcase_create ("rtpdtmfdepay");
+  tcase_add_test (tc, test_rtpdtmfdepay);
+  suite_add_tcase (s, tc);
+
+  tc = tcase_create ("rtpdtmfsrc");
+  tcase_add_checked_fixture (tc, setup_rtpdtmfsrc, teardown_dtmfsrc);
+  tcase_add_test (tc, test_dtmfsrc_invalid_events);
+  tcase_add_test (tc, test_rtpdtmfsrc_min_duration);
+  suite_add_tcase (s, tc);
+
+  tc = tcase_create ("dtmfsrc");
+  tcase_add_checked_fixture (tc, setup_dtmfsrc, teardown_dtmfsrc);
+  tcase_add_test (tc, test_dtmfsrc_invalid_events);
+  tcase_add_test (tc, test_dtmfsrc_min_duration);
+  suite_add_tcase (s, tc);
+
+  return s;
+}
+
+
+GST_CHECK_MAIN (dtmf);
diff --git a/tests/check/elements/equalizer.c b/tests/check/elements/equalizer.c
index a43268e7d..491e0394d 100644
--- a/tests/check/elements/equalizer.c
+++ b/tests/check/elements/equalizer.c
@@ -114,7 +114,7 @@ GST_START_TEST (test_equalizer_5bands_passthrough)
   gst_buffer_unmap (inbuffer, &map);
 
   caps = gst_caps_from_string (EQUALIZER_CAPS_STRING);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, equalizer, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -178,7 +178,7 @@ GST_START_TEST (test_equalizer_5bands_minus_24)
   rms_in = sqrt (rms_in / 1024);
 
   caps = gst_caps_from_string (EQUALIZER_CAPS_STRING);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, equalizer, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -246,7 +246,7 @@ GST_START_TEST (test_equalizer_5bands_plus_12)
   rms_in = sqrt (rms_in / 1024);
 
   caps = gst_caps_from_string (EQUALIZER_CAPS_STRING);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, equalizer, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
diff --git a/tests/check/elements/flacparse.c b/tests/check/elements/flacparse.c
index 497a98a68..306f0109b 100644
--- a/tests/check/elements/flacparse.c
+++ b/tests/check/elements/flacparse.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/elements/flvdemux.c b/tests/check/elements/flvdemux.c
index efc306185..c9d156dda 100644
--- a/tests/check/elements/flvdemux.c
+++ b/tests/check/elements/flvdemux.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/elements/flvmux.c b/tests/check/elements/flvmux.c
index e6085359a..1df2efe42 100644
--- a/tests/check/elements/flvmux.c
+++ b/tests/check/elements/flvmux.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/elements/gdkpixbufsink.c b/tests/check/elements/gdkpixbufsink.c
index 6f8018ba4..1183ccb46 100644
--- a/tests/check/elements/gdkpixbufsink.c
+++ b/tests/check/elements/gdkpixbufsink.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/elements/icydemux.c b/tests/check/elements/icydemux.c
index ae63a80a6..525e309fc 100644
--- a/tests/check/elements/icydemux.c
+++ b/tests/check/elements/icydemux.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -159,7 +159,7 @@ cleanup_icydemux (void)
 }
 
 static void
-push_data (const guint8 * data, int len, GstCaps * caps, gint64 offset)
+push_data (const guint8 * data, int len, gint64 offset)
 {
   GstFlowReturn res;
   GstBuffer *buffer = gst_buffer_new_and_alloc (len);
@@ -168,7 +168,6 @@ push_data (const guint8 * data, int len, GstCaps * caps, gint64 offset)
 
   GST_BUFFER_OFFSET (buffer) = offset;
 
-  gst_pad_set_caps (srcpad, caps);
   res = gst_pad_push (srcpad, buffer);
 
   fail_unless (res == GST_FLOW_OK, "Failed pushing buffer: %d", res);
@@ -191,8 +190,9 @@ GST_START_TEST (test_demux)
   caps = gst_caps_from_string (ICYCAPS);
 
   create_icydemux ();
+  gst_check_setup_events (srcpad, icydemux, caps, GST_FORMAT_TIME);
 
-  push_data ((guint8 *) ICY_DATA, sizeof (ICY_DATA), caps, -1);
+  push_data ((guint8 *) ICY_DATA, sizeof (ICY_DATA), -1);
 
   message = gst_bus_poll (bus, GST_MESSAGE_TAG, -1);
   fail_unless (message != NULL);
@@ -235,12 +235,14 @@ GST_START_TEST (test_first_buf_offset_when_merged_for_typefinding)
 
   icy_caps = gst_caps_from_string (ICYCAPS);
 
-  push_data (buf1, G_N_ELEMENTS (buf1), icy_caps, 0);
+  gst_check_setup_events (srcpad, icydemux, icy_caps, GST_FORMAT_TIME);
+
+  push_data (buf1, G_N_ELEMENTS (buf1), 0);
 
   /* one byte isn't really enough for typefinding, can't have a srcpad yet */
   fail_unless (gst_element_get_static_pad (icydemux, "src") == NULL);
 
-  push_data (buf2, G_N_ELEMENTS (buf2), icy_caps, -1);
+  push_data (buf2, G_N_ELEMENTS (buf2), -1);
 
   /* should have been enough to create a audio/x-musepack source pad .. */
   icy_srcpad = gst_element_get_static_pad (icydemux, "src");
@@ -262,9 +264,14 @@ GST_END_TEST;
 GST_START_TEST (test_not_negotiated)
 {
   GstBuffer *buf;
+  GstSegment segment;
 
   create_icydemux ();
 
+  gst_segment_init (&segment, GST_FORMAT_BYTES);
+  gst_pad_push_event (srcpad, gst_event_new_stream_start ("test"));
+  gst_pad_push_event (srcpad, gst_event_new_segment (&segment));
+
   buf = gst_buffer_new_and_alloc (0);
   GST_BUFFER_OFFSET (buf) = 0;
 
diff --git a/tests/check/elements/id3demux.c b/tests/check/elements/id3demux.c
index bb0cb85ad..17b524d0c 100644
--- a/tests/check/elements/id3demux.c
+++ b/tests/check/elements/id3demux.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/elements/id3v2mux.c b/tests/check/elements/id3v2mux.c
index 9c9beeaef..21869e6b7 100644
--- a/tests/check/elements/id3v2mux.c
+++ b/tests/check/elements/id3v2mux.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -294,7 +294,7 @@ got_buffer (GstElement * fakesink, GstBuffer * buf, GstPad * pad,
 
   gst_buffer_map (buf, &map, GST_MAP_READ);
 
-  GST_LOG ("got buffer, size=%u, offset=%" G_GINT64_FORMAT, map.size, off);
+  GST_LOG ("size=%" G_GSIZE_FORMAT ", offset=%" G_GINT64_FORMAT, map.size, off);
 
   fail_unless (GST_BUFFER_OFFSET_IS_VALID (buf));
 
diff --git a/tests/check/elements/imagefreeze.c b/tests/check/elements/imagefreeze.c
index a5f172e3b..cfeff3734 100644
--- a/tests/check/elements/imagefreeze.c
+++ b/tests/check/elements/imagefreeze.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <string.h>
diff --git a/tests/check/elements/interleave.c b/tests/check/elements/interleave.c
index 1c8c71fe7..be0a4b6ba 100644
--- a/tests/check/elements/interleave.c
+++ b/tests/check/elements/interleave.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
@@ -34,6 +34,21 @@
 #include <gst/audio/audio.h>
 #include <gst/audio/audio-enumtypes.h>
 
+static void
+gst_check_setup_events_interleave (GstPad * srcpad, GstElement * element,
+    GstCaps * caps, GstFormat format, const gchar * stream_id)
+{
+  GstSegment segment;
+
+  gst_segment_init (&segment, format);
+
+  fail_unless (gst_pad_push_event (srcpad,
+          gst_event_new_stream_start (stream_id)));
+  if (caps)
+    fail_unless (gst_pad_push_event (srcpad, gst_event_new_caps (caps)));
+  fail_unless (gst_pad_push_event (srcpad, gst_event_new_segment (&segment)));
+}
+
 GST_START_TEST (test_create_and_unref)
 {
   GstElement *interleave;
@@ -161,14 +176,16 @@ GST_START_TEST (test_interleave_2ch)
 
   caps = gst_caps_from_string (CAPS_48khz);
   gst_pad_set_active (mysrcpads[0], TRUE);
-  fail_unless (gst_pad_set_caps (mysrcpads[0], caps));
+  gst_check_setup_events_interleave (mysrcpads[0], interleave, caps,
+      GST_FORMAT_TIME, "0");
   gst_pad_use_fixed_caps (mysrcpads[0]);
 
   mysrcpads[1] = gst_pad_new_from_static_template (&srctemplate, "src1");
   fail_unless (mysrcpads[1] != NULL);
 
   gst_pad_set_active (mysrcpads[1], TRUE);
-  fail_unless (gst_pad_set_caps (mysrcpads[1], caps));
+  gst_check_setup_events_interleave (mysrcpads[1], interleave, caps,
+      GST_FORMAT_TIME, "1");
   gst_pad_use_fixed_caps (mysrcpads[1]);
 
   tmp = gst_element_get_static_pad (queue, "sink");
@@ -205,7 +222,6 @@ GST_START_TEST (test_interleave_2ch)
   for (i = 0; i < 48000; i++)
     indata[i] = -1.0;
   gst_buffer_unmap (inbuf, &map);
-  gst_pad_set_caps (mysrcpads[0], caps);
   fail_unless (gst_pad_push (mysrcpads[0], inbuf) == GST_FLOW_OK);
 
   input[1] = 1.0;
@@ -215,7 +231,6 @@ GST_START_TEST (test_interleave_2ch)
   for (i = 0; i < 48000; i++)
     indata[i] = 1.0;
   gst_buffer_unmap (inbuf, &map);
-  gst_pad_set_caps (mysrcpads[1], caps);
   fail_unless (gst_pad_push (mysrcpads[1], inbuf) == GST_FLOW_OK);
 
   inbuf = gst_buffer_new_and_alloc (48000 * sizeof (gfloat));
@@ -291,14 +306,16 @@ GST_START_TEST (test_interleave_2ch_1eos)
 
   caps = gst_caps_from_string (CAPS_48khz);
   gst_pad_set_active (mysrcpads[0], TRUE);
-  fail_unless (gst_pad_set_caps (mysrcpads[0], caps));
+  gst_check_setup_events_interleave (mysrcpads[0], interleave, caps,
+      GST_FORMAT_TIME, "0");
   gst_pad_use_fixed_caps (mysrcpads[0]);
 
   mysrcpads[1] = gst_pad_new_from_static_template (&srctemplate, "src1");
   fail_unless (mysrcpads[1] != NULL);
 
   gst_pad_set_active (mysrcpads[1], TRUE);
-  fail_unless (gst_pad_set_caps (mysrcpads[1], caps));
+  gst_check_setup_events_interleave (mysrcpads[1], interleave, caps,
+      GST_FORMAT_TIME, "1");
   gst_pad_use_fixed_caps (mysrcpads[1]);
 
   tmp = gst_element_get_static_pad (queue, "sink");
@@ -335,7 +352,6 @@ GST_START_TEST (test_interleave_2ch_1eos)
   for (i = 0; i < 48000; i++)
     indata[i] = -1.0;
   gst_buffer_unmap (inbuf, &map);
-  gst_pad_set_caps (mysrcpads[0], caps);
   fail_unless (gst_pad_push (mysrcpads[0], inbuf) == GST_FLOW_OK);
 
   input[1] = 1.0;
@@ -345,7 +361,6 @@ GST_START_TEST (test_interleave_2ch_1eos)
   for (i = 0; i < 48000; i++)
     indata[i] = 1.0;
   gst_buffer_unmap (inbuf, &map);
-  gst_pad_set_caps (mysrcpads[1], caps);
   fail_unless (gst_pad_push (mysrcpads[1], inbuf) == GST_FLOW_OK);
 
   input[0] = 0.0;
diff --git a/tests/check/elements/jpegdec.c b/tests/check/elements/jpegdec.c
index 070ccdd3d..81b8b9105 100644
--- a/tests/check/elements/jpegdec.c
+++ b/tests/check/elements/jpegdec.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
diff --git a/tests/check/elements/jpegenc.c b/tests/check/elements/jpegenc.c
index 1044b4e20..fe55fb291 100644
--- a/tests/check/elements/jpegenc.c
+++ b/tests/check/elements/jpegenc.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -195,7 +195,7 @@ GST_START_TEST (test_jpegenc_different_caps)
   caps = gst_caps_new_simple ("video/x-raw", "width", G_TYPE_INT,
       800, "height", G_TYPE_INT, 600, "framerate",
       GST_TYPE_FRACTION, 1, 1, "format", G_TYPE_STRING, "I420", NULL);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, jpegenc, caps, GST_FORMAT_TIME);
   fail_unless ((buffer = create_video_buffer (caps)) != NULL);
   gst_caps_unref (caps);
   fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
diff --git a/tests/check/elements/level.c b/tests/check/elements/level.c
index 6b721b140..73f034091 100644
--- a/tests/check/elements/level.c
+++ b/tests/check/elements/level.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -33,22 +33,31 @@
 /* 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 */
-GstPad *mysrcpad, *mysinkpad;
+static GstPad *mysrcpad, *mysinkpad;
 
 #define LEVEL_CAPS_TEMPLATE_STRING \
   "audio/x-raw, " \
-    "format = (string) { S8, "GST_AUDIO_NE(S16)" }, " \
+    "format = (string) { "GST_AUDIO_NE(S16)", "GST_AUDIO_NE(F32)" }, " \
     "layout = (string) interleaved, " \
     "rate = (int) [ 1, MAX ], " \
     "channels = (int) [ 1, 8 ]"
 
-#define LEVEL_CAPS_STRING \
+/* we use rate = 1000 here for easy buffer size calculations */
+#define LEVEL_S16_CAPS_STRING \
   "audio/x-raw, " \
     "format = (string) "GST_AUDIO_NE(S16)", " \
     "layout = (string) interleaved, " \
     "rate = (int) 1000, " \
     "channels = (int) 2, "  \
-    "channel-mask = (bitmask) 3"  \
+    "channel-mask = (bitmask) 3"
+
+#define LEVEL_F32_CAPS_STRING \
+  "audio/x-raw, " \
+    "format = (string) "GST_AUDIO_NE(F32)", " \
+    "layout = (string) interleaved, " \
+    "rate = (int) 1000, " \
+    "channels = (int) 2, "  \
+    "channel-mask = (bitmask) 3"
 
 static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
@@ -63,9 +72,10 @@ static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
 
 /* takes over reference for outcaps */
 static GstElement *
-setup_level (void)
+setup_level (const gchar * caps_str)
 {
   GstElement *level;
+  GstCaps *caps;
 
   GST_DEBUG ("setup_level");
   level = gst_check_setup_element ("level");
@@ -74,6 +84,10 @@ setup_level (void)
   gst_pad_set_active (mysrcpad, TRUE);
   gst_pad_set_active (mysinkpad, TRUE);
 
+  caps = gst_caps_from_string (caps_str);
+  gst_check_setup_events (mysrcpad, level, caps, GST_FORMAT_TIME);
+  gst_caps_unref (caps);
+
   return level;
 }
 
@@ -89,49 +103,69 @@ cleanup_level (GstElement * level)
   gst_check_teardown_element (level);
 }
 
+/* create a 0.1 sec buffer stereo buffer */
+static GstBuffer *
+create_s16_buffer (gint16 val_l, gint16 val_r)
+{
+  GstBuffer *buf = gst_buffer_new_and_alloc (2 * 100 * sizeof (gint16));
+  GstMapInfo map;
+  gint j;
+  gint16 *data;
 
-GST_START_TEST (test_int16)
+  gst_buffer_map (buf, &map, GST_MAP_WRITE);
+  data = (gint16 *) map.data;
+  for (j = 0; j < 100; ++j) {
+    *(data++) = val_l;
+    *(data++) = val_r;
+  }
+  gst_buffer_unmap (buf, &map);
+  GST_BUFFER_TIMESTAMP (buf) = G_GUINT64_CONSTANT (0);
+  return buf;
+}
+
+static GstBuffer *
+create_f32_buffer (gfloat val_l, gfloat val_r)
+{
+  GstBuffer *buf = gst_buffer_new_and_alloc (2 * 100 * sizeof (gfloat));
+  GstMapInfo map;
+  gint j;
+  gfloat *data;
+
+  gst_buffer_map (buf, &map, GST_MAP_WRITE);
+  data = (gfloat *) map.data;
+  for (j = 0; j < 100; ++j) {
+    *(data++) = val_l;
+    *(data++) = val_r;
+  }
+  gst_buffer_unmap (buf, &map);
+  GST_BUFFER_TIMESTAMP (buf) = G_GUINT64_CONSTANT (0);
+  return buf;
+}
+
+/* tests */
+
+GST_START_TEST (test_ref_counts)
 {
   GstElement *level;
   GstBuffer *inbuffer, *outbuffer;
   GstBus *bus;
-  GstCaps *caps;
   GstMessage *message;
-  const GstStructure *structure;
-  int i, j;
-  GstMapInfo map;
-  gint16 *data;
-  const GValue *list, *value;
-  GstClockTime endtime;
-  gdouble dB;
 
-  level = setup_level ();
+  level = setup_level (LEVEL_S16_CAPS_STRING);
   g_object_set (level, "message", TRUE, "interval", GST_SECOND / 10, NULL);
-
   fail_unless (gst_element_set_state (level,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
-
-  /* create a fake 0.1 sec buffer with a half-amplitude block signal */
-  inbuffer = gst_buffer_new_and_alloc (400);
-  gst_buffer_map (inbuffer, &map, GST_MAP_WRITE);
-  data = (gint16 *) map.data;
-  for (j = 0; j < 200; ++j) {
-    *data = 16536;
-    ++data;
-  }
-  gst_buffer_unmap (inbuffer, &map);
-  caps = gst_caps_from_string (LEVEL_CAPS_STRING);
-  gst_pad_set_caps (mysrcpad, caps);
-  gst_caps_unref (caps);
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
-
   /* create a bus to get the level message on */
   bus = gst_bus_new ();
   ASSERT_OBJECT_REFCOUNT (bus, "bus", 1);
   gst_element_set_bus (level, bus);
   ASSERT_OBJECT_REFCOUNT (bus, "bus", 2);
 
+  /* create a fake 0.1 sec buffer with a half-amplitude block signal */
+  inbuffer = create_s16_buffer (16536, 16536);
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+
   /* 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 */
@@ -146,15 +180,101 @@ GST_START_TEST (test_int16)
   fail_unless (message != NULL);
   fail_unless (GST_MESSAGE_SRC (message) == GST_OBJECT (level));
   fail_unless (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ELEMENT);
+
+  /* clean up */
+  /* flush current messages,and future state change messages */
+  gst_bus_set_flushing (bus, TRUE);
+
+  /* message has a ref to the element */
+  ASSERT_OBJECT_REFCOUNT (level, "level", 2);
+  gst_message_unref (message);
+  ASSERT_OBJECT_REFCOUNT (level, "level", 1);
+
+  gst_element_set_bus (level, NULL);
+  ASSERT_OBJECT_REFCOUNT (bus, "bus", 1);
+  gst_object_unref (bus);
+  gst_buffer_unref (outbuffer);
+  fail_unless (gst_element_set_state (level,
+          GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null");
+  ASSERT_OBJECT_REFCOUNT (level, "level", 1);
+  cleanup_level (level);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_message_is_valid)
+{
+  GstElement *level;
+  GstBuffer *inbuffer;
+  GstBus *bus;
+  GstMessage *message;
+  const GstStructure *structure;
+  GstClockTime endtime, ts, duration;
+
+  level = setup_level (LEVEL_S16_CAPS_STRING);
+  g_object_set (level, "message", TRUE, "interval", GST_SECOND / 10, NULL);
+  gst_element_set_state (level, GST_STATE_PLAYING);
+  /* create a bus to get the level message on */
+  bus = gst_bus_new ();
+  gst_element_set_bus (level, bus);
+
+  /* create a fake 0.1 sec buffer with a half-amplitude block signal and push */
+  inbuffer = create_s16_buffer (16536, 16536);
+  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+
+  message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, -1);
+  fail_unless (message != NULL);
   structure = gst_message_get_structure (message);
   fail_if (structure == NULL);
-  fail_unless_equals_string ((char *) gst_structure_get_name (structure),
-      "level");
+  fail_unless_equals_string (gst_structure_get_name (structure), "level");
   fail_unless (gst_structure_get_clock_time (structure, "endtime", &endtime));
+  fail_unless (gst_structure_get_clock_time (structure, "timestamp", &ts));
+  fail_unless (gst_structure_get_clock_time (structure, "duration", &duration));
+
+  /* clean up */
+  /* flush current messages,and future state change messages */
+  gst_bus_set_flushing (bus, TRUE);
+  gst_message_unref (message);
+  gst_element_set_bus (level, NULL);
+  gst_object_unref (bus);
+  gst_element_set_state (level, GST_STATE_NULL);
+  cleanup_level (level);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_int16)
+{
+  GstElement *level;
+  GstBuffer *inbuffer, *outbuffer;
+  GstBus *bus;
+  GstMessage *message;
+  const GstStructure *structure;
+  gint i, j;
+  const GValue *list, *value;
+  gdouble dB;
+  const gchar *fields[3] = { "rms", "peak", "decay" };
+
+  level = setup_level (LEVEL_S16_CAPS_STRING);
+  g_object_set (level, "message", TRUE, "interval", GST_SECOND / 10, NULL);
+  gst_element_set_state (level, GST_STATE_PLAYING);
+  /* create a bus to get the level message on */
+  bus = gst_bus_new ();
+  gst_element_set_bus (level, bus);
+
+  /* create a fake 0.1 sec buffer with a half-amplitude block signal */
+  inbuffer = create_s16_buffer (16536, 16536);
+
+  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+  fail_unless_equals_int (g_list_length (buffers), 1);
+  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+  fail_unless (inbuffer == outbuffer);
+
+  message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, -1);
+  structure = gst_message_get_structure (message);
 
   /* block wave of half amplitude has -5.94 dB for rms, peak and decay */
   for (i = 0; i < 2; ++i) {
-    const gchar *fields[3] = { "rms", "peak", "decay" };
     for (j = 0; j < 3; ++j) {
       GValueArray *arr;
 
@@ -163,30 +283,19 @@ GST_START_TEST (test_int16)
       value = g_value_array_get_nth (arr, i);
       dB = g_value_get_double (value);
       GST_DEBUG ("%s is %lf", fields[j], dB);
-      fail_if (dB < -6.0);
+      fail_if (dB < -6.1);
       fail_if (dB > -5.9);
     }
   }
-  fail_unless_equals_int (g_list_length (buffers), 1);
-  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
-  fail_unless (inbuffer == outbuffer);
 
   /* clean up */
   /* flush current messages,and future state change messages */
   gst_bus_set_flushing (bus, TRUE);
-
-  /* message has a ref to the element */
-  ASSERT_OBJECT_REFCOUNT (level, "level", 2);
   gst_message_unref (message);
-  ASSERT_OBJECT_REFCOUNT (level, "level", 1);
-
   gst_element_set_bus (level, NULL);
-  ASSERT_OBJECT_REFCOUNT (bus, "bus", 1);
   gst_object_unref (bus);
   gst_buffer_unref (outbuffer);
-  fail_unless (gst_element_set_state (level,
-          GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null");
-  ASSERT_OBJECT_REFCOUNT (level, "level", 1);
+  gst_element_set_state (level, GST_STATE_NULL);
   cleanup_level (level);
 }
 
@@ -197,65 +306,30 @@ GST_START_TEST (test_int16_panned)
   GstElement *level;
   GstBuffer *inbuffer, *outbuffer;
   GstBus *bus;
-  GstCaps *caps;
   GstMessage *message;
   const GstStructure *structure;
-  int j;
-  gint16 *data;
-  GstMapInfo map;
+  gint j;
   const GValue *list, *value;
-  GstClockTime endtime;
   gdouble dB;
   const gchar *fields[3] = { "rms", "peak", "decay" };
 
-  level = setup_level ();
+  level = setup_level (LEVEL_S16_CAPS_STRING);
   g_object_set (level, "message", TRUE, "interval", GST_SECOND / 10, NULL);
-
-  fail_unless (gst_element_set_state (level,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
-
-  /* create a fake 0.1 sec buffer with a half-amplitude block signal */
-  inbuffer = gst_buffer_new_and_alloc (400);
-  gst_buffer_map (inbuffer, &map, GST_MAP_WRITE);
-  data = (gint16 *) map.data;
-  for (j = 0; j < 100; ++j) {
-    *data = 0;
-    ++data;
-    *data = 16536;
-    ++data;
-  }
-  gst_buffer_unmap (inbuffer, &map);
-  caps = gst_caps_from_string (LEVEL_CAPS_STRING);
-  gst_pad_set_caps (mysrcpad, caps);
-  gst_caps_unref (caps);
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
-
+  gst_element_set_state (level, GST_STATE_PLAYING);
   /* create a bus to get the level message on */
   bus = gst_bus_new ();
-  ASSERT_OBJECT_REFCOUNT (bus, "bus", 1);
   gst_element_set_bus (level, bus);
-  ASSERT_OBJECT_REFCOUNT (bus, "bus", 2);
 
-  /* pushing gives away my reference ... */
+  /* create a fake 0.1 sec buffer with a half-amplitude block signal */
+  inbuffer = create_s16_buffer (0, 16536);
+
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
-  /* ... but it ends up being 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);
 
   message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, -1);
-  ASSERT_OBJECT_REFCOUNT (message, "message", 1);
-
-  fail_unless (message != NULL);
-  fail_unless (GST_MESSAGE_SRC (message) == GST_OBJECT (level));
-  fail_unless (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ELEMENT);
   structure = gst_message_get_structure (message);
-  fail_if (structure == NULL);
-  fail_unless_equals_string ((char *) gst_structure_get_name (structure),
-      "level");
-  fail_unless (gst_structure_get_clock_time (structure, "endtime", &endtime));
 
   /* silence has 0 dB for rms, peak and decay */
   for (j = 0; j < 3; ++j) {
@@ -281,29 +355,76 @@ GST_START_TEST (test_int16_panned)
     value = g_value_array_get_nth (arr, 1);
     dB = g_value_get_double (value);
     GST_DEBUG ("%s[1] is %lf", fields[j], dB);
-    fail_if (dB < -6.0);
+    fail_if (dB < -6.1);
     fail_if (dB > -5.9);
   }
+
+  /* clean up */
+  /* flush current messages,and future state change messages */
+  gst_bus_set_flushing (bus, TRUE);
+  gst_message_unref (message);
+  gst_element_set_bus (level, NULL);
+  gst_object_unref (bus);
+  gst_buffer_unref (outbuffer);
+  gst_element_set_state (level, GST_STATE_NULL);
+  cleanup_level (level);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_float)
+{
+  GstElement *level;
+  GstBuffer *inbuffer, *outbuffer;
+  GstBus *bus;
+  GstMessage *message;
+  const GstStructure *structure;
+  gint i, j;
+  const GValue *list, *value;
+  gdouble dB;
+  const gchar *fields[3] = { "rms", "peak", "decay" };
+
+  level = setup_level (LEVEL_F32_CAPS_STRING);
+  g_object_set (level, "message", TRUE, "interval", GST_SECOND / 10, NULL);
+  gst_element_set_state (level, GST_STATE_PLAYING);
+  /* create a bus to get the level message on */
+  bus = gst_bus_new ();
+  gst_element_set_bus (level, bus);
+
+  /* create a fake 0.1 sec buffer with a half-amplitude block signal */
+  inbuffer = create_f32_buffer (0.5, 0.5);
+
+  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
   fail_unless_equals_int (g_list_length (buffers), 1);
   fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
   fail_unless (inbuffer == outbuffer);
 
+  message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, -1);
+  structure = gst_message_get_structure (message);
+
+  /* block wave of half amplitude has -5.94 dB for rms, peak and decay */
+  for (i = 0; i < 2; ++i) {
+    for (j = 0; j < 3; ++j) {
+      GValueArray *arr;
+
+      list = gst_structure_get_value (structure, fields[j]);
+      arr = g_value_get_boxed (list);
+      value = g_value_array_get_nth (arr, i);
+      dB = g_value_get_double (value);
+      GST_DEBUG ("%s is %lf", fields[j], dB);
+      fail_if (dB < -6.1);
+      fail_if (dB > -5.9);
+    }
+  }
+
   /* clean up */
   /* flush current messages,and future state change messages */
   gst_bus_set_flushing (bus, TRUE);
-
-  /* message has a ref to the element */
-  ASSERT_OBJECT_REFCOUNT (level, "level", 2);
   gst_message_unref (message);
-  ASSERT_OBJECT_REFCOUNT (level, "level", 1);
-
   gst_element_set_bus (level, NULL);
-  ASSERT_OBJECT_REFCOUNT (bus, "bus", 1);
   gst_object_unref (bus);
   gst_buffer_unref (outbuffer);
-  fail_unless (gst_element_set_state (level,
-          GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null");
-  ASSERT_OBJECT_REFCOUNT (level, "level", 1);
+  gst_element_set_state (level, GST_STATE_NULL);
   cleanup_level (level);
 }
 
@@ -315,70 +436,36 @@ GST_START_TEST (test_message_on_eos)
   GstBuffer *inbuffer, *outbuffer;
   GstEvent *event;
   GstBus *bus;
-  GstCaps *caps;
   GstMessage *message;
   const GstStructure *structure;
-  int i, j;
-  GstMapInfo map;
-  gint16 *data;
+  gint i, j;
   const GValue *list, *value;
-  GstClockTime endtime;
   gdouble dB;
 
-  level = setup_level ();
+  level = setup_level (LEVEL_S16_CAPS_STRING);
   g_object_set (level, "message", TRUE, "interval", GST_SECOND / 5, NULL);
-
-  fail_unless (gst_element_set_state (level,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
-
-  /* create a fake 0.1 sec buffer with a half-amplitude block signal */
-  inbuffer = gst_buffer_new_and_alloc (400);
-  gst_buffer_map (inbuffer, &map, GST_MAP_WRITE);
-  data = (gint16 *) map.data;
-  for (j = 0; j < 200; ++j) {
-    *data = 16536;
-    ++data;
-  }
-  gst_buffer_unmap (inbuffer, &map);
-  caps = gst_caps_from_string (LEVEL_CAPS_STRING);
-  gst_pad_set_caps (mysrcpad, caps);
-  gst_caps_unref (caps);
-  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
-
+  gst_element_set_state (level, GST_STATE_PLAYING);
   /* create a bus to get the level message on */
   bus = gst_bus_new ();
-  ASSERT_OBJECT_REFCOUNT (bus, "bus", 1);
   gst_element_set_bus (level, bus);
-  ASSERT_OBJECT_REFCOUNT (bus, "bus", 2);
 
-  /* pushing gives away my reference ... */
+  /* create a fake 0.1 sec buffer with a half-amplitude block signal */
+  inbuffer = create_s16_buffer (16536, 16536);
+
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
-  /* ... but it ends up being 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);
 
   message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, 0);
-  fail_unless (message == NULL);
 
   event = gst_event_new_eos ();
   fail_unless (gst_pad_push_event (mysrcpad, event) == TRUE);
 
   message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, 0);
-  fail_if (message == NULL);
-
-  ASSERT_OBJECT_REFCOUNT (message, "message", 1);
-
   fail_unless (message != NULL);
-  fail_unless (GST_MESSAGE_SRC (message) == GST_OBJECT (level));
-  fail_unless (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ELEMENT);
   structure = gst_message_get_structure (message);
-  fail_if (structure == NULL);
-  fail_unless_equals_string ((char *) gst_structure_get_name (structure),
-      "level");
-  fail_unless (gst_structure_get_clock_time (structure, "endtime", &endtime));
+  fail_unless_equals_string (gst_structure_get_name (structure), "level");
 
   /* block wave of half amplitude has -5.94 dB for rms, peak and decay */
   for (i = 0; i < 2; ++i) {
@@ -391,35 +478,109 @@ GST_START_TEST (test_message_on_eos)
       value = g_value_array_get_nth (arr, i);
       dB = g_value_get_double (value);
       GST_DEBUG ("%s is %lf", fields[j], dB);
-      fail_if (dB < -6.0);
+      fail_if (dB < -6.1);
       fail_if (dB > -5.9);
     }
   }
-  fail_unless_equals_int (g_list_length (buffers), 1);
-  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
-  fail_unless (inbuffer == outbuffer);
 
   /* clean up */
   /* flush current messages,and future state change messages */
   gst_bus_set_flushing (bus, TRUE);
+  gst_message_unref (message);
+  gst_element_set_bus (level, NULL);
+  gst_object_unref (bus);
+  gst_buffer_unref (outbuffer);
+  gst_element_set_state (level, GST_STATE_NULL);
+  cleanup_level (level);
+}
 
-  /* message has a ref to the element */
-  ASSERT_OBJECT_REFCOUNT (level, "level", 2);
+GST_END_TEST;
+
+GST_START_TEST (test_message_count)
+{
+  GstElement *level;
+  GstBuffer *inbuffer, *outbuffer;
+  GstBus *bus;
+  GstMessage *message;
+
+  level = setup_level (LEVEL_S16_CAPS_STRING);
+  g_object_set (level, "message", TRUE, "interval", GST_SECOND / 20, NULL);
+  gst_element_set_state (level, GST_STATE_PLAYING);
+  /* create a bus to get the level message on */
+  bus = gst_bus_new ();
+  gst_element_set_bus (level, bus);
+
+  /* create a fake 0.1 sec buffer with a half-amplitude block signal */
+  inbuffer = create_s16_buffer (16536, 16536);
+
+  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+  fail_unless_equals_int (g_list_length (buffers), 1);
+  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+  fail_unless (inbuffer == outbuffer);
+
+  /* we should get two messages per buffer */
+  message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, -1);
+  fail_unless (message != NULL);
+  gst_message_unref (message);
+  message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, -1);
+  fail_unless (message != NULL);
   gst_message_unref (message);
-  ASSERT_OBJECT_REFCOUNT (level, "level", 1);
 
   gst_element_set_bus (level, NULL);
-  ASSERT_OBJECT_REFCOUNT (bus, "bus", 1);
   gst_object_unref (bus);
   gst_buffer_unref (outbuffer);
-  fail_unless (gst_element_set_state (level,
-          GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null");
-  ASSERT_OBJECT_REFCOUNT (level, "level", 1);
+  gst_element_set_state (level, GST_STATE_NULL);
   cleanup_level (level);
 }
 
 GST_END_TEST;
 
+GST_START_TEST (test_message_timestamps)
+{
+  GstElement *level;
+  GstBuffer *inbuffer, *outbuffer;
+  GstBus *bus;
+  GstMessage *message;
+  const GstStructure *structure;
+  GstClockTime ts1, dur1, ts2;
+
+  level = setup_level (LEVEL_S16_CAPS_STRING);
+  g_object_set (level, "message", TRUE, "interval", GST_SECOND / 20, NULL);
+  gst_element_set_state (level, GST_STATE_PLAYING);
+  /* create a bus to get the level message on */
+  bus = gst_bus_new ();
+  gst_element_set_bus (level, bus);
+
+  /* create a fake 0.1 sec buffer with a half-amplitude block signal */
+  inbuffer = create_s16_buffer (16536, 16536);
+
+  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+  fail_unless_equals_int (g_list_length (buffers), 1);
+  fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+  fail_unless (inbuffer == outbuffer);
+
+  /* check that timestamp + duration is contigous to the next timestamp */
+  message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, -1);
+  structure = gst_message_get_structure (message);
+  gst_structure_get_clock_time (structure, "timestamp", &ts1);
+  gst_structure_get_clock_time (structure, "duration", &dur1);
+  gst_message_unref (message);
+
+  message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, -1);
+  structure = gst_message_get_structure (message);
+  gst_structure_get_clock_time (structure, "timestamp", &ts2);
+  gst_message_unref (message);
+
+  fail_unless_equals_int64 (ts1 + dur1, ts2);
+
+  gst_element_set_bus (level, NULL);
+  gst_object_unref (bus);
+  gst_buffer_unref (outbuffer);
+  gst_element_set_state (level, GST_STATE_NULL);
+  cleanup_level (level);
+}
+
+GST_END_TEST;
 
 static Suite *
 level_suite (void)
@@ -428,26 +589,16 @@ level_suite (void)
   TCase *tc_chain = tcase_create ("general");
 
   suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_ref_counts);
+  tcase_add_test (tc_chain, test_message_is_valid);
   tcase_add_test (tc_chain, test_int16);
   tcase_add_test (tc_chain, test_int16_panned);
+  tcase_add_test (tc_chain, test_float);
   tcase_add_test (tc_chain, test_message_on_eos);
+  tcase_add_test (tc_chain, test_message_count);
+  tcase_add_test (tc_chain, test_message_timestamps);
 
   return s;
 }
 
-int
-main (int argc, char **argv)
-{
-  int nf;
-
-  Suite *s = level_suite ();
-  SRunner *sr = srunner_create (s);
-
-  gst_check_init (&argc, &argv);
-
-  srunner_run_all (sr, CK_NORMAL);
-  nf = srunner_ntests_failed (sr);
-  srunner_free (sr);
-
-  return nf;
-}
+GST_CHECK_MAIN (level);
diff --git a/tests/check/elements/matroskamux.c b/tests/check/elements/matroskamux.c
index 26ed7f0f1..1c18e75ec 100644
--- a/tests/check/elements/matroskamux.c
+++ b/tests/check/elements/matroskamux.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -54,8 +54,7 @@ static GstStaticPadTemplate srcac3template = GST_STATIC_PAD_TEMPLATE ("src",
 
 
 static GstPad *
-setup_src_pad (GstElement * element,
-    GstStaticPadTemplate * template, GstCaps * caps)
+setup_src_pad (GstElement * element, GstStaticPadTemplate * template)
 {
   GstPad *srcpad, *sinkpad;
 
@@ -72,8 +71,6 @@ setup_src_pad (GstElement * element,
       GST_ELEMENT_NAME (element));
   /* references are owned by: 1) us, 2) matroskamux, 3) collect pads */
   ASSERT_OBJECT_REFCOUNT (sinkpad, "sinkpad", 3);
-  if (caps)
-    fail_unless (gst_pad_set_caps (srcpad, caps));
   fail_unless (gst_pad_link (srcpad, sinkpad) == GST_PAD_LINK_OK,
       "Could not link source and %s sink pads", GST_ELEMENT_NAME (element));
   gst_object_unref (sinkpad);   /* because we got it higher up */
@@ -110,8 +107,7 @@ teardown_src_pad (GstElement * element)
 }
 
 static GstPad *
-setup_sink_pad (GstElement * element, GstStaticPadTemplate * template,
-    GstCaps * caps)
+setup_sink_pad (GstElement * element, GstStaticPadTemplate * template)
 {
   GstPad *srcpad, *sinkpad;
 
@@ -125,8 +121,6 @@ setup_sink_pad (GstElement * element, GstStaticPadTemplate * template,
   srcpad = gst_element_get_static_pad (element, "src");
   fail_if (srcpad == NULL, "Could not get source pad from %s",
       GST_ELEMENT_NAME (element));
-  if (caps)
-    fail_unless (gst_pad_set_caps (sinkpad, caps));
   gst_pad_set_chain_function (sinkpad, gst_check_chain_func);
 
   fail_unless (gst_pad_link (srcpad, sinkpad) == GST_PAD_LINK_OK,
@@ -163,22 +157,17 @@ static GstElement *
 setup_matroskamux (GstStaticPadTemplate * srctemplate)
 {
   GstElement *matroskamux;
-  GstSegment segment;
 
   GST_DEBUG ("setup_matroskamux");
   matroskamux = gst_check_setup_element ("matroskamux");
   g_object_set (matroskamux, "version", 1, NULL);
-  mysrcpad = setup_src_pad (matroskamux, srctemplate, NULL);
-  mysinkpad = setup_sink_pad (matroskamux, &sinktemplate, NULL);
+  mysrcpad = setup_src_pad (matroskamux, srctemplate);
+  mysinkpad = setup_sink_pad (matroskamux, &sinktemplate);
 
   fail_unless (gst_element_set_state (matroskamux,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
 
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  fail_unless (gst_pad_push_event (mysrcpad,
-          gst_event_new_segment (&segment)), "Segment event rejected");
-
   return matroskamux;
 }
 
@@ -208,6 +197,7 @@ GST_START_TEST (test_ebml_header)
   int num_buffers;
   int i;
   gint available;
+  GstCaps *caps;
   guint8 data[] =
       { 0x1a, 0x45, 0xdf, 0xa3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
     0x42, 0x82, 0x89, 0x6d, 0x61, 0x74, 0x72, 0x6f, 0x73, 0x6b, 0x61, 0x00,
@@ -217,6 +207,10 @@ GST_START_TEST (test_ebml_header)
 
   matroskamux = setup_matroskamux (&srcac3template);
 
+  caps = gst_caps_from_string (srcac3template.static_caps.string);
+  gst_check_setup_events (mysrcpad, matroskamux, caps, GST_FORMAT_TIME);
+  gst_caps_unref (caps);
+
   inbuffer = gst_buffer_new_allocate (NULL, 1, 0);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
@@ -267,7 +261,7 @@ GST_START_TEST (test_vorbis_header)
   matroskamux = setup_matroskamux (&srcvorbistemplate);
 
   caps = gst_caps_from_string (VORBIS_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, matroskamux, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
   inbuffer = gst_buffer_new_allocate (NULL, 1, 0);
@@ -326,7 +320,7 @@ GST_START_TEST (test_block_group)
   matroskamux = setup_matroskamux (&srcac3template);
 
   caps = gst_caps_from_string (AC3_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, matroskamux, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
   /* Generate the header */
@@ -397,9 +391,14 @@ GST_START_TEST (test_reset)
   GstBuffer *outbuffer;
   int num_buffers;
   int i;
+  GstCaps *caps;
 
   matroskamux = setup_matroskamux (&srcac3template);
 
+  caps = gst_caps_from_string (srcac3template.static_caps.string);
+  gst_check_setup_events (mysrcpad, matroskamux, caps, GST_FORMAT_TIME);
+  gst_caps_unref (caps);
+
   inbuffer = gst_buffer_new_allocate (NULL, 1, 0);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
@@ -447,7 +446,7 @@ GST_START_TEST (test_link_webmmux_webm_sink)
   GstElement *mux;
 
   mux = gst_check_setup_element ("webmmux");
-  mysinkpad = setup_sink_pad (mux, &webm_sinktemplate, NULL);
+  mysinkpad = setup_sink_pad (mux, &webm_sinktemplate);
   fail_unless (mysinkpad != NULL);
 
   fail_unless (gst_element_set_state (mux,
diff --git a/tests/check/elements/matroskaparse.c b/tests/check/elements/matroskaparse.c
index e1d5e411a..8c2482c4f 100644
--- a/tests/check/elements/matroskaparse.c
+++ b/tests/check/elements/matroskaparse.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/elements/mpegaudioparse.c b/tests/check/elements/mpegaudioparse.c
index 2bb26991e..dfe4735c1 100644
--- a/tests/check/elements/mpegaudioparse.c
+++ b/tests/check/elements/mpegaudioparse.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/elements/mulawdec.c b/tests/check/elements/mulawdec.c
new file mode 100644
index 000000000..94c6339a5
--- /dev/null
+++ b/tests/check/elements/mulawdec.c
@@ -0,0 +1,125 @@
+/* GStreamer MulawDec unit tests
+ *
+ * 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/check/gstcheck.h>
+#include <string.h>
+
+static GstPad *mysrcpad, *mysinkpad;
+static GstElement *mulawdec = NULL;
+
+static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-raw,"
+        "format = (string) S16LE, "
+        "rate = (int) 8000, "
+        "channels = (int) 1, " "layout = (string)interleaved")
+    );
+
+static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-mulaw," "rate = (int) 8000," "channels = (int) 1")
+    );
+
+static void
+mulawdec_setup (void)
+{
+  GstCaps *src_caps;
+
+  src_caps =
+      gst_caps_from_string ("audio/x-mulaw," "rate = (int) 8000,"
+      "channels = (int) 1");
+
+  GST_DEBUG ("%s", __FUNCTION__);
+
+  mulawdec = gst_check_setup_element ("mulawdec");
+
+  mysrcpad = gst_check_setup_src_pad (mulawdec, &srctemplate);
+  mysinkpad = gst_check_setup_sink_pad (mulawdec, &sinktemplate);
+
+  gst_pad_set_active (mysrcpad, TRUE);
+  gst_pad_set_active (mysinkpad, TRUE);
+
+  gst_check_setup_events (mysrcpad, mulawdec, src_caps, GST_FORMAT_TIME);
+
+  gst_caps_unref (src_caps);
+}
+
+static void
+buffer_unref (void *buffer, void *user_data)
+{
+  gst_buffer_unref (GST_BUFFER (buffer));
+}
+
+static void
+mulawdec_teardown (void)
+{
+  /* free decoded buffers */
+  g_list_foreach (buffers, buffer_unref, NULL);
+  g_list_free (buffers);
+  buffers = NULL;
+
+  gst_pad_set_active (mysrcpad, FALSE);
+  gst_pad_set_active (mysinkpad, FALSE);
+  gst_check_teardown_src_pad (mulawdec);
+  gst_check_teardown_sink_pad (mulawdec);
+  gst_check_teardown_element (mulawdec);
+  mulawdec = NULL;
+}
+
+GST_START_TEST (test_one_buffer)
+{
+  GstBuffer *buffer;
+  gint buf_size = 4096;
+  guint8 *dp;
+
+  fail_unless (gst_element_set_state (mulawdec, GST_STATE_PLAYING) ==
+      GST_STATE_CHANGE_SUCCESS, "could not change state to playing");
+
+  buffer = gst_buffer_new ();
+  dp = g_malloc0 (buf_size);
+  gst_buffer_append_memory (buffer,
+      gst_memory_new_wrapped (0, dp, buf_size, 0, buf_size, dp, g_free));
+  ASSERT_BUFFER_REFCOUNT (buffer, "buffer", 1);
+
+  fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+
+  fail_unless (g_list_length (buffers) == 1);
+  fail_unless (gst_buffer_get_size (GST_BUFFER (g_list_first (buffers)->data)));
+}
+
+GST_END_TEST;
+
+static Suite *
+mulawdec_suite (void)
+{
+  Suite *s = suite_create ("mulawdec");
+  TCase *tc_chain = tcase_create ("mulawdec");
+
+  tcase_add_checked_fixture (tc_chain, mulawdec_setup, mulawdec_teardown);
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_one_buffer);
+  return s;
+}
+
+GST_CHECK_MAIN (mulawdec)
diff --git a/tests/check/elements/mulawenc.c b/tests/check/elements/mulawenc.c
new file mode 100644
index 000000000..372218647
--- /dev/null
+++ b/tests/check/elements/mulawenc.c
@@ -0,0 +1,175 @@
+/* GStreamer MulawEnc unit tests
+ *
+ * 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/check/gstcheck.h>
+#include <string.h>
+
+static GstPad *mysrcpad, *mysinkpad;
+static GstElement *mulawenc = NULL;
+
+static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-mulaw," "rate = (int) 8000," "channels = (int) 1")
+    );
+
+static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-raw,"
+        "format = (string) S16LE, "
+        "rate = (int) 8000, "
+        "channels = (int) 1, " "layout = (string)interleaved")
+    );
+
+static void
+mulawenc_setup (void)
+{
+  GstCaps *src_caps;
+
+  src_caps = gst_caps_from_string ("audio/x-raw,"
+      "format = (string) S16LE, "
+      "rate = (int) 8000, "
+      "channels = (int) 1, " "layout = (string)interleaved");
+
+  GST_DEBUG ("%s", __FUNCTION__);
+
+  mulawenc = gst_check_setup_element ("mulawenc");
+
+  mysrcpad = gst_check_setup_src_pad (mulawenc, &srctemplate);
+  mysinkpad = gst_check_setup_sink_pad (mulawenc, &sinktemplate);
+
+  gst_pad_set_active (mysrcpad, TRUE);
+  gst_pad_set_active (mysinkpad, TRUE);
+
+  gst_check_setup_events (mysrcpad, mulawenc, src_caps, GST_FORMAT_TIME);
+  gst_caps_unref (src_caps);
+}
+
+static void
+buffer_unref (void *buffer, void *user_data)
+{
+  gst_buffer_unref (GST_BUFFER (buffer));
+}
+
+static void
+mulawenc_teardown (void)
+{
+  /* free encoded buffers */
+  g_list_foreach (buffers, buffer_unref, NULL);
+  g_list_free (buffers);
+  buffers = NULL;
+
+  gst_pad_set_active (mysrcpad, FALSE);
+  gst_pad_set_active (mysinkpad, FALSE);
+  gst_check_teardown_src_pad (mulawenc);
+  gst_check_teardown_sink_pad (mulawenc);
+  gst_check_teardown_element (mulawenc);
+  mulawenc = NULL;
+}
+
+static gboolean
+check_for_maximum_bitrate (GstPad * pad, GstEvent ** eventp, gpointer user_data)
+{
+  gboolean *found_maximum_bitrate = (gboolean *) user_data;
+  GstEvent *event = *eventp;
+
+  if (event->type == GST_EVENT_TAG) {
+    GstTagList *taglist = NULL;
+    guint value = 0;
+    gst_event_parse_tag (event, &taglist);
+
+    fail_unless (taglist != NULL);
+
+    fail_unless (gst_tag_list_get_uint (taglist, GST_TAG_MAXIMUM_BITRATE,
+            &value));
+
+    /* bitrate needs to be exactly sample rate * channels * 8 */
+    fail_unless (value == 8000 * 1 * 8);
+
+    *found_maximum_bitrate = TRUE;
+  }
+
+  return TRUE;
+}
+
+GST_START_TEST (test_one_buffer)
+{
+  GstBuffer *buffer;
+  gint buf_size = 4096;
+  guint8 *dp;
+
+  fail_unless (gst_element_set_state (mulawenc, GST_STATE_PLAYING) ==
+      GST_STATE_CHANGE_SUCCESS, "could not change state to playing");
+
+  buffer = gst_buffer_new ();
+  dp = g_malloc0 (buf_size);
+  gst_buffer_append_memory (buffer,
+      gst_memory_new_wrapped (0, dp, buf_size, 0, buf_size, dp, g_free));
+  ASSERT_BUFFER_REFCOUNT (buffer, "buffer", 1);
+
+  fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+
+  fail_unless (g_list_length (buffers) == 1);
+  fail_unless (gst_buffer_get_size (GST_BUFFER (g_list_first (buffers)->data)));
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_tags)
+{
+  GstBuffer *buffer;
+  gint buf_size = 4096;
+  guint8 *dp;
+  gboolean found_maximum_bitrate = FALSE;
+
+  fail_unless (gst_element_set_state (mulawenc, GST_STATE_PLAYING) ==
+      GST_STATE_CHANGE_SUCCESS, "could not change state to playing");
+
+  buffer = gst_buffer_new ();
+  dp = g_malloc0 (buf_size);
+  gst_buffer_append_memory (buffer,
+      gst_memory_new_wrapped (0, dp, buf_size, 0, buf_size, dp, g_free));
+  ASSERT_BUFFER_REFCOUNT (buffer, "buffer", 1);
+
+  fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+  gst_pad_sticky_events_foreach (mysinkpad, check_for_maximum_bitrate,
+      &found_maximum_bitrate);
+  fail_unless (found_maximum_bitrate);
+}
+
+GST_END_TEST;
+
+static Suite *
+mulawenc_suite (void)
+{
+  Suite *s = suite_create ("mulawenc");
+  TCase *tc_chain = tcase_create ("mulawenc");
+
+  tcase_add_checked_fixture (tc_chain, mulawenc_setup, mulawenc_teardown);
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_one_buffer);
+  tcase_add_test (tc_chain, test_tags);
+  return s;
+}
+
+GST_CHECK_MAIN (mulawenc)
diff --git a/tests/check/elements/multifile.c b/tests/check/elements/multifile.c
index 9679f93af..20770bb8f 100644
--- a/tests/check/elements/multifile.c
+++ b/tests/check/elements/multifile.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -144,6 +144,7 @@ GST_START_TEST (test_multifilesink_key_unit)
   gchar *mfs_pattern;
   GstBuffer *buf;
   GstPad *sink;
+  GstSegment segment;
 
   tmpdir = g_get_tmp_dir ();
   template = g_build_filename (tmpdir, "multifile-test-XXXXXX", NULL);
@@ -158,6 +159,11 @@ GST_START_TEST (test_multifilesink_key_unit)
           GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE);
 
   sink = gst_element_get_static_pad (mfs, "sink");
+
+  gst_pad_send_event (sink, gst_event_new_stream_start ("test"));
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  gst_pad_send_event (sink, gst_event_new_segment (&segment));
+
   buf = gst_buffer_new_and_alloc (4);
 
   gst_buffer_fill (buf, 0, "foo", 4);
@@ -250,8 +256,57 @@ GST_START_TEST (test_multifilesrc)
 
 GST_END_TEST;
 
+static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS_ANY);
+
+/* make sure stop_index is honoured even if the next target file exists */
+GST_START_TEST (test_multifilesrc_stop_index)
+{
+  GstElement *src;
+  GstEvent *event;
+  GstPad *sinkpad;
+  gchar *fn;
+
+  src = gst_check_setup_element ("multifilesrc");
+  fail_unless (src != NULL);
+
+  fn = g_build_filename (GST_TEST_FILES_PATH, "image.jpg", NULL);
+  g_object_set (src, "location", fn, NULL);
+  g_free (fn);
+
+  g_object_set (src, "stop-index", 5, NULL);
+
+  sinkpad = gst_check_setup_sink_pad_by_name (src, &sinktemplate, "src");
+  fail_unless (sinkpad != NULL);
+  gst_pad_set_active (sinkpad, TRUE);
+
+  gst_element_set_state (src, GST_STATE_PLAYING);
+
+  gst_element_get_state (src, NULL, NULL, -1);
+
+  /* busy-loop for EOS */
+  do {
+    g_usleep (G_USEC_PER_SEC / 10);
+    event = gst_pad_get_sticky_event (sinkpad, GST_EVENT_EOS, 0);
+  } while (event == NULL);
+  gst_event_unref (event);
+
+  /* Range appears to be [ start, stop ] */
+  fail_unless_equals_int (g_list_length (buffers), 5 + 1);
+
+  gst_element_set_state (src, GST_STATE_NULL);
+
+  gst_check_teardown_pad_by_name (src, "src");
+  gst_check_teardown_element (src);
+}
+
+GST_END_TEST;
+
+
 static Suite *
-libvisual_suite (void)
+multifile_suite (void)
 {
   Suite *s = suite_create ("multifile");
   TCase *tc_chain = tcase_create ("general");
@@ -262,8 +317,9 @@ libvisual_suite (void)
   tcase_add_test (tc_chain, test_multifilesink_max_files);
   tcase_add_test (tc_chain, test_multifilesink_key_unit);
   tcase_add_test (tc_chain, test_multifilesrc);
+  tcase_add_test (tc_chain, test_multifilesrc_stop_index);
 
   return s;
 }
 
-GST_CHECK_MAIN (libvisual);
+GST_CHECK_MAIN (multifile);
diff --git a/tests/check/elements/parser.c b/tests/check/elements/parser.c
index 8b2ab42d4..52ffed8aa 100644
--- a/tests/check/elements/parser.c
+++ b/tests/check/elements/parser.c
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -147,16 +147,18 @@ setup_element (const gchar * factory, GstStaticPadTemplate * sink_template,
 {
   GstElement *element;
   GstBus *bus;
+  gchar *caps_str = NULL;
 
   element = gst_check_setup_element (factory);
   srcpad = gst_check_setup_src_pad (element, src_template);
+  if (sink_caps) {
+    caps_str = gst_caps_to_string (sink_caps);
+    sink_template->static_caps.string = caps_str;
+  }
   sinkpad = gst_check_setup_sink_pad (element, sink_template);
   gst_pad_set_active (srcpad, TRUE);
+  gst_check_setup_events (srcpad, element, src_caps, GST_FORMAT_BYTES);
   gst_pad_set_active (sinkpad, TRUE);
-  if (src_caps)
-    fail_unless (gst_pad_set_caps (srcpad, src_caps));
-  if (sink_caps)
-    fail_unless (gst_pad_set_caps (sinkpad, sink_caps));
 
   bus = gst_bus_new ();
   gst_element_set_bus (element, bus);
@@ -167,6 +169,7 @@ setup_element (const gchar * factory, GstStaticPadTemplate * sink_template,
 
   ts_counter = offset_counter = buffer_counter = 0;
   buffers = NULL;
+  g_free (caps_str);
   return element;
 }
 
diff --git a/tests/check/elements/parser.h b/tests/check/elements/parser.h
index 470f59421..c4867cd10 100644
--- a/tests/check/elements/parser.h
+++ b/tests/check/elements/parser.h
@@ -19,8 +19,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/elements/qtmux.c b/tests/check/elements/qtmux.c
index c32a4c5c6..fe2155651 100644
--- a/tests/check/elements/qtmux.c
+++ b/tests/check/elements/qtmux.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -103,7 +103,7 @@ GST_STATIC_PAD_TEMPLATE ("src",
 /* setup and teardown needs some special handling for muxer */
 static GstPad *
 setup_src_pad (GstElement * element,
-    GstStaticPadTemplate * template, GstCaps * caps, const gchar * sinkname)
+    GstStaticPadTemplate * template, const gchar * sinkname)
 {
   GstPad *srcpad, *sinkpad;
 
@@ -119,8 +119,6 @@ setup_src_pad (GstElement * element,
       GST_ELEMENT_NAME (element));
   /* references are owned by: 1) us, 2) qtmux, 3) collect pads */
   ASSERT_OBJECT_REFCOUNT (sinkpad, "sinkpad", 3);
-  if (caps)
-    fail_unless (gst_pad_set_caps (srcpad, caps));
   fail_unless (gst_pad_link (srcpad, sinkpad) == GST_PAD_LINK_OK,
       "Could not link source and %s sink pads", GST_ELEMENT_NAME (element));
   gst_object_unref (sinkpad);   /* because we got it higher up */
@@ -162,7 +160,7 @@ setup_qtmux (GstStaticPadTemplate * srctemplate, const gchar * sinkname)
 
   GST_DEBUG ("setup_qtmux");
   qtmux = gst_check_setup_element ("qtmux");
-  mysrcpad = setup_src_pad (qtmux, srctemplate, NULL, sinkname);
+  mysrcpad = setup_src_pad (qtmux, srctemplate, sinkname);
   mysinkpad = gst_check_setup_sink_pad (qtmux, &sinktemplate);
   gst_pad_set_active (mysrcpad, TRUE);
   gst_pad_set_active (mysinkpad, TRUE);
@@ -203,15 +201,18 @@ check_qtmux_pad (GstStaticPadTemplate * srctemplate, const gchar * sinkname,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
 
+  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
+
+  caps = gst_pad_get_pad_template_caps (mysrcpad);
+  gst_pad_set_caps (mysrcpad, caps);
+  gst_caps_unref (caps);
+
   /* ensure segment (format) properly setup */
   gst_segment_init (&segment, GST_FORMAT_TIME);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
 
   inbuffer = gst_buffer_new_and_alloc (1);
   gst_buffer_memset (inbuffer, 0, 0, 1);
-  caps = gst_pad_get_pad_template_caps (mysrcpad);
-  gst_pad_set_caps (mysrcpad, caps);
-  gst_caps_unref (caps);
   GST_BUFFER_TIMESTAMP (inbuffer) = 0;
   GST_BUFFER_DURATION (inbuffer) = 40 * GST_MSECOND;
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
@@ -292,15 +293,18 @@ check_qtmux_pad_fragmented (GstStaticPadTemplate * srctemplate,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
 
+  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
+
+  caps = gst_pad_get_pad_template_caps (mysrcpad);
+  gst_pad_set_caps (mysrcpad, caps);
+  gst_caps_unref (caps);
+
   /* ensure segment (format) properly setup */
   gst_segment_init (&segment, GST_FORMAT_TIME);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
 
   inbuffer = gst_buffer_new_and_alloc (1);
   gst_buffer_memset (inbuffer, 0, 0, 1);
-  caps = gst_pad_get_pad_template_caps (mysrcpad);
-  gst_pad_set_caps (mysrcpad, caps);
-  gst_caps_unref (caps);
   GST_BUFFER_TIMESTAMP (inbuffer) = 0;
   GST_BUFFER_DURATION (inbuffer) = 40 * GST_MSECOND;
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
@@ -522,6 +526,12 @@ GST_START_TEST (test_reuse)
   gst_pad_set_active (mysrcpad, TRUE);
   gst_pad_set_active (mysinkpad, TRUE);
 
+  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
+
+  caps = gst_pad_get_pad_template_caps (mysrcpad);
+  gst_pad_set_caps (mysrcpad, caps);
+  gst_caps_unref (caps);
+
   /* ensure segment (format) properly setup */
   gst_segment_init (&segment, GST_FORMAT_TIME);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
@@ -529,9 +539,6 @@ GST_START_TEST (test_reuse)
   inbuffer = gst_buffer_new_and_alloc (1);
   fail_unless (inbuffer != NULL);
   gst_buffer_memset (inbuffer, 0, 0, 1);
-  caps = gst_pad_get_pad_template_caps (mysrcpad);
-  gst_pad_set_caps (mysrcpad, caps);
-  gst_caps_unref (caps);
   GST_BUFFER_TIMESTAMP (inbuffer) = 0;
   GST_BUFFER_DURATION (inbuffer) = 40 * GST_MSECOND;
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
@@ -803,10 +810,11 @@ test_average_bitrate_custom (const gchar * elementname,
   filesink = gst_element_factory_make ("filesink", NULL);
   g_object_set (filesink, "location", location, NULL);
   gst_element_link (qtmux, filesink);
-  mysrcpad = setup_src_pad (qtmux, tmpl, NULL, sinkpadname);
+  mysrcpad = setup_src_pad (qtmux, tmpl, sinkpadname);
   fail_unless (mysrcpad != NULL);
   gst_pad_set_active (mysrcpad, TRUE);
 
+
   fail_unless (gst_element_set_state (filesink,
           GST_STATE_PLAYING) != GST_STATE_CHANGE_FAILURE,
       "could not set filesink to playing");
@@ -814,6 +822,12 @@ test_average_bitrate_custom (const gchar * elementname,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
 
+  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
+
+  caps = gst_pad_get_pad_template_caps (mysrcpad);
+  gst_pad_set_caps (mysrcpad, caps);
+  gst_caps_unref (caps);
+
   /* ensure segment (format) properly setup */
   gst_segment_init (&segment, GST_FORMAT_TIME);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
@@ -821,9 +835,6 @@ test_average_bitrate_custom (const gchar * elementname,
   for (i = 0; i < 3; i++) {
     inbuffer = gst_buffer_new_and_alloc (bytes[i]);
     gst_buffer_memset (inbuffer, 0, 0, bytes[i]);
-    caps = gst_pad_get_pad_template_caps (mysrcpad);
-    gst_pad_set_caps (mysrcpad, caps);
-    gst_caps_unref (caps);
     GST_BUFFER_TIMESTAMP (inbuffer) = total_duration;
     GST_BUFFER_DURATION (inbuffer) = (GstClockTime) durations[i];
     ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
diff --git a/tests/check/elements/rganalysis.c b/tests/check/elements/rganalysis.c
index 5f19caf14..ba2669ac1 100644
--- a/tests/check/elements/rganalysis.c
+++ b/tests/check/elements/rganalysis.c
@@ -226,12 +226,40 @@ send_flush_events (GstElement * element)
   gboolean res;
   GstPad *pad;
 
-  pad = gst_element_get_static_pad (element, "sink");
-  res = gst_pad_send_event (pad, gst_event_new_flush_start ());
+  pad = mysrcpad;
+  res = gst_pad_push_event (pad, gst_event_new_flush_start ());
   fail_unless (res, "flush-start even not handledt");
-  res = gst_pad_send_event (pad, gst_event_new_flush_stop (TRUE));
+  res = gst_pad_push_event (pad, gst_event_new_flush_stop (TRUE));
   fail_unless (res, "flush-stop event not handled");
-  gst_object_unref (pad);
+}
+
+static void
+send_stream_start_event (GstElement * element)
+{
+  gboolean res;
+  GstPad *pad;
+
+  pad = mysrcpad;
+  res = gst_pad_push_event (pad, gst_event_new_stream_start ("test"));
+  fail_unless (res, "STREAM_START event not handled");
+}
+
+static void
+send_caps_event (const gchar * format, gint sample_rate, gint channels)
+{
+  GstCaps *caps;
+
+  caps = gst_caps_new_simple ("audio/x-raw",
+      "format", G_TYPE_STRING, format,
+      "rate", G_TYPE_INT, sample_rate, "channels", G_TYPE_INT, channels,
+      "layout", G_TYPE_STRING, "interleaved", NULL);
+  if (channels == 2) {
+    gst_caps_set_simple (caps,
+        "channel-mask", GST_TYPE_BITMASK,
+        G_GUINT64_CONSTANT (0x0000000000000003), NULL);
+  }
+  gst_pad_set_caps (mysrcpad, caps);
+  gst_caps_unref (caps);
 }
 
 static void
@@ -241,21 +269,20 @@ send_segment_event (GstElement * element)
   gboolean res;
   GstPad *pad;
 
-  pad = gst_element_get_static_pad (element, "sink");
+  pad = mysrcpad;
   gst_segment_init (&segment, GST_FORMAT_TIME);
-  res = gst_pad_send_event (pad, gst_event_new_segment (&segment));
+  res = gst_pad_push_event (pad, gst_event_new_segment (&segment));
   fail_unless (res, "SEGMENT event not handled");
-  gst_object_unref (pad);
 }
 
 static void
 send_eos_event (GstElement * element)
 {
   GstBus *bus = gst_element_get_bus (element);
-  GstPad *pad = gst_element_get_static_pad (element, "sink");
+  GstPad *pad = mysrcpad;
   gboolean res;
 
-  res = gst_pad_send_event (pad, gst_event_new_eos ());
+  res = gst_pad_push_event (pad, gst_event_new_eos ());
   fail_unless (res, "EOS event not handled");
 
   /* There is no sink element, so _we_ post the EOS message on the bus here.  Of
@@ -265,19 +292,16 @@ send_eos_event (GstElement * element)
   fail_unless (gst_bus_post (bus, gst_message_new_eos (NULL)));
 
   gst_object_unref (bus);
-  gst_object_unref (pad);
 }
 
 static void
 send_tag_event (GstElement * element, GstTagList * tag_list)
 {
-  GstPad *pad = gst_element_get_static_pad (element, "sink");
+  GstPad *pad = mysrcpad;
   GstEvent *event = gst_event_new_tag (tag_list);
 
-  fail_unless (gst_pad_send_event (pad, event),
+  fail_unless (gst_pad_push_event (pad, event),
       "Cannot send TAG event: Not handled.");
-
-  gst_object_unref (pad);
 }
 
 static void
@@ -407,7 +431,6 @@ test_buffer_const_float_mono (gint sample_rate, gsize n_frames, gfloat value)
   GstBuffer *buf = gst_buffer_new_and_alloc (n_frames * sizeof (gfloat));
   GstMapInfo map;
   gfloat *data;
-  GstCaps *caps;
   gint i;
 
   gst_buffer_map (buf, &map, GST_MAP_WRITE);
@@ -416,13 +439,6 @@ test_buffer_const_float_mono (gint sample_rate, gsize n_frames, gfloat value)
     *data++ = value;
   gst_buffer_unmap (buf, &map);
 
-  caps = gst_caps_new_simple ("audio/x-raw",
-      "format", G_TYPE_STRING, GST_AUDIO_NE (F32),
-      "rate", G_TYPE_INT, sample_rate, "channels", G_TYPE_INT, 1,
-      "layout", G_TYPE_STRING, "interleaved", NULL);
-  gst_pad_set_caps (mysrcpad, caps);
-  gst_caps_unref (caps);
-
   ASSERT_BUFFER_REFCOUNT (buf, "buf", 1);
 
   return buf;
@@ -435,7 +451,6 @@ test_buffer_const_float_stereo (gint sample_rate, gsize n_frames,
   GstBuffer *buf = gst_buffer_new_and_alloc (n_frames * sizeof (gfloat) * 2);
   GstMapInfo map;
   gfloat *data;
-  GstCaps *caps;
   gint i;
 
   gst_buffer_map (buf, &map, GST_MAP_WRITE);
@@ -446,15 +461,6 @@ test_buffer_const_float_stereo (gint sample_rate, gsize n_frames,
   }
   gst_buffer_unmap (buf, &map);
 
-  caps = gst_caps_new_simple ("audio/x-raw",
-      "format", G_TYPE_STRING, GST_AUDIO_NE (F32),
-      "layout", G_TYPE_STRING, "interleaved",
-      "rate", G_TYPE_INT, sample_rate,
-      "channels", G_TYPE_INT, 2,
-      "channel-mask", GST_TYPE_BITMASK, (gint64) 0x3, NULL);
-  gst_pad_set_caps (mysrcpad, caps);
-  gst_caps_unref (caps);
-
   ASSERT_BUFFER_REFCOUNT (buf, "buf", 1);
 
   return buf;
@@ -467,7 +473,6 @@ test_buffer_const_int16_mono (gint sample_rate, gint depth, gsize n_frames,
   GstBuffer *buf = gst_buffer_new_and_alloc (n_frames * sizeof (gint16));
   gint16 *data;
   GstMapInfo map;
-  GstCaps *caps;
   gint i;
 
   gst_buffer_map (buf, &map, GST_MAP_WRITE);
@@ -476,13 +481,6 @@ test_buffer_const_int16_mono (gint sample_rate, gint depth, gsize n_frames,
     *data++ = value;
   gst_buffer_unmap (buf, &map);
 
-  caps = gst_caps_new_simple ("audio/x-raw",
-      "format", G_TYPE_STRING, GST_AUDIO_NE (S16),
-      "layout", G_TYPE_STRING, "interleaved",
-      "rate", G_TYPE_INT, sample_rate, "channels", G_TYPE_INT, 1, NULL);
-  gst_pad_set_caps (mysrcpad, caps);
-  gst_caps_unref (caps);
-
   ASSERT_BUFFER_REFCOUNT (buf, "buf", 1);
 
   return buf;
@@ -495,7 +493,6 @@ test_buffer_const_int16_stereo (gint sample_rate, gint depth, gsize n_frames,
   GstBuffer *buf = gst_buffer_new_and_alloc (n_frames * sizeof (gint16) * 2);
   gint16 *data;
   GstMapInfo map;
-  GstCaps *caps;
   gint i;
 
   gst_buffer_map (buf, &map, GST_MAP_WRITE);
@@ -506,14 +503,6 @@ test_buffer_const_int16_stereo (gint sample_rate, gint depth, gsize n_frames,
   }
   gst_buffer_unmap (buf, &map);
 
-  caps = gst_caps_new_simple ("audio/x-raw",
-      "format", G_TYPE_STRING, GST_AUDIO_NE (S16),
-      "layout", G_TYPE_STRING, "interleaved",
-      "rate", G_TYPE_INT, sample_rate, "channels", G_TYPE_INT, 2,
-      "channel-mask", GST_TYPE_BITMASK, (gint64) 0x3, NULL);
-  gst_pad_set_caps (mysrcpad, caps);
-  gst_caps_unref (caps);
-
   ASSERT_BUFFER_REFCOUNT (buf, "buf", 1);
 
   return buf;
@@ -529,7 +518,6 @@ test_buffer_square_float_mono (gint * accumulator, gint sample_rate,
   GstBuffer *buf = gst_buffer_new_and_alloc (n_frames * sizeof (gfloat));
   gfloat *data;
   GstMapInfo map;
-  GstCaps *caps;
   gint i;
 
   gst_buffer_map (buf, &map, GST_MAP_WRITE);
@@ -545,13 +533,6 @@ test_buffer_square_float_mono (gint * accumulator, gint sample_rate,
   }
   gst_buffer_unmap (buf, &map);
 
-  caps = gst_caps_new_simple ("audio/x-raw",
-      "format", G_TYPE_STRING, GST_AUDIO_NE (F32),
-      "layout", G_TYPE_STRING, "interleaved",
-      "rate", G_TYPE_INT, sample_rate, "channels", G_TYPE_INT, 1, NULL);
-  gst_pad_set_caps (mysrcpad, caps);
-  gst_caps_unref (caps);
-
   ASSERT_BUFFER_REFCOUNT (buf, "buf", 1);
 
   return buf;
@@ -564,7 +545,6 @@ test_buffer_square_float_stereo (gint * accumulator, gint sample_rate,
   GstBuffer *buf = gst_buffer_new_and_alloc (n_frames * sizeof (gfloat) * 2);
   gfloat *data;
   GstMapInfo map;
-  GstCaps *caps;
   gint i;
 
   gst_buffer_map (buf, &map, GST_MAP_WRITE);
@@ -583,14 +563,6 @@ test_buffer_square_float_stereo (gint * accumulator, gint sample_rate,
   }
   gst_buffer_unmap (buf, &map);
 
-  caps = gst_caps_new_simple ("audio/x-raw",
-      "format", G_TYPE_STRING, GST_AUDIO_NE (F32),
-      "layout", G_TYPE_STRING, "interleaved",
-      "rate", G_TYPE_INT, sample_rate, "channels", G_TYPE_INT, 2,
-      "channel-mask", GST_TYPE_BITMASK, (gint64) 0x3, NULL);
-  gst_pad_set_caps (mysrcpad, caps);
-  gst_caps_unref (caps);
-
   ASSERT_BUFFER_REFCOUNT (buf, "buf", 1);
 
   return buf;
@@ -603,7 +575,6 @@ test_buffer_square_int16_mono (gint * accumulator, gint sample_rate,
   GstBuffer *buf = gst_buffer_new_and_alloc (n_frames * sizeof (gint16));
   gint16 *data;
   GstMapInfo map;
-  GstCaps *caps;
   gint i;
 
   gst_buffer_map (buf, &map, GST_MAP_WRITE);
@@ -619,13 +590,6 @@ test_buffer_square_int16_mono (gint * accumulator, gint sample_rate,
   }
   gst_buffer_unmap (buf, &map);
 
-  caps = gst_caps_new_simple ("audio/x-raw",
-      "format", G_TYPE_STRING, GST_AUDIO_NE (S16),
-      "layout", G_TYPE_STRING, "interleaved",
-      "rate", G_TYPE_INT, sample_rate, "channels", G_TYPE_INT, 1, NULL);
-  gst_pad_set_caps (mysrcpad, caps);
-  gst_caps_unref (caps);
-
   ASSERT_BUFFER_REFCOUNT (buf, "buf", 1);
 
   return buf;
@@ -638,7 +602,6 @@ test_buffer_square_int16_stereo (gint * accumulator, gint sample_rate,
   GstBuffer *buf = gst_buffer_new_and_alloc (n_frames * sizeof (gint16) * 2);
   gint16 *data;
   GstMapInfo map;
-  GstCaps *caps;
   gint i;
 
   gst_buffer_map (buf, &map, GST_MAP_WRITE);
@@ -657,14 +620,6 @@ test_buffer_square_int16_stereo (gint * accumulator, gint sample_rate,
   }
   gst_buffer_unmap (buf, &map);
 
-  caps = gst_caps_new_simple ("audio/x-raw",
-      "format", G_TYPE_STRING, GST_AUDIO_NE (S16),
-      "layout", G_TYPE_STRING, "interleaved",
-      "rate", G_TYPE_INT, sample_rate, "channels", G_TYPE_INT, 2,
-      "channel-mask", GST_TYPE_BITMASK, (gint64) 0x3, NULL);
-  gst_pad_set_caps (mysrcpad, caps);
-  gst_caps_unref (caps);
-
   ASSERT_BUFFER_REFCOUNT (buf, "buf", 1);
 
   return buf;
@@ -703,6 +658,7 @@ GST_START_TEST (test_no_buffer_album_1)
   set_playing_state (element);
 
   /* Single track: */
+  send_stream_start_event (element);
   send_segment_event (element);
   send_eos_event (element);
   poll_eos (element);
@@ -766,7 +722,7 @@ GST_START_TEST (test_no_buffer_album_2)
   set_playing_state (element);
 
   /* No buffer for the first track. */
-
+  send_stream_start_event (element);
   send_segment_event (element);
   send_eos_event (element);
   /* No tags should be posted, there was nothing to analyze: */
@@ -776,6 +732,7 @@ GST_START_TEST (test_no_buffer_album_2)
   /* A test waveform with known gain result as second track: */
 
   send_flush_events (element);
+  send_caps_event (GST_AUDIO_NE (F32), 44100, 1);
   send_segment_event (element);
   for (i = 20; i--;)
     push_buffer (test_buffer_square_float_mono (&accumulator, 44100, 512,
@@ -815,6 +772,8 @@ GST_START_TEST (test_empty_buffers)
   set_playing_state (element);
 
   /* Single track: */
+  send_stream_start_event (element);
+  send_caps_event (GST_AUDIO_NE (F32), 44100, 2);
   send_segment_event (element);
   push_buffer (test_buffer_const_float_stereo (44100, 0, 0.0, 0.0));
   send_eos_event (element);
@@ -875,6 +834,8 @@ GST_START_TEST (test_peak_float)
   GstTagList *tag_list;
 
   set_playing_state (element);
+  send_stream_start_event (element);
+  send_caps_event (GST_AUDIO_NE (F32), 8000, 2);
   send_segment_event (element);
   push_buffer (test_buffer_const_float_stereo (8000, 512, -1.369, 0.0));
   send_eos_event (element);
@@ -893,6 +854,7 @@ GST_START_TEST (test_peak_float)
 
   /* Mono. */
   send_flush_events (element);
+  send_caps_event (GST_AUDIO_NE (F32), 8000, 1);
   send_segment_event (element);
   push_buffer (test_buffer_const_float_mono (8000, 512, -1.369));
   send_eos_event (element);
@@ -913,6 +875,8 @@ GST_START_TEST (test_peak_int16_16)
   set_playing_state (element);
 
   /* Half amplitude. */
+  send_stream_start_event (element);
+  send_caps_event (GST_AUDIO_NE (S16), 8000, 2);
   send_segment_event (element);
   push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 1 << 14, 0));
   send_eos_event (element);
@@ -922,6 +886,7 @@ GST_START_TEST (test_peak_int16_16)
 
   /* Swapped channels. */
   send_flush_events (element);
+  send_caps_event (GST_AUDIO_NE (S16), 8000, 2);
   send_segment_event (element);
   push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 0, 1 << 14));
   send_eos_event (element);
@@ -931,6 +896,7 @@ GST_START_TEST (test_peak_int16_16)
 
   /* Mono. */
   send_flush_events (element);
+  send_caps_event (GST_AUDIO_NE (S16), 8000, 1);
   send_segment_event (element);
   push_buffer (test_buffer_const_int16_mono (8000, 16, 512, 1 << 14));
   send_eos_event (element);
@@ -940,6 +906,7 @@ GST_START_TEST (test_peak_int16_16)
 
   /* Half amplitude, negative variant. */
   send_flush_events (element);
+  send_caps_event (GST_AUDIO_NE (S16), 8000, 2);
   send_segment_event (element);
   push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, -1 << 14, 0));
   send_eos_event (element);
@@ -949,6 +916,7 @@ GST_START_TEST (test_peak_int16_16)
 
   /* Swapped channels. */
   send_flush_events (element);
+  send_caps_event (GST_AUDIO_NE (S16), 8000, 2);
   send_segment_event (element);
   push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 0, -1 << 14));
   send_eos_event (element);
@@ -958,6 +926,7 @@ GST_START_TEST (test_peak_int16_16)
 
   /* Mono. */
   send_flush_events (element);
+  send_caps_event (GST_AUDIO_NE (S16), 8000, 1);
   send_segment_event (element);
   push_buffer (test_buffer_const_int16_mono (8000, 16, 512, -1 << 14));
   send_eos_event (element);
@@ -972,6 +941,7 @@ GST_START_TEST (test_peak_int16_16)
    * -32768! */
 
   send_flush_events (element);
+  send_caps_event (GST_AUDIO_NE (S16), 8000, 2);
   send_segment_event (element);
   push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 32767, 0));
   send_eos_event (element);
@@ -981,6 +951,7 @@ GST_START_TEST (test_peak_int16_16)
 
   /* Swapped channels. */
   send_flush_events (element);
+  send_caps_event (GST_AUDIO_NE (S16), 8000, 2);
   send_segment_event (element);
   push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 0, 32767));
   send_eos_event (element);
@@ -990,6 +961,7 @@ GST_START_TEST (test_peak_int16_16)
 
   /* Mono. */
   send_flush_events (element);
+  send_caps_event (GST_AUDIO_NE (S16), 8000, 1);
   send_segment_event (element);
   push_buffer (test_buffer_const_int16_mono (8000, 16, 512, 32767));
   send_eos_event (element);
@@ -1000,6 +972,7 @@ GST_START_TEST (test_peak_int16_16)
 
   /* Negative variant, reaching 1.0. */
   send_flush_events (element);
+  send_caps_event (GST_AUDIO_NE (S16), 8000, 2);
   send_segment_event (element);
   push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, -32768, 0));
   send_eos_event (element);
@@ -1009,6 +982,7 @@ GST_START_TEST (test_peak_int16_16)
 
   /* Swapped channels. */
   send_flush_events (element);
+  send_caps_event (GST_AUDIO_NE (S16), 8000, 2);
   send_segment_event (element);
   push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 0, -32768));
   send_eos_event (element);
@@ -1018,6 +992,7 @@ GST_START_TEST (test_peak_int16_16)
 
   /* Mono. */
   send_flush_events (element);
+  send_caps_event (GST_AUDIO_NE (S16), 8000, 1);
   send_segment_event (element);
   push_buffer (test_buffer_const_int16_mono (8000, 16, 512, -32768));
   send_eos_event (element);
@@ -1038,6 +1013,8 @@ GST_START_TEST (test_peak_album)
   g_object_set (element, "num-tracks", 2, NULL);
   set_playing_state (element);
 
+  send_stream_start_event (element);
+  send_caps_event (GST_AUDIO_NE (F32), 8000, 2);
   send_segment_event (element);
   push_buffer (test_buffer_const_float_stereo (8000, 1024, 1.0, 0.0));
   send_eos_event (element);
@@ -1115,6 +1092,8 @@ GST_START_TEST (test_peak_track_album)
 
   set_playing_state (element);
 
+  send_stream_start_event (element);
+  send_caps_event (GST_AUDIO_NE (F32), 8000, 1);
   send_segment_event (element);
   push_buffer (test_buffer_const_float_mono (8000, 1024, 1.0));
   send_eos_event (element);
@@ -1152,6 +1131,8 @@ GST_START_TEST (test_peak_album_abort_to_track)
   g_object_set (element, "num-tracks", 2, NULL);
   set_playing_state (element);
 
+  send_stream_start_event (element);
+  send_caps_event (GST_AUDIO_NE (F32), 8000, 2);
   send_segment_event (element);
   push_buffer (test_buffer_const_float_stereo (8000, 1024, 1.0, 0.0));
   send_eos_event (element);
@@ -1189,6 +1170,8 @@ GST_START_TEST (test_gain_album)
 
   /* The three tracks are constructed such that if any of these is in fact
    * ignored for the album gain, the album gain will differ. */
+  send_stream_start_event (element);
+  send_caps_event (GST_AUDIO_NE (F32), 44100, 2);
   send_segment_event (element);
   accumulator = 0;
   for (i = 8; i--;)
@@ -1248,6 +1231,8 @@ GST_START_TEST (test_forced)
   g_object_set (element, "forced", FALSE, NULL);
   set_playing_state (element);
 
+  send_stream_start_event (element);
+  send_caps_event (GST_AUDIO_NE (F32), 44100, 2);
   send_segment_event (element);
   tag_list = gst_tag_list_new_empty ();
   /* Provided values are totally arbitrary. */
@@ -1290,6 +1275,8 @@ GST_START_TEST (test_forced_separate)
   g_object_set (element, "forced", FALSE, NULL);
   set_playing_state (element);
 
+  send_stream_start_event (element);
+  send_caps_event (GST_AUDIO_NE (F32), 44100, 2);
   send_segment_event (element);
   tag_list = gst_tag_list_new_empty ();
   gst_tag_list_add (tag_list, GST_TAG_MERGE_APPEND, GST_TAG_TRACK_GAIN, 2.21,
@@ -1343,6 +1330,8 @@ GST_START_TEST (test_forced_after_data)
   g_object_set (element, "forced", FALSE, NULL);
   set_playing_state (element);
 
+  send_stream_start_event (element);
+  send_caps_event (GST_AUDIO_NE (F32), 8000, 2);
   send_segment_event (element);
   for (i = 20; i--;)
     push_buffer (test_buffer_const_float_stereo (8000, 512, 0.5, 0.5));
@@ -1385,6 +1374,8 @@ GST_START_TEST (test_forced_album)
   g_object_set (element, "forced", FALSE, NULL);
   set_playing_state (element);
 
+  send_stream_start_event (element);
+  send_caps_event (GST_AUDIO_NE (F32), 44100, 2);
   send_segment_event (element);
   tag_list = gst_tag_list_new_empty ();
   /* Provided values are totally arbitrary. */
@@ -1447,6 +1438,8 @@ GST_START_TEST (test_forced_album_skip)
   g_object_set (element, "forced", FALSE, "num-tracks", 2, NULL);
   set_playing_state (element);
 
+  send_stream_start_event (element);
+  send_caps_event (GST_AUDIO_NE (F32), 8000, 2);
   send_segment_event (element);
   tag_list = gst_tag_list_new_empty ();
   /* Provided values are totally arbitrary. */
@@ -1501,6 +1494,8 @@ GST_START_TEST (test_forced_album_no_skip)
   g_object_set (element, "forced", FALSE, "num-tracks", 2, NULL);
   set_playing_state (element);
 
+  send_stream_start_event (element);
+  send_caps_event (GST_AUDIO_NE (F32), 8000, 2);
   send_segment_event (element);
   for (i = 20; i--;)
     push_buffer (test_buffer_square_float_stereo (&accumulator, 8000, 512, 0.25,
@@ -1553,6 +1548,8 @@ GST_START_TEST (test_forced_abort_album_no_skip)
   g_object_set (element, "forced", FALSE, "num-tracks", 2, NULL);
   set_playing_state (element);
 
+  send_stream_start_event (element);
+  send_caps_event (GST_AUDIO_NE (F32), 8000, 2);
   send_segment_event (element);
   for (i = 20; i--;)
     push_buffer (test_buffer_square_float_stereo (&accumulator, 8000, 512, 0.25,
@@ -1598,6 +1595,8 @@ GST_START_TEST (test_reference_level)
 
   set_playing_state (element);
 
+  send_stream_start_event (element);
+  send_caps_event (GST_AUDIO_NE (F32), 44100, 2);
   send_segment_event (element);
   for (i = 20; i--;)
     push_buffer (test_buffer_square_float_stereo (&accumulator, 44100, 512,
@@ -1661,19 +1660,24 @@ GST_START_TEST (test_all_formats)
   gint i, j;
 
   set_playing_state (element);
+  send_stream_start_event (element);
   for (i = G_N_ELEMENTS (supported_rates); i--;) {
     send_flush_events (element);
+    send_caps_event (GST_AUDIO_NE (F32), supported_rates[i].sample_rate, 2);
     send_segment_event (element);
     accumulator = 0;
     for (j = 0; j < 4; j++)
       push_buffer (test_buffer_square_float_stereo (&accumulator,
               supported_rates[i].sample_rate, 512, 0.25, 0.25));
+    send_caps_event (GST_AUDIO_NE (F32), supported_rates[i].sample_rate, 1);
     for (j = 0; j < 3; j++)
       push_buffer (test_buffer_square_float_mono (&accumulator,
               supported_rates[i].sample_rate, 512, 0.25));
+    send_caps_event (GST_AUDIO_NE (S16), supported_rates[i].sample_rate, 2);
     for (j = 0; j < 4; j++)
       push_buffer (test_buffer_square_int16_stereo (&accumulator,
               supported_rates[i].sample_rate, 16, 512, 1 << 13, 1 << 13));
+    send_caps_event (GST_AUDIO_NE (S16), supported_rates[i].sample_rate, 1);
     for (j = 0; j < 3; j++)
       push_buffer (test_buffer_square_int16_mono (&accumulator,
               supported_rates[i].sample_rate, 16, 512, 1 << 13));
@@ -1703,6 +1707,9 @@ GST_END_TEST;
   gint i;                                                             \
                                                                       \
   set_playing_state (element);                                        \
+  send_stream_start_event (element);                                  \
+  send_caps_event (GST_AUDIO_NE (F32), sample_rate, 1);               \
+  send_segment_event (element);                                       \
                                                                       \
   for (i = 0; i < 20; i++)                                            \
     push_buffer (test_buffer_square_float_mono (&accumulator,         \
@@ -1728,6 +1735,9 @@ GST_END_TEST;
   gint i;                                                             \
                                                                       \
   set_playing_state (element);                                        \
+  send_stream_start_event (element);                                  \
+  send_caps_event (GST_AUDIO_NE (F32), sample_rate, 2);               \
+  send_segment_event (element);                                       \
                                                                       \
   for (i = 0; i < 20; i++)                                            \
     push_buffer (test_buffer_square_float_stereo (&accumulator,       \
@@ -1753,6 +1763,9 @@ GST_END_TEST;
   gint i;                                                             \
                                                                       \
   set_playing_state (element);                                        \
+  send_stream_start_event (element);                                  \
+  send_caps_event (GST_AUDIO_NE (S16), sample_rate, 1);               \
+  send_segment_event (element);                                       \
                                                                       \
   for (i = 0; i < 20; i++)                                            \
     push_buffer (test_buffer_square_int16_mono (&accumulator,         \
@@ -1779,6 +1792,9 @@ GST_END_TEST;
   gint i;                                                             \
                                                                       \
   set_playing_state (element);                                        \
+  send_stream_start_event (element);                                  \
+  send_caps_event (GST_AUDIO_NE (S16), sample_rate, 2);               \
+  send_segment_event (element);                                       \
                                                                       \
   for (i = 0; i < 20; i++)                                            \
     push_buffer (test_buffer_square_int16_stereo (&accumulator,       \
diff --git a/tests/check/elements/rglimiter.c b/tests/check/elements/rglimiter.c
index 104df2258..926ca33df 100644
--- a/tests/check/elements/rglimiter.c
+++ b/tests/check/elements/rglimiter.c
@@ -99,20 +99,26 @@ static const gfloat test_output[] = {
   0.99752737684336523,          /* 2.0  */
 };
 
-static GstBuffer *
-create_test_buffer (void)
+static void
+setup_events (GstElement * element)
 {
-  GstBuffer *buf = gst_buffer_new_and_alloc (sizeof (test_input));
   GstCaps *caps;
 
-  gst_buffer_fill (buf, 0, test_input, sizeof (test_input));
-
   caps = gst_caps_new_simple ("audio/x-raw",
       "rate", G_TYPE_INT, 44100, "channels", G_TYPE_INT, 1,
       "format", G_TYPE_STRING, GST_AUDIO_NE (F32),
       "layout", G_TYPE_STRING, "interleaved", NULL);
-  gst_pad_set_caps (mysrcpad, caps);
+
+  gst_check_setup_events (mysrcpad, element, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
+}
+
+static GstBuffer *
+create_test_buffer (void)
+{
+  GstBuffer *buf = gst_buffer_new_and_alloc (sizeof (test_input));
+
+  gst_buffer_fill (buf, 0, test_input, sizeof (test_input));
 
   ASSERT_BUFFER_REFCOUNT (buf, "buf", 1);
 
@@ -158,6 +164,7 @@ GST_START_TEST (test_disabled)
 
   g_object_set (element, "enabled", FALSE, NULL);
   set_playing_state (element);
+  setup_events (element);
 
   buf = create_test_buffer ();
   fail_unless (gst_pad_push (mysrcpad, buf) == GST_FLOW_OK);
@@ -180,6 +187,7 @@ GST_START_TEST (test_limiting)
   GstBuffer *buf, *out_buf;
 
   set_playing_state (element);
+  setup_events (element);
 
   /* Mutable variant. */
   buf = create_test_buffer ();
@@ -220,6 +228,7 @@ GST_START_TEST (test_gap)
   GstMapInfo m1, m2;
 
   set_playing_state (element);
+  setup_events (element);
 
   buf = create_test_buffer ();
   GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_GAP);
diff --git a/tests/check/elements/rgvolume.c b/tests/check/elements/rgvolume.c
index 4c09d553a..47ed3b343 100644
--- a/tests/check/elements/rgvolume.c
+++ b/tests/check/elements/rgvolume.c
@@ -57,14 +57,8 @@ static GstBuffer *test_buffer_new (gfloat value);
 static gboolean
 event_func (GstPad * pad, GstObject * parent, GstEvent * event)
 {
-  GST_DEBUG ("received event %p", event);
-  /* not interested in caps event */
-  if (GST_EVENT_TYPE (event) == GST_EVENT_CAPS) {
-    GST_DEBUG ("dropping caps event");
-    gst_event_unref (event);
-  } else {
-    events = g_list_append (events, event);
-  }
+  GST_DEBUG ("received event %p (%s)", event, GST_EVENT_TYPE_NAME (event));
+  events = g_list_append (events, event);
 
   return TRUE;
 }
@@ -73,7 +67,6 @@ static GstElement *
 setup_rgvolume (void)
 {
   GstElement *element;
-  GstCaps *caps;
 
   GST_DEBUG ("setup_rgvolume");
   element = gst_check_setup_element ("rgvolume");
@@ -86,41 +79,20 @@ setup_rgvolume (void)
   gst_pad_set_active (mysrcpad, TRUE);
   gst_pad_set_active (mysinkpad, TRUE);
 
-  caps = gst_caps_from_string ("audio/x-raw, format = F32LE, "
-      "layout = interleaved, rate = 8000, channels = 1");
-  gst_pad_set_caps (mysrcpad, caps);
-  gst_caps_unref (caps);
-
   return element;
 }
 
 static void
-send_newsegment_and_empty_buffer (void)
+send_empty_buffer (void)
 {
   GstBuffer *buf;
-  GstEvent *ev;
-  GstSegment segment;
-
-  fail_unless (g_list_length (events) == 0);
-
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  ev = gst_event_new_segment (&segment);
-  fail_unless (gst_pad_push_event (mysrcpad, ev),
-      "Pushing newsegment event failed");
 
-  /* makes caps event */
   buf = test_buffer_new (0.0);
   gst_buffer_resize (buf, 0, 0);
   GST_BUFFER_DURATION (buf) = 0;
   GST_BUFFER_OFFSET_END (buf) = GST_BUFFER_OFFSET (buf);
   fail_unless (gst_pad_push (mysrcpad, buf) == GST_FLOW_OK);
 
-  fail_unless (g_list_length (events) == 1);
-  fail_unless (events->data == ev);
-  gst_mini_object_unref ((GstMiniObject *) events->data);
-  events = g_list_remove (events, ev);
-  fail_unless (g_list_length (events) == 0);
-
   fail_unless (g_list_length (buffers) == 1);
   fail_unless (buffers->data == buf);
   gst_mini_object_unref ((GstMiniObject *) buffers->data);
@@ -163,17 +135,6 @@ set_null_state (GstElement * element)
       "Could not set state to NULL");
 }
 
-static void
-clear_last_event (GstEventType type)
-{
-  GList *last = g_list_last (events);
-
-  fail_unless (last != NULL);
-  fail_unless_equals_int (GST_EVENT_TYPE (last->data), type);
-  gst_event_unref (GST_EVENT (last->data));
-  events = g_list_delete_link (events, last);
-}
-
 static void
 send_flush_events (GstElement * element)
 {
@@ -181,11 +142,31 @@ send_flush_events (GstElement * element)
 
   res = gst_pad_push_event (mysrcpad, gst_event_new_flush_start ());
   fail_unless (res, "flush-start even not handled");
-  clear_last_event (GST_EVENT_FLUSH_START);
 
   res = gst_pad_push_event (mysrcpad, gst_event_new_flush_stop (TRUE));
   fail_unless (res, "flush-stop event not handled");
-  clear_last_event (GST_EVENT_FLUSH_STOP);
+}
+
+static void
+send_stream_start_event (GstElement * element)
+{
+  gboolean res;
+
+  res = gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
+  fail_unless (res, "STREAM_START event not handled");
+}
+
+static void
+send_caps_event (GstElement * element)
+{
+  GstCaps *caps;
+  gboolean res;
+
+  caps = gst_caps_from_string ("audio/x-raw, format = F32LE, "
+      "layout = interleaved, rate = 8000, channels = 1");
+  res = gst_pad_push_event (mysrcpad, gst_event_new_caps (caps));
+  fail_unless (res, "CAPS event not handled");
+  gst_caps_unref (caps);
 }
 
 static void
@@ -197,7 +178,6 @@ send_segment_event (GstElement * element)
   gst_segment_init (&segment, GST_FORMAT_TIME);
   res = gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment));
   fail_unless (res, "SEGMENT event not handled");
-  clear_last_event (GST_EVENT_SEGMENT);
 }
 
 static void
@@ -205,50 +185,49 @@ send_eos_event (GstElement * element)
 {
   GstEvent *event = gst_event_new_eos ();
 
-  GST_DEBUG ("events : %d", g_list_length (events));
-
-  fail_unless (g_list_length (events) == 0);
   fail_unless (gst_pad_push_event (mysrcpad, event),
       "Pushing EOS event failed");
-  fail_unless (g_list_length (events) == 1);
-  fail_unless (events->data == event);
-  gst_mini_object_unref ((GstMiniObject *) events->data);
-  events = g_list_remove (events, event);
 }
 
 static GstEvent *
 send_tag_event (GstElement * element, GstEvent * event)
 {
+  GList *l;
+  GstTagList *tag_list;
+  gdouble dummy;
+
   g_return_val_if_fail (event->type == GST_EVENT_TAG, NULL);
 
-  fail_unless (g_list_length (events) == 0);
   fail_unless (gst_pad_push_event (mysrcpad, event),
       "Pushing tag event failed");
 
-  if (g_list_length (events) == 0) {
-    /* Event got filtered out. */
-    event = NULL;
-  } else {
-    GstTagList *tag_list;
-    gdouble dummy;
-
-    event = events->data;
-    events = g_list_remove (events, event);
-
-    fail_unless (event->type == GST_EVENT_TAG);
-    gst_event_parse_tag (event, &tag_list);
-
-    /* The element is supposed to filter out ReplayGain related tags. */
-    fail_if (gst_tag_list_get_double (tag_list, GST_TAG_TRACK_GAIN, &dummy),
-        "tag event still contains track gain tag");
-    fail_if (gst_tag_list_get_double (tag_list, GST_TAG_TRACK_PEAK, &dummy),
-        "tag event still contains track peak tag");
-    fail_if (gst_tag_list_get_double (tag_list, GST_TAG_ALBUM_GAIN, &dummy),
-        "tag event still contains album gain tag");
-    fail_if (gst_tag_list_get_double (tag_list, GST_TAG_ALBUM_PEAK, &dummy),
-        "tag event still contains album peak tag");
+  event = NULL;
+
+  for (l = g_list_last (events); l; l = l->prev) {
+    if (GST_EVENT_TYPE (l->data) == GST_EVENT_TAG) {
+      event = l->data;
+      events = g_list_delete_link (events, l);
+      break;
+    }
   }
 
+  /* Event got filtered out */
+  if (event == NULL)
+    return NULL;
+
+  fail_unless (event->type == GST_EVENT_TAG);
+  gst_event_parse_tag (event, &tag_list);
+
+  /* The element is supposed to filter out ReplayGain related tags. */
+  fail_if (gst_tag_list_get_double (tag_list, GST_TAG_TRACK_GAIN, &dummy),
+      "tag event still contains track gain tag");
+  fail_if (gst_tag_list_get_double (tag_list, GST_TAG_TRACK_PEAK, &dummy),
+      "tag event still contains track peak tag");
+  fail_if (gst_tag_list_get_double (tag_list, GST_TAG_ALBUM_GAIN, &dummy),
+      "tag event still contains album gain tag");
+  fail_if (gst_tag_list_get_double (tag_list, GST_TAG_ALBUM_PEAK, &dummy),
+      "tag event still contains album peak tag");
+
   return event;
 }
 
@@ -378,8 +357,11 @@ GST_START_TEST (test_events)
   gchar *artist;
 
   set_playing_state (element);
+  send_stream_start_event (element);
+  send_caps_event (element);
+  send_segment_event (element);
 
-  send_newsegment_and_empty_buffer ();
+  send_empty_buffer ();
 
   tag_list = gst_tag_list_new_empty ();
   gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE,
@@ -422,8 +404,11 @@ GST_START_TEST (test_simple)
   g_object_set (element, "album-mode", FALSE, "headroom", +0.00,
       "pre-amp", -6.00, "fallback-gain", +1.23, NULL);
   set_playing_state (element);
+  send_stream_start_event (element);
+  send_caps_event (element);
+  send_segment_event (element);
 
-  send_newsegment_and_empty_buffer ();
+  send_empty_buffer ();
 
   tag_list = gst_tag_list_new_empty ();
   gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE,
@@ -467,8 +452,11 @@ GST_START_TEST (test_fallback_gain)
   g_object_set (element, "album-mode", FALSE, "headroom", 10.00,
       "pre-amp", -6.00, "fallback-gain", -3.00, NULL);
   set_playing_state (element);
+  send_stream_start_event (element);
+  send_caps_event (element);
+  send_segment_event (element);
 
-  send_newsegment_and_empty_buffer ();
+  send_empty_buffer ();
 
   tag_list = gst_tag_list_new_empty ();
   gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE,
@@ -516,8 +504,11 @@ GST_START_TEST (test_fallback_track)
   g_object_set (element, "album-mode", TRUE, "headroom", +0.00,
       "pre-amp", -6.00, "fallback-gain", +1.23, NULL);
   set_playing_state (element);
+  send_stream_start_event (element);
+  send_caps_event (element);
+  send_segment_event (element);
 
-  send_newsegment_and_empty_buffer ();
+  send_empty_buffer ();
 
   tag_list = gst_tag_list_new_empty ();
   gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE,
@@ -543,8 +534,11 @@ GST_START_TEST (test_fallback_album)
   g_object_set (element, "album-mode", FALSE, "headroom", +0.00,
       "pre-amp", -6.00, "fallback-gain", +1.23, NULL);
   set_playing_state (element);
+  send_stream_start_event (element);
+  send_caps_event (element);
+  send_segment_event (element);
 
-  send_newsegment_and_empty_buffer ();
+  send_empty_buffer ();
 
   tag_list = gst_tag_list_new_empty ();
   gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE,
@@ -567,8 +561,11 @@ GST_START_TEST (test_headroom)
   g_object_set (element, "album-mode", FALSE, "headroom", +0.00,
       "pre-amp", +0.00, "fallback-gain", +1.23, NULL);
   set_playing_state (element);
+  send_stream_start_event (element);
+  send_caps_event (element);
+  send_segment_event (element);
 
-  send_newsegment_and_empty_buffer ();
+  send_empty_buffer ();
 
   tag_list = gst_tag_list_new_empty ();
   gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE,
@@ -618,7 +615,11 @@ GST_START_TEST (test_reference_level)
       "headroom", +0.00, "pre-amp", +0.00, "fallback-gain", +1.23, NULL);
   set_playing_state (element);
 
-  send_newsegment_and_empty_buffer ();
+  send_stream_start_event (element);
+  send_caps_event (element);
+  send_segment_event (element);
+
+  send_empty_buffer ();
 
   tag_list = gst_tag_list_new_empty ();
   gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE,
diff --git a/tests/check/elements/rtp-payloading.c b/tests/check/elements/rtp-payloading.c
index 99e8e5f20..e5c1c8d8f 100644
--- a/tests/check/elements/rtp-payloading.c
+++ b/tests/check/elements/rtp-payloading.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include <gst/check/gstcheck.h>
 #include <stdlib.h>
@@ -98,13 +98,14 @@ rtp_bus_callback (GstBus * bus, GstMessage * message, gpointer data)
 
       element_name = (message->src) ? gst_object_get_name (message->src) : NULL;
       gst_message_parse_error (message, &err, &debug);
-      /* FIXME: should we fail the test here? */
       g_print ("\nError from element %s: %s\n%s\n\n",
           GST_STR_NULL (element_name), err->message, (debug) ? debug : "");
       g_error_free (err);
       g_free (debug);
       g_free (element_name);
 
+      fail_if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ERROR);
+
       g_main_loop_quit (mainloop);
     }
       break;
@@ -783,6 +784,34 @@ GST_START_TEST (rtp_jpeg)
 }
 
 GST_END_TEST;
+
+GST_START_TEST (rtp_jpeg_width_greater_than_2040)
+{
+  rtp_pipeline_test (rtp_jpeg_frame_data, rtp_jpeg_frame_data_size,
+      rtp_jpeg_frame_count, "video/x-jpeg,height=2048,width=480", "rtpjpegpay",
+      "rtpjpegdepay", 0, 0, FALSE);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (rtp_jpeg_height_greater_than_2040)
+{
+  rtp_pipeline_test (rtp_jpeg_frame_data, rtp_jpeg_frame_data_size,
+      rtp_jpeg_frame_count, "video/x-jpeg,height=640,width=2048", "rtpjpegpay",
+      "rtpjpegdepay", 0, 0, FALSE);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (rtp_jpeg_width_and_height_greater_than_2040)
+{
+  rtp_pipeline_test (rtp_jpeg_frame_data, rtp_jpeg_frame_data_size,
+      rtp_jpeg_frame_count, "video/x-jpeg,height=2048,width=2048", "rtpjpegpay",
+      "rtpjpegdepay", 0, 0, FALSE);
+}
+
+GST_END_TEST;
+
 static const guint8 rtp_jpeg_list_frame_data[] =
     { /* SOF */ 0xFF, 0xC0, 0x00, 0x11, 0x08, 0x00, 0x08, 0x00, 0x08,
   0x03, 0x00, 0x21, 0x08, 0x01, 0x11, 0x08, 0x02, 0x11, 0x08,
@@ -812,6 +841,34 @@ GST_START_TEST (rtp_jpeg_list)
 }
 
 GST_END_TEST;
+
+GST_START_TEST (rtp_jpeg_list_width_greater_than_2040)
+{
+  rtp_pipeline_test (rtp_jpeg_list_frame_data, rtp_jpeg_list_frame_data_size,
+      rtp_jpeg_list_frame_count, "video/x-jpeg,height=2048,width=480",
+      "rtpjpegpay", "rtpjpegdepay", rtp_jpeg_list_bytes_sent, 0, TRUE);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (rtp_jpeg_list_height_greater_than_2040)
+{
+  rtp_pipeline_test (rtp_jpeg_list_frame_data, rtp_jpeg_list_frame_data_size,
+      rtp_jpeg_list_frame_count, "video/x-jpeg,height=640,width=2048",
+      "rtpjpegpay", "rtpjpegdepay", rtp_jpeg_list_bytes_sent, 0, TRUE);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (rtp_jpeg_list_width_and_height_greater_than_2040)
+{
+  rtp_pipeline_test (rtp_jpeg_list_frame_data, rtp_jpeg_list_frame_data_size,
+      rtp_jpeg_list_frame_count, "video/x-jpeg,height=2048,width=2048",
+      "rtpjpegpay", "rtpjpegdepay", rtp_jpeg_list_bytes_sent, 0, TRUE);
+}
+
+GST_END_TEST;
+
 static const guint8 rtp_g729_frame_data[] =
     { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
@@ -867,7 +924,13 @@ rtp_payloading_suite (void)
   tcase_add_test (tc_chain, rtp_theora);
   tcase_add_test (tc_chain, rtp_vorbis);
   tcase_add_test (tc_chain, rtp_jpeg);
+  tcase_add_test (tc_chain, rtp_jpeg_width_greater_than_2040);
+  tcase_add_test (tc_chain, rtp_jpeg_height_greater_than_2040);
+  tcase_add_test (tc_chain, rtp_jpeg_width_and_height_greater_than_2040);
   tcase_add_test (tc_chain, rtp_jpeg_list);
+  tcase_add_test (tc_chain, rtp_jpeg_list_width_greater_than_2040);
+  tcase_add_test (tc_chain, rtp_jpeg_list_height_greater_than_2040);
+  tcase_add_test (tc_chain, rtp_jpeg_list_width_and_height_greater_than_2040);
   tcase_add_test (tc_chain, rtp_g729);
   return s;
 }
diff --git a/tests/check/elements/rtpbin.c b/tests/check/elements/rtpbin.c
index 9626b9633..389d3330b 100644
--- a/tests/check/elements/rtpbin.c
+++ b/tests/check/elements/rtpbin.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -143,6 +143,7 @@ chain_rtp_packet (GstPad * pad, CleanupData * data)
 {
   GstFlowReturn res;
   static GstCaps *caps = NULL;
+  GstSegment segment;
   GstBuffer *buffer;
   GstMapInfo map;
 
@@ -153,7 +154,10 @@ chain_rtp_packet (GstPad * pad, CleanupData * data)
     data->seqnum = 0;
   }
 
-  gst_pad_set_caps (pad, caps);
+  gst_pad_send_event (pad, gst_event_new_stream_start (gst_pad_get_name (pad)));
+  gst_pad_send_event (pad, gst_event_new_caps (caps));
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  gst_pad_send_event (pad, gst_event_new_segment (&segment));
 
   buffer = gst_buffer_new_and_alloc (sizeof (rtp_packet));
   gst_buffer_map (buffer, &map, GST_MAP_WRITE);
diff --git a/tests/check/elements/rtpbin_buffer_list.c b/tests/check/elements/rtpbin_buffer_list.c
index e11c227db..b6a7793b0 100644
--- a/tests/check/elements/rtpbin_buffer_list.c
+++ b/tests/check/elements/rtpbin_buffer_list.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/elements/rtpjitterbuffer.c b/tests/check/elements/rtpjitterbuffer.c
index f10e15cd6..dfc9a2bdd 100644
--- a/tests/check/elements/rtpjitterbuffer.c
+++ b/tests/check/elements/rtpjitterbuffer.c
@@ -2,6 +2,9 @@
  *
  * Copyright (C) 2009 Nokia Corporation and its subsidary(-ies)
  *               contact: <stefan.kost@nokia.com>
+ * Copyright (C) 2012 Cisco Systems, Inc
+ *               Authors: Kelley Rogers <kelro@cisco.com>
+ *               Havard Graff <hgraff@cisco.com>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -15,11 +18,12 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
+#include <gst/check/gsttestclock.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,
@@ -98,7 +102,7 @@ setup_jitterbuffer (gint num_buffers)
 
   /* create n buffers */
   caps = gst_caps_from_string (RTP_CAPS_STRING);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, jitterbuffer, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
   for (i = 0; i < num_buffers; i++) {
@@ -319,6 +323,511 @@ GST_START_TEST (test_basetime)
 
 GST_END_TEST;
 
+#if 0
+static const guint payload_size = 160;
+static const guint clock_rate = 8000;
+static const guint pcmu_payload_type = 0;
+static const guint test_ssrc = 0x01BADBAD;
+
+typedef struct
+{
+  GstElement *jitter_buffer;
+  GstPad *test_sink_pad, *test_src_pad;
+  GstClock *clock;
+  GAsyncQueue *buf_queue;
+  GAsyncQueue *event_queue;
+  gint lost_event_count;
+} TestData;
+
+static GstCaps *
+generate_caps (void)
+{
+  return gst_caps_new_simple ("application/x-rtp",
+      "media", G_TYPE_STRING, "audio",
+      "clock-rate", G_TYPE_INT, clock_rate,
+      "encoding-name", G_TYPE_STRING, "PCMU",
+      "payload", G_TYPE_INT, pcmu_payload_type,
+      "ssrc", G_TYPE_UINT, test_ssrc, NULL);
+}
+
+static GstBuffer *
+generate_test_buffer (GstClockTime gst_ts,
+    gboolean marker_bit, guint seq_num, guint32 rtp_ts)
+{
+  GstBuffer *buf;
+  guint8 *payload;
+  guint i;
+
+  buf = gst_rtp_buffer_new_allocate (payload_size, 0, 0);
+  GST_BUFFER_TIMESTAMP (buf) = gst_ts;
+  GST_BUFFER_CAPS (buf) = generate_caps ();
+  gst_rtp_buffer_set_payload_type (buf, pcmu_payload_type);
+  gst_rtp_buffer_set_marker (buf, marker_bit);
+  gst_rtp_buffer_set_seq (buf, seq_num);
+  gst_rtp_buffer_set_timestamp (buf, rtp_ts);
+  gst_rtp_buffer_set_ssrc (buf, test_ssrc);
+
+  payload = gst_rtp_buffer_get_payload (buf);
+  for (i = 0; i < payload_size; i++)
+    payload[i] = 0xff;
+
+  return buf;
+}
+
+static GstFlowReturn
+test_sink_pad_chain_cb (GstPad * pad, GstBuffer * buffer)
+{
+  TestData *data = gst_pad_get_element_private (pad);
+  g_async_queue_push (data->buf_queue, buffer);
+  return GST_FLOW_OK;
+}
+
+static gboolean
+test_sink_pad_event_cb (GstPad * pad, GstEvent * event)
+{
+  TestData *data = gst_pad_get_element_private (pad);
+  const GstStructure *structure = gst_event_get_structure (event);
+  if (strcmp (gst_structure_get_name (structure), "GstRTPPacketLost") == 0)
+    data->lost_event_count++;
+
+  g_async_queue_push (data->event_queue, event);
+  return TRUE;
+}
+
+static void
+setup_testharness (TestData * data)
+{
+  GstPad *jb_sink_pad, *jb_src_pad;
+
+  // create the testclock
+  data->clock = gst_test_clock_new ();
+  g_assert (data->clock);
+  gst_test_clock_set_time (GST_TEST_CLOCK (data->clock), 0);
+
+  // rig up the jitter buffer
+  data->jitter_buffer = gst_element_factory_make ("gstrtpjitterbuffer", NULL);
+  g_assert (data->jitter_buffer);
+  gst_element_set_clock (data->jitter_buffer, data->clock);
+  g_object_set (data->jitter_buffer, "do-lost", TRUE, NULL);
+  g_assert_cmpint (gst_element_set_state (data->jitter_buffer,
+          GST_STATE_PLAYING), !=, GST_STATE_CHANGE_FAILURE);
+
+  // link in the test source-pad
+  data->test_src_pad = gst_pad_new ("src", GST_PAD_SRC);
+  gst_pad_set_caps (data->test_src_pad, generate_caps ());
+  jb_sink_pad = gst_element_get_pad (data->jitter_buffer, "sink");
+  g_assert_cmpint (gst_pad_link (data->test_src_pad, jb_sink_pad), ==,
+      GST_PAD_LINK_OK);
+  g_assert (gst_pad_set_active (data->test_src_pad, TRUE));
+  gst_object_unref (jb_sink_pad);
+
+  // link in the test sink-pad
+  data->test_sink_pad = gst_pad_new ("sink", GST_PAD_SINK);
+  gst_pad_set_caps (data->test_sink_pad, generate_caps ());
+  gst_pad_set_chain_function (data->test_sink_pad, test_sink_pad_chain_cb);
+  gst_pad_set_event_function (data->test_sink_pad, test_sink_pad_event_cb);
+  jb_src_pad = gst_element_get_pad (data->jitter_buffer, "src");
+  g_assert_cmpint (gst_pad_link (jb_src_pad, data->test_sink_pad), ==,
+      GST_PAD_LINK_OK);
+  g_assert (gst_pad_set_active (data->test_sink_pad, TRUE));
+  gst_object_unref (jb_src_pad);
+
+  // set up the buf and event queues
+  data->buf_queue =
+      g_async_queue_new_full ((GDestroyNotify) gst_mini_object_unref);
+  data->event_queue =
+      g_async_queue_new_full ((GDestroyNotify) gst_mini_object_unref);
+
+  data->lost_event_count = 0;
+  gst_pad_set_element_private (data->test_sink_pad, data);
+}
+
+static void
+destroy_testharness (TestData * data)
+{
+  // clean up
+  g_assert_cmpint (gst_element_set_state (data->jitter_buffer, GST_STATE_NULL),
+      ==, GST_STATE_CHANGE_SUCCESS);
+  gst_object_unref (data->jitter_buffer);
+  data->jitter_buffer = NULL;
+
+  gst_object_unref (data->test_src_pad);
+  data->test_src_pad = NULL;
+
+  gst_object_unref (data->test_sink_pad);
+  data->test_sink_pad = NULL;
+
+  gst_object_unref (data->clock);
+  data->clock = NULL;
+
+  g_async_queue_unref (data->buf_queue);
+  data->buf_queue = NULL;
+
+  g_async_queue_unref (data->event_queue);
+  data->event_queue = NULL;
+
+  data->lost_event_count = 0;
+}
+
+static void
+verify_lost_event (GstEvent * event, guint32 expected_seqnum,
+    GstClockTime expected_timestamp, GstClockTime expected_duration,
+    gboolean expected_late)
+{
+  const GstStructure *s = gst_event_get_structure (event);
+  const GValue *value;
+  guint32 seqnum;
+  GstClockTime timestamp;
+  GstClockTime duration;
+  gboolean late;
+  g_assert (gst_structure_get_uint (s, "seqnum", &seqnum));
+
+  value = gst_structure_get_value (s, "timestamp");
+  g_assert (value && G_VALUE_HOLDS_UINT64 (value));
+  timestamp = g_value_get_uint64 (value);
+
+  value = gst_structure_get_value (s, "duration");
+  g_assert (value && G_VALUE_HOLDS_UINT64 (value));
+  duration = g_value_get_uint64 (value);
+
+  g_assert (gst_structure_get_boolean (s, "late", &late));
+
+  g_assert_cmpint (seqnum, ==, expected_seqnum);
+  g_assert_cmpint (timestamp, ==, expected_timestamp);
+  g_assert_cmpint (duration, ==, expected_duration);
+  g_assert (late == expected_late);
+}
+
+GST_START_TEST (test_only_one_lost_event_on_large_gaps)
+{
+  TestData data;
+  GstTestClockPendingID id;
+  guint64 timeout;
+  GstBuffer *in_buf, *out_buf;
+  GstEvent *out_event;
+  gint jb_latency_ms = 200;
+  guint buffer_size_ms = (payload_size * 1000) / clock_rate;
+
+  setup_testharness (&data);
+  timeout = 20 * G_USEC_PER_SEC;
+
+  g_object_set (data.jitter_buffer, "latency", jb_latency_ms, NULL);
+
+  // push the first buffer in
+  in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0);
+  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 0);
+  g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+
+  // wait for the first buffer to be synced to timestamp + latency
+  g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK
+          (data.clock), &id));
+
+  // increase the time to timestamp + latency and release the wait
+  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock),
+      jb_latency_ms * GST_MSECOND);
+  g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock))
+      == id.clock_id);
+
+  // check for the buffer coming out that was pushed in
+  out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
+  g_assert (out_buf != NULL);
+  g_assert_cmpint (GST_BUFFER_TIMESTAMP (out_buf), ==, 0);
+
+  // move time ahead 10 seconds
+  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_SECOND);
+
+  // wait a bit
+  g_usleep (G_USEC_PER_SEC / 10);
+
+  // check that no buffers have been pushed out and no pending waits
+  g_assert_cmpint (g_async_queue_length (data.buf_queue), ==, 0);
+  g_assert (gst_test_clock_peek_next_pending_id (GST_TEST_CLOCK (data.clock),
+          &id) == FALSE);
+
+  // a buffer now arrives perfectly on time
+  in_buf = generate_test_buffer (10 * GST_SECOND, FALSE, 500, 500 * 160);
+  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_SECOND);
+  g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+
+  // release the wait
+  g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK
+          (data.clock), &id));
+  g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock))
+      == id.clock_id);
+
+  // we should now receive a packet-lost-event for buffers 1 through 489
+  out_event = g_async_queue_timeout_pop (data.event_queue, timeout);
+  g_assert (out_event != NULL);
+  g_assert_cmpint (data.lost_event_count, ==, 1);
+  verify_lost_event (out_event, 1, 1 * GST_MSECOND * 20, GST_MSECOND * 20 * 489,
+      TRUE);
+
+  // churn through sync_times until the new buffer gets pushed out
+  while (g_async_queue_length (data.buf_queue) < 1) {
+    if (gst_test_clock_peek_next_pending_id (GST_TEST_CLOCK (data.clock), &id)) {
+      if (id.time > gst_clock_get_time (data.clock)) {
+        gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), id.time);
+        g_print ("setting time to %" GST_TIME_FORMAT "\n",
+            GST_TIME_ARGS (id.time));
+      }
+      gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock));
+    }
+  }
+
+  out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
+  g_assert (out_buf != NULL);
+  g_assert (GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT));
+  g_assert_cmpint (gst_rtp_buffer_get_seq (out_buf), ==, 500);
+  g_assert_cmpint (GST_BUFFER_TIMESTAMP (out_buf), ==, (10 * GST_SECOND));
+
+  // we get as many lost events as the the number of buffers the jitterbuffer
+  // is able to wait for (+ the one we already got)
+  g_assert_cmpint (data.lost_event_count, ==,
+      jb_latency_ms / buffer_size_ms + 1);
+
+  destroy_testharness (&data);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_two_lost_one_arrives_in_time)
+{
+  TestData data;
+  GstTestClockPendingID id;
+  guint64 timeout;
+  GstBuffer *in_buf, *out_buf;
+  GstEvent *out_event;
+  gint jb_latency_ms = 10;
+  GstClockTime buffer_time;
+  gint b;
+
+  setup_testharness (&data);
+  timeout = 20 * G_USEC_PER_SEC;
+
+  g_object_set (data.jitter_buffer, "latency", jb_latency_ms, NULL);
+
+  // push the first buffer in
+  in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0);
+  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 0);
+  g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+  g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK
+          (data.clock), &id));
+  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock),
+      jb_latency_ms * GST_MSECOND);
+  g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock))
+      == id.clock_id);
+  out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
+  g_assert (out_buf != NULL);
+
+  // push some buffers arriving in perfect time!
+  for (b = 1; b < 3; b++) {
+    buffer_time = b * GST_MSECOND * 20;
+    in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160);
+    gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), buffer_time);
+    g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+
+    // check for the buffer coming out that was pushed in
+    out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
+    g_assert (out_buf != NULL);
+    g_assert_cmpint (GST_BUFFER_TIMESTAMP (out_buf), ==, buffer_time);
+  }
+
+  // hop over 2 packets and make another one (gap of 2)
+  b = 5;
+  buffer_time = b * GST_MSECOND * 20;
+  in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160);
+  g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+
+  // verify that the jitterbuffer now wait for the latest moment it can push
+  // the first lost buffer (buffer 3) out on (buffer-timestamp (60) + latency (10) = 70)
+  g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK
+          (data.clock), &id));
+  g_assert_cmpint (id.time, ==,
+      (3 * GST_MSECOND * 20) + (jb_latency_ms * GST_MSECOND));
+
+  // let the time expire...
+  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), id.time);
+  g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock))
+      == id.clock_id);
+
+  // we should now receive a packet-lost-event for buffer 3
+  out_event = g_async_queue_timeout_pop (data.event_queue, timeout);
+  g_assert (out_event != NULL);
+  g_assert_cmpint (data.lost_event_count, ==, 1);
+  verify_lost_event (out_event, 3, 3 * GST_MSECOND * 20, GST_MSECOND * 20,
+      FALSE);
+
+  // buffer 4 now arrives just in time (time is 70, buffer 4 expires at 90)
+  b = 4;
+  buffer_time = b * GST_MSECOND * 20;
+  in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160);
+  g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+
+  // verify that buffer 4 made it through!
+  out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
+  g_assert (out_buf != NULL);
+  g_assert (GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT));
+  g_assert_cmpint (gst_rtp_buffer_get_seq (out_buf), ==, 4);
+
+  // and see that buffer 5 now arrives in a normal fashion
+  out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
+  g_assert (out_buf != NULL);
+  g_assert (!GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT));
+  g_assert_cmpint (gst_rtp_buffer_get_seq (out_buf), ==, 5);
+
+  // should still have only seen 1 packet lost event
+  g_assert_cmpint (data.lost_event_count, ==, 1);
+
+  destroy_testharness (&data);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_late_packets_still_makes_lost_events)
+{
+  TestData data;
+  GstTestClockPendingID id;
+  guint64 timeout;
+  GstBuffer *in_buf, *out_buf;
+  GstEvent *out_event;
+  gint jb_latency_ms = 10;
+  GstClockTime buffer_time;
+  gint b;
+
+  setup_testharness (&data);
+  timeout = 20 * G_USEC_PER_SEC;
+
+  g_object_set (data.jitter_buffer, "latency", jb_latency_ms, NULL);
+
+  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_SECOND);
+
+  // push the first buffer in
+  in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0);
+  g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+
+  g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK
+          (data.clock), &id));
+  g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock))
+      == id.clock_id);
+  out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
+  g_assert (out_buf != NULL);
+
+  // push some buffers in!
+  for (b = 1; b < 3; b++) {
+    buffer_time = b * GST_MSECOND * 20;
+    in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160);
+    g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+
+    // check for the buffer coming out that was pushed in
+    out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
+    g_assert (out_buf != NULL);
+    g_assert_cmpint (GST_BUFFER_TIMESTAMP (out_buf), ==, buffer_time);
+  }
+
+  // hop over 2 packets and make another one (gap of 2)
+  b = 5;
+  buffer_time = b * GST_MSECOND * 20;
+  in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160);
+  g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+
+  // release the wait
+  g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK
+          (data.clock), &id));
+  g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock))
+      == id.clock_id);
+
+  // we should now receive a packet-lost-event for buffer 3 and 4
+  out_event = g_async_queue_timeout_pop (data.event_queue, timeout);
+  g_assert (out_event != NULL);
+  g_assert_cmpint (data.lost_event_count, ==, 1);
+  verify_lost_event (out_event, 3, 3 * GST_MSECOND * 20, GST_MSECOND * 20 * 2,
+      TRUE);
+
+  // verify that buffer 5 made it through!
+  out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
+  g_assert (out_buf != NULL);
+  g_assert (GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT));
+  g_assert_cmpint (gst_rtp_buffer_get_seq (out_buf), ==, 5);
+
+  // should still have only seen 1 packet lost event
+  g_assert_cmpint (data.lost_event_count, ==, 1);
+
+  destroy_testharness (&data);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_all_packets_are_timestamped_zero)
+{
+  TestData data;
+  GstTestClockPendingID id;
+  guint64 timeout;
+  GstBuffer *in_buf, *out_buf;
+  GstEvent *out_event;
+  gint jb_latency_ms = 10;
+  GstClockTime buffer_time;
+  gint b;
+
+  setup_testharness (&data);
+  timeout = 20 * G_USEC_PER_SEC;
+
+  g_object_set (data.jitter_buffer, "latency", jb_latency_ms, NULL);
+
+  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_SECOND);
+
+  // push the first buffer in
+  in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0);
+  g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+
+  g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK
+          (data.clock), &id));
+  g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock))
+      == id.clock_id);
+  out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
+  g_assert (out_buf != NULL);
+
+  // push some buffers in!
+  for (b = 1; b < 3; b++) {
+    in_buf = generate_test_buffer (0, TRUE, b, 0);
+    g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+
+    // check for the buffer coming out that was pushed in
+    out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
+    g_assert (out_buf != NULL);
+    g_assert_cmpint (GST_BUFFER_TIMESTAMP (out_buf), ==, 0);
+  }
+
+  // hop over 2 packets and make another one (gap of 2)
+  b = 5;
+  in_buf = generate_test_buffer (0, TRUE, b, 0);
+  g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+
+  // release the wait
+  g_assert (gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK
+          (data.clock), &id));
+  g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock))
+      == id.clock_id);
+
+  // we should now receive a packet-lost-event for buffer 3 and 4
+  out_event = g_async_queue_timeout_pop (data.event_queue, timeout);
+  g_assert (out_event != NULL);
+  g_assert_cmpint (data.lost_event_count, ==, 1);
+  verify_lost_event (out_event, 3, 0, 0, TRUE);
+
+  // verify that buffer 5 made it through!
+  out_buf = g_async_queue_timeout_pop (data.buf_queue, timeout);
+  g_assert (out_buf != NULL);
+  g_assert (GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT));
+  g_assert_cmpint (gst_rtp_buffer_get_seq (out_buf), ==, 5);
+
+  // should still have only seen 1 packet lost event
+  g_assert_cmpint (data.lost_event_count, ==, 1);
+
+  destroy_testharness (&data);
+}
+
+GST_END_TEST;
+#endif
 
 static Suite *
 rtpjitterbuffer_suite (void)
@@ -331,6 +840,12 @@ rtpjitterbuffer_suite (void)
   tcase_add_test (tc_chain, test_push_backward_seq);
   tcase_add_test (tc_chain, test_push_unordered);
   tcase_add_test (tc_chain, test_basetime);
+#if 0
+  tcase_add_test (tc_chain, test_only_one_lost_event_on_large_gaps);
+  tcase_add_test (tc_chain, test_two_lost_one_arrives_in_time);
+  tcase_add_test (tc_chain, test_late_packets_still_makes_lost_events);
+  tcase_add_test (tc_chain, test_all_packets_are_timestamped_zero);
+#endif
 
   /* FIXME: test buffer lists */
 
diff --git a/tests/check/elements/rtpmux.c b/tests/check/elements/rtpmux.c
new file mode 100644
index 000000000..2a81294d6
--- /dev/null
+++ b/tests/check/elements/rtpmux.c
@@ -0,0 +1,316 @@
+/* GStreamer
+ *
+ * unit test for rtpmux elements
+ *
+ * Copyright 2009 Collabora Ltd.
+ *  @author: Olivier Crete <olivier.crete@collabora.co.uk>
+ * Copyright 2009 Nokia Corp.
+ *
+ * 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <gst/check/gstcheck.h>
+#include <gst/rtp/gstrtpbuffer.h>
+#include <gst/gst.h>
+
+static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("application/x-rtp"));
+
+static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("application/x-rtp"));
+
+typedef void (*check_cb) (GstPad * pad, int i);
+
+static gboolean
+query_func (GstPad * pad, GstObject * noparent, GstQuery * query)
+{
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_CAPS:
+    {
+      GstCaps **caps = g_object_get_data (G_OBJECT (pad), "caps");
+
+      fail_unless (caps != NULL && *caps != NULL);
+      gst_query_set_caps_result (query, *caps);
+      break;
+    }
+    case GST_QUERY_ACCEPT_CAPS:
+      gst_query_set_accept_caps_result (query, TRUE);
+      break;
+    default:
+      break;
+  }
+
+  return TRUE;
+}
+
+static gboolean
+event_func (GstPad * pad, GstObject * noparent, GstEvent * event)
+{
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_CAPS:
+    {
+      GstCaps *caps;
+      GstCaps **caps2 = g_object_get_data (G_OBJECT (pad), "caps");
+
+      gst_event_parse_caps (event, &caps);
+      fail_unless (caps2 != NULL && *caps2 != NULL);
+      fail_unless (gst_caps_is_fixed (caps));
+      fail_unless (gst_caps_is_fixed (*caps2));
+      fail_unless (gst_caps_is_equal_fixed (caps, *caps2));
+      break;
+    }
+    default:
+      break;
+  }
+
+  gst_event_unref (event);
+
+  return TRUE;
+}
+
+static void
+test_basic (const gchar * elem_name, const gchar * sink2, int count,
+    check_cb cb)
+{
+  GstElement *rtpmux = NULL;
+  GstPad *reqpad1 = NULL;
+  GstPad *reqpad2 = NULL;
+  GstPad *src1 = NULL;
+  GstPad *src2 = NULL;
+  GstPad *sink = NULL;
+  GstBuffer *inbuf = NULL;
+  GstCaps *src1caps = NULL;
+  GstCaps *src2caps = NULL;
+  GstCaps *sinkcaps = NULL;
+  GstCaps *caps;
+  GstSegment segment;
+  int i;
+
+  rtpmux = gst_check_setup_element (elem_name);
+
+  reqpad1 = gst_element_get_request_pad (rtpmux, "sink_1");
+  fail_unless (reqpad1 != NULL);
+  reqpad2 = gst_element_get_request_pad (rtpmux, sink2);
+  fail_unless (reqpad2 != NULL);
+  sink = gst_check_setup_sink_pad_by_name (rtpmux, &sinktemplate, "src");
+
+  src1 = gst_pad_new_from_static_template (&srctemplate, "src");
+  src2 = gst_pad_new_from_static_template (&srctemplate, "src");
+  fail_unless (gst_pad_link (src1, reqpad1) == GST_PAD_LINK_OK);
+  fail_unless (gst_pad_link (src2, reqpad2) == GST_PAD_LINK_OK);
+  gst_pad_set_query_function (src1, query_func);
+  gst_pad_set_query_function (src2, query_func);
+  gst_pad_set_query_function (sink, query_func);
+  gst_pad_set_event_function (sink, event_func);
+  g_object_set_data (G_OBJECT (src1), "caps", &src1caps);
+  g_object_set_data (G_OBJECT (src2), "caps", &src2caps);
+  g_object_set_data (G_OBJECT (sink), "caps", &sinkcaps);
+
+  src1caps = gst_caps_new_simple ("application/x-rtp",
+      "clock-rate", G_TYPE_INT, 1, "ssrc", G_TYPE_UINT, 11, NULL);
+  src2caps = gst_caps_new_simple ("application/x-rtp",
+      "clock-rate", G_TYPE_INT, 2, "ssrc", G_TYPE_UINT, 12, NULL);
+  sinkcaps = gst_caps_new_simple ("application/x-rtp",
+      "clock-rate", G_TYPE_INT, 3, "ssrc", G_TYPE_UINT, 13, NULL);
+
+  caps = gst_pad_peer_query_caps (src1, NULL);
+  fail_unless (gst_caps_is_empty (caps));
+  gst_caps_unref (caps);
+
+  gst_caps_set_simple (src2caps, "clock-rate", G_TYPE_INT, 3, NULL);
+  caps = gst_pad_peer_query_caps (src1, NULL);
+  fail_unless (gst_caps_is_equal (caps, sinkcaps));
+  gst_caps_unref (caps);
+
+  g_object_set (rtpmux, "seqnum-offset", 100, "timestamp-offset", 1000,
+      "ssrc", 55, NULL);
+
+  fail_unless (gst_element_set_state (rtpmux,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS);
+  gst_pad_set_active (sink, TRUE);
+  gst_pad_set_active (src1, TRUE);
+  gst_pad_set_active (src2, TRUE);
+
+  fail_unless (gst_pad_push_event (src1,
+          gst_event_new_stream_start ("stream1")));
+  fail_unless (gst_pad_push_event (src2,
+          gst_event_new_stream_start ("stream2")));
+
+  gst_caps_set_simple (sinkcaps,
+      "payload", G_TYPE_INT, 98, "seqnum-base", G_TYPE_UINT, 100,
+      "clock-base", G_TYPE_UINT, 1000, "ssrc", G_TYPE_UINT, 66, NULL);
+  caps = gst_caps_new_simple ("application/x-rtp",
+      "payload", G_TYPE_INT, 98, "clock-rate", G_TYPE_INT, 3,
+      "seqnum-base", G_TYPE_UINT, 56, "clock-base", G_TYPE_UINT, 57,
+      "ssrc", G_TYPE_UINT, 66, NULL);
+  fail_unless (gst_pad_set_caps (src1, caps));
+
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  segment.start = 100000;
+  fail_unless (gst_pad_push_event (src1, gst_event_new_segment (&segment)));
+  segment.start = 0;
+  fail_unless (gst_pad_push_event (src2, gst_event_new_segment (&segment)));
+
+
+  for (i = 0; i < count; i++) {
+    GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT;
+
+    inbuf = gst_rtp_buffer_new_allocate (10, 0, 0);
+    GST_BUFFER_PTS (inbuf) = i * 1000 + 100000;
+    GST_BUFFER_DURATION (inbuf) = 1000;
+
+    gst_rtp_buffer_map (inbuf, GST_MAP_WRITE, &rtpbuffer);
+
+    gst_rtp_buffer_set_version (&rtpbuffer, 2);
+    gst_rtp_buffer_set_payload_type (&rtpbuffer, 98);
+    gst_rtp_buffer_set_ssrc (&rtpbuffer, 44);
+    gst_rtp_buffer_set_timestamp (&rtpbuffer, 200 + i);
+    gst_rtp_buffer_set_seq (&rtpbuffer, 2000 + i);
+    gst_rtp_buffer_unmap (&rtpbuffer);
+    fail_unless (gst_pad_push (src1, inbuf) == GST_FLOW_OK);
+
+    if (buffers)
+      fail_unless (GST_BUFFER_PTS (buffers->data) == i * 1000, "%lld",
+          GST_BUFFER_PTS (buffers->data));
+
+    cb (src2, i);
+
+    g_list_foreach (buffers, (GFunc) gst_buffer_unref, NULL);
+    g_list_free (buffers);
+    buffers = NULL;
+  }
+
+
+  gst_pad_set_active (sink, FALSE);
+  gst_pad_set_active (src1, FALSE);
+  gst_pad_set_active (src2, FALSE);
+  fail_unless (gst_element_set_state (rtpmux,
+          GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS);
+  gst_check_teardown_pad_by_name (rtpmux, "src");
+  gst_object_unref (reqpad1);
+  gst_object_unref (reqpad2);
+  gst_check_teardown_pad_by_name (rtpmux, "sink_1");
+  gst_check_teardown_pad_by_name (rtpmux, sink2);
+  gst_element_release_request_pad (rtpmux, reqpad1);
+  gst_element_release_request_pad (rtpmux, reqpad2);
+
+  gst_caps_unref (caps);
+  gst_caps_replace (&src1caps, NULL);
+  gst_caps_replace (&src2caps, NULL);
+  gst_caps_replace (&sinkcaps, NULL);
+
+  gst_check_teardown_element (rtpmux);
+}
+
+static void
+basic_check_cb (GstPad * pad, int i)
+{
+  GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT;
+  fail_unless (buffers && g_list_length (buffers) == 1);
+
+  gst_rtp_buffer_map (buffers->data, GST_MAP_READ, &rtpbuffer);
+  fail_unless (gst_rtp_buffer_get_ssrc (&rtpbuffer) == 55);
+  fail_unless (gst_rtp_buffer_get_timestamp (&rtpbuffer) ==
+      200 - 57 + 1000 + i);
+  fail_unless (gst_rtp_buffer_get_seq (&rtpbuffer) == 100 + 1 + i);
+  gst_rtp_buffer_unmap (&rtpbuffer);
+}
+
+
+GST_START_TEST (test_rtpmux_basic)
+{
+  test_basic ("rtpmux", "sink_2", 10, basic_check_cb);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_rtpdtmfmux_basic)
+{
+  test_basic ("rtpdtmfmux", "sink_2", 10, basic_check_cb);
+}
+
+GST_END_TEST;
+
+static void
+lock_check_cb (GstPad * pad, int i)
+{
+  GstBuffer *inbuf;
+
+  if (i % 2) {
+    fail_unless (buffers == NULL);
+  } else {
+    GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT;
+
+    fail_unless (buffers && g_list_length (buffers) == 1);
+    gst_rtp_buffer_map (buffers->data, GST_MAP_READ, &rtpbuffer);
+    fail_unless (gst_rtp_buffer_get_ssrc (&rtpbuffer) == 55);
+    fail_unless (gst_rtp_buffer_get_timestamp (&rtpbuffer) ==
+        200 - 57 + 1000 + i);
+    fail_unless (gst_rtp_buffer_get_seq (&rtpbuffer) == 100 + 1 + i);
+    gst_rtp_buffer_unmap (&rtpbuffer);
+
+    inbuf = gst_rtp_buffer_new_allocate (10, 0, 0);
+    GST_BUFFER_PTS (inbuf) = i * 1000 + 500;
+    GST_BUFFER_DURATION (inbuf) = 1000;
+    gst_rtp_buffer_map (inbuf, GST_MAP_WRITE, &rtpbuffer);
+    gst_rtp_buffer_set_version (&rtpbuffer, 2);
+    gst_rtp_buffer_set_payload_type (&rtpbuffer, 98);
+    gst_rtp_buffer_set_ssrc (&rtpbuffer, 44);
+    gst_rtp_buffer_set_timestamp (&rtpbuffer, 200 + i);
+    gst_rtp_buffer_set_seq (&rtpbuffer, 2000 + i);
+    gst_rtp_buffer_unmap (&rtpbuffer);
+    fail_unless (gst_pad_push (pad, inbuf) == GST_FLOW_OK);
+
+
+    g_list_foreach (buffers, (GFunc) gst_buffer_unref, NULL);
+    g_list_free (buffers);
+    buffers = NULL;
+  }
+}
+
+GST_START_TEST (test_rtpdtmfmux_lock)
+{
+  test_basic ("rtpdtmfmux", "priority_sink_2", 10, lock_check_cb);
+}
+
+GST_END_TEST;
+
+static Suite *
+rtpmux_suite (void)
+{
+  Suite *s = suite_create ("rtpmux");
+  TCase *tc_chain;
+
+  tc_chain = tcase_create ("rtpmux_basic");
+  tcase_add_test (tc_chain, test_rtpmux_basic);
+  suite_add_tcase (s, tc_chain);
+
+  tc_chain = tcase_create ("rtpdtmfmux_basic");
+  tcase_add_test (tc_chain, test_rtpdtmfmux_basic);
+  suite_add_tcase (s, tc_chain);
+
+  tc_chain = tcase_create ("rtpdtmfmux_lock");
+  tcase_add_test (tc_chain, test_rtpdtmfmux_lock);
+  suite_add_tcase (s, tc_chain);
+
+  return s;
+}
+
+GST_CHECK_MAIN (rtpmux)
diff --git a/tests/check/elements/shapewipe.c b/tests/check/elements/shapewipe.c
index 4f7cb09ea..40496009f 100644
--- a/tests/check/elements/shapewipe.c
+++ b/tests/check/elements/shapewipe.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -76,7 +76,7 @@ on_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 
 GST_START_TEST (test_general)
 {
-  GstElement *shapewipe;
+  GstElement *shapewipe, *videosrc, *masksrc, *sink, *bin;
   GstPad *p;
   GstCaps *caps;
   GstBuffer *mask, *input;
@@ -84,28 +84,33 @@ GST_START_TEST (test_general)
   guint8 *data;
   GstMapInfo map;
 
+  bin = gst_bin_new ("myshapewipe");
+  videosrc = gst_bin_new ("myvideosrc");
+  masksrc = gst_bin_new ("mymasksrc");
+  sink = gst_bin_new ("mysink");
+  shapewipe = gst_element_factory_make ("shapewipe", NULL);
+  fail_unless (shapewipe != NULL);
+  gst_bin_add_many (GST_BIN (bin), videosrc, masksrc, shapewipe, sink, NULL);
+
   myvideosrcpad =
       gst_pad_new_from_static_template (&videosrctemplate, "videosrc");
+  gst_element_add_pad (videosrc, myvideosrcpad);
   gst_pad_set_active (myvideosrcpad, TRUE);
   caps = gst_caps_from_string (SHAPEWIPE_VIDEO_CAPS_STRING);
-  gst_pad_set_caps (myvideosrcpad, caps);
+  gst_check_setup_events (myvideosrcpad, videosrc, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
   mymasksrcpad = gst_pad_new_from_static_template (&masksrctemplate, "masksrc");
+  gst_element_add_pad (masksrc, mymasksrcpad);
   gst_pad_set_active (mymasksrcpad, TRUE);
   caps = gst_caps_from_string (SHAPEWIPE_MASK_CAPS_STRING);
-  gst_pad_set_caps (mymasksrcpad, caps);
+  gst_check_setup_events (mymasksrcpad, masksrc, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
   mysinkpad = gst_pad_new_from_static_template (&sinktemplate, "sink");
+  gst_element_add_pad (sink, mysinkpad);
   gst_pad_set_chain_function (mysinkpad, on_chain);
   gst_pad_set_active (mysinkpad, TRUE);
-  caps = gst_caps_from_string (SHAPEWIPE_VIDEO_CAPS_STRING);
-  gst_pad_set_caps (mysinkpad, caps);
-  gst_caps_unref (caps);
-
-  shapewipe = gst_element_factory_make ("shapewipe", NULL);
-  fail_unless (shapewipe != NULL);
 
   p = gst_element_get_static_pad (shapewipe, "video_sink");
   fail_unless (gst_pad_link (myvideosrcpad, p) == GST_PAD_LINK_OK);
@@ -117,13 +122,10 @@ GST_START_TEST (test_general)
   fail_unless (gst_pad_link (p, mysinkpad) == GST_PAD_LINK_OK);
   gst_object_unref (p);
 
-  fail_unless (gst_element_set_state (shapewipe,
+  fail_unless (gst_element_set_state (bin,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS);
 
   mask = gst_buffer_new_and_alloc (400 * 400);
-  caps = gst_caps_from_string (SHAPEWIPE_MASK_CAPS_STRING);
-  gst_pad_set_caps (mymasksrcpad, caps);
-  gst_caps_unref (caps);
   gst_buffer_map (mask, &map, GST_MAP_WRITE);
   data = map.data;
   for (i = 0; i < 400; i++) {
@@ -144,9 +146,6 @@ GST_START_TEST (test_general)
   fail_unless (gst_pad_push (mymasksrcpad, mask) == GST_FLOW_OK);
 
   input = gst_buffer_new_and_alloc (400 * 400 * 4);
-  caps = gst_caps_from_string (SHAPEWIPE_VIDEO_CAPS_STRING);
-  gst_pad_set_caps (myvideosrcpad, caps);
-  gst_caps_unref (caps);
   gst_buffer_map (input, &map, GST_MAP_WRITE);
   data = map.data;
   for (i = 0; i < 400; i++) {
@@ -284,7 +283,7 @@ GST_START_TEST (test_general)
 
   gst_buffer_unref (input);
 
-  fail_unless (gst_element_set_state (shapewipe,
+  fail_unless (gst_element_set_state (bin,
           GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS);
 
   p = gst_element_get_static_pad (shapewipe, "video_sink");
@@ -297,10 +296,7 @@ GST_START_TEST (test_general)
   fail_unless (gst_pad_unlink (p, mysinkpad));
   gst_object_unref (p);
 
-  gst_object_unref (myvideosrcpad);
-  gst_object_unref (mymasksrcpad);
-  gst_object_unref (mysinkpad);
-  gst_object_unref (shapewipe);
+  gst_object_unref (bin);
 }
 
 GST_END_TEST;
diff --git a/tests/check/elements/souphttpsrc.c b/tests/check/elements/souphttpsrc.c
index 0b3cd07ff..95053d467 100644
--- a/tests/check/elements/souphttpsrc.c
+++ b/tests/check/elements/souphttpsrc.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -53,7 +53,7 @@ static const char *realm = "SOUPHTTPSRC_REALM";
 static const char *basic_auth_path = "/basic_auth";
 static const char *digest_auth_path = "/digest_auth";
 
-static int run_server (guint * http_port, guint * https_port);
+static gboolean run_server (guint * http_port, guint * https_port);
 static void stop_server (void);
 
 static void
@@ -161,6 +161,11 @@ run_test (const char *format, ...)
     else if (g_str_has_suffix (err->message, "Found"))
       rc = 302;
     GST_INFO ("debug: %s", debug);
+    /* should not've gotten any output in case of a 40x error. Wait a bit
+     * to give streaming thread a chance to push out a buffer and triggering
+     * our callback before shutting down the pipeline */
+    g_usleep (G_USEC_PER_SEC / 2);
+    fail_unless (buf == NULL);
     g_error_free (err);
     g_free (debug);
     gst_message_unref (msg);
@@ -204,6 +209,8 @@ GST_END_TEST;
 GST_START_TEST (test_not_found)
 {
   fail_unless (run_test ("http://127.0.0.1:%u/404", http_port) == 404);
+  fail_unless (run_test ("http://127.0.0.1:%u/404-with-data",
+          http_port) == 404);
 }
 
 GST_END_TEST;
@@ -438,34 +445,46 @@ done:
 
 GST_END_TEST;
 
+static SoupServer *server;      /* NULL */
+static SoupServer *ssl_server;  /* NULL */
+
 static Suite *
 souphttpsrc_suite (void)
 {
+  TCase *tc_chain, *tc_internet;
   Suite *s;
 
-  TCase *tc_chain, *tc_internet;
+  /* we don't support exceptions from the proxy, so just unset the environment
+   * variable - in case it's set in the test environment it would otherwise
+   * prevent us from connecting to localhost (like jenkins.qa.ubuntu.com) */
+  g_unsetenv ("http_proxy");
 
   s = suite_create ("souphttpsrc");
   tc_chain = tcase_create ("general");
   tc_internet = tcase_create ("internet");
 
   suite_add_tcase (s, tc_chain);
-  run_server (&http_port, &https_port);
-  atexit (stop_server);
-  tcase_add_test (tc_chain, test_first_buffer_has_offset);
-  tcase_add_test (tc_chain, test_redirect_yes);
-  tcase_add_test (tc_chain, test_redirect_no);
-  tcase_add_test (tc_chain, test_not_found);
-  tcase_add_test (tc_chain, test_forbidden);
-  tcase_add_test (tc_chain, test_cookies);
-  tcase_add_test (tc_chain, test_good_user_basic_auth);
-  tcase_add_test (tc_chain, test_bad_user_basic_auth);
-  tcase_add_test (tc_chain, test_bad_password_basic_auth);
-  tcase_add_test (tc_chain, test_good_user_digest_auth);
-  tcase_add_test (tc_chain, test_bad_user_digest_auth);
-  tcase_add_test (tc_chain, test_bad_password_digest_auth);
-  if (soup_ssl_supported)
-    tcase_add_test (tc_chain, test_https);
+  if (run_server (&http_port, &https_port)) {
+    atexit (stop_server);
+    tcase_add_test (tc_chain, test_first_buffer_has_offset);
+    tcase_add_test (tc_chain, test_redirect_yes);
+    tcase_add_test (tc_chain, test_redirect_no);
+    tcase_add_test (tc_chain, test_not_found);
+    tcase_add_test (tc_chain, test_forbidden);
+    tcase_add_test (tc_chain, test_cookies);
+    tcase_add_test (tc_chain, test_good_user_basic_auth);
+    tcase_add_test (tc_chain, test_bad_user_basic_auth);
+    tcase_add_test (tc_chain, test_bad_password_basic_auth);
+    tcase_add_test (tc_chain, test_good_user_digest_auth);
+    tcase_add_test (tc_chain, test_bad_user_digest_auth);
+    tcase_add_test (tc_chain, test_bad_password_digest_auth);
+
+    if (ssl_server != NULL)
+      tcase_add_test (tc_chain, test_https);
+  } else {
+    g_print ("Skipping 12 souphttpsrc tests, couldn't start or connect to "
+        "local http server\n");
+  }
 
   suite_add_tcase (s, tc_internet);
   tcase_set_timeout (tc_internet, 250);
@@ -479,6 +498,7 @@ GST_CHECK_MAIN (souphttpsrc);
 static void
 do_get (SoupMessage * msg, const char *path)
 {
+  gboolean send_error_doc = FALSE;
   char *uri;
 
   int buflen = 4096;
@@ -498,6 +518,10 @@ do_get (SoupMessage * msg, const char *path)
     status = SOUP_STATUS_FORBIDDEN;
   else if (!strcmp (path, "/404"))
     status = SOUP_STATUS_NOT_FOUND;
+  else if (!strcmp (path, "/404-with-data")) {
+    status = SOUP_STATUS_NOT_FOUND;
+    send_error_doc = TRUE;
+  }
 
   if (SOUP_STATUS_IS_REDIRECTION (status)) {
     char *redir_uri;
@@ -506,7 +530,7 @@ do_get (SoupMessage * msg, const char *path)
     soup_message_headers_append (msg->response_headers, "Location", redir_uri);
     g_free (redir_uri);
   }
-  if (status != SOUP_STATUS_OK)
+  if (status != SOUP_STATUS_OK && !send_error_doc)
     goto leave;
 
   if (msg->method == SOUP_METHOD_GET) {
@@ -560,10 +584,7 @@ server_callback (SoupServer * server, SoupMessage * msg,
   GST_DEBUG ("  -> %d %s", msg->status_code, msg->reason_phrase);
 }
 
-static SoupServer *server;      /* NULL */
-static SoupServer *ssl_server;  /* NULL */
-
-int
+static gboolean
 run_server (guint * http_port, guint * https_port)
 {
   guint port = SOUP_ADDRESS_ANY_PORT;
@@ -575,7 +596,8 @@ run_server (guint * http_port, guint * https_port)
   SoupAuthDomain *domain = NULL;
 
   if (server_running)
-    return 0;
+    return TRUE;
+
   server_running = 1;
 
   *http_port = *https_port = 0;
@@ -583,7 +605,7 @@ run_server (guint * http_port, guint * https_port)
   server = soup_server_new (SOUP_SERVER_PORT, port, NULL);
   if (!server) {
     GST_DEBUG ("Unable to bind to server port %u", port);
-    return 1;
+    return FALSE;
   }
   *http_port = soup_server_get_port (server);
   GST_INFO ("HTTP server listening on port %u", *http_port);
@@ -605,17 +627,50 @@ run_server (guint * http_port, guint * https_port)
         SOUP_SERVER_SSL_CERT_FILE, ssl_cert_file,
         SOUP_SERVER_SSL_KEY_FILE, ssl_key_file, NULL);
 
-    if (!ssl_server) {
-      GST_DEBUG ("Unable to bind to SSL server port %u", ssl_port);
-      return 1;
+    if (ssl_server) {
+      *https_port = soup_server_get_port (ssl_server);
+      GST_INFO ("HTTPS server listening on port %u", *https_port);
+      soup_server_add_handler (ssl_server, NULL, server_callback, NULL, NULL);
+      soup_server_run_async (ssl_server);
+    }
+  }
+
+  /* check if we can connect to our local http server */
+  {
+    GSocketConnection *conn;
+    GSocketClient *client;
+
+    client = g_socket_client_new ();
+    g_socket_client_set_timeout (client, 2);
+    conn = g_socket_client_connect_to_host (client, "127.0.0.1", *http_port,
+        NULL, NULL);
+    if (conn == NULL) {
+      GST_INFO ("Couldn't connect to http server 127.0.0.1:%u", *http_port);
+      g_object_unref (client);
+      stop_server ();
+      return FALSE;
+    }
+    g_object_unref (conn);
+
+    if (ssl_server == NULL)
+      goto skip_https_check;
+
+    conn = g_socket_client_connect_to_host (client, "127.0.0.1", *https_port,
+        NULL, NULL);
+    if (conn == NULL) {
+      GST_INFO ("Couldn't connect to https server 127.0.0.1:%u", *https_port);
+      g_object_unref (client);
+      stop_server ();
+      return FALSE;
     }
-    *https_port = soup_server_get_port (ssl_server);
-    GST_INFO ("HTTPS server listening on port %u", *https_port);
-    soup_server_add_handler (ssl_server, NULL, server_callback, NULL, NULL);
-    soup_server_run_async (ssl_server);
+    g_object_unref (conn);
+
+  skip_https_check:
+
+    g_object_unref (client);
   }
 
-  return 0;
+  return TRUE;
 }
 
 static void
diff --git a/tests/check/elements/spectrum.c b/tests/check/elements/spectrum.c
index ff3d03005..e562e72d8 100644
--- a/tests/check/elements/spectrum.c
+++ b/tests/check/elements/spectrum.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -86,9 +86,10 @@ static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
 
 /* takes over reference for outcaps */
 static GstElement *
-setup_spectrum (void)
+setup_spectrum (const gchar * caps_str)
 {
   GstElement *spectrum;
+  GstCaps *caps;
 
   GST_DEBUG ("setup_spectrum");
   spectrum = gst_check_setup_element ("spectrum");
@@ -97,6 +98,10 @@ setup_spectrum (void)
   gst_pad_set_active (mysrcpad, TRUE);
   gst_pad_set_active (mysinkpad, TRUE);
 
+  caps = gst_caps_from_string (caps_str);
+  gst_check_setup_events (mysrcpad, spectrum, caps, GST_FORMAT_TIME);
+  gst_caps_unref (caps);
+
   return spectrum;
 }
 
@@ -122,7 +127,6 @@ GST_START_TEST (test_int16)
   GstElement *spectrum;
   GstBuffer *inbuffer, *outbuffer;
   GstBus *bus;
-  GstCaps *caps;
   GstMessage *message;
   const GstStructure *structure;
   int i, j;
@@ -132,7 +136,7 @@ GST_START_TEST (test_int16)
   GstClockTime endtime;
   gfloat level;
 
-  spectrum = setup_spectrum ();
+  spectrum = setup_spectrum (SPECT_CAPS_STRING_S16);
   g_object_set (spectrum, "post-messages", TRUE, "interval", GST_SECOND / 100,
       "bands", SPECT_BANDS, "threshold", -80, NULL);
 
@@ -155,10 +159,6 @@ GST_START_TEST (test_int16)
     ++data;
   }
   gst_buffer_unmap (inbuffer, &map);
-
-  caps = gst_caps_from_string (SPECT_CAPS_STRING_S16);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
   /* create a bus to get the spectrum message on */
@@ -227,7 +227,6 @@ GST_START_TEST (test_int32)
   GstElement *spectrum;
   GstBuffer *inbuffer, *outbuffer;
   GstBus *bus;
-  GstCaps *caps;
   GstMessage *message;
   const GstStructure *structure;
   int i, j;
@@ -237,7 +236,7 @@ GST_START_TEST (test_int32)
   GstClockTime endtime;
   gfloat level;
 
-  spectrum = setup_spectrum ();
+  spectrum = setup_spectrum (SPECT_CAPS_STRING_S32);
   g_object_set (spectrum, "post-messages", TRUE, "interval", GST_SECOND / 100,
       "bands", SPECT_BANDS, "threshold", -80, NULL);
 
@@ -260,10 +259,6 @@ GST_START_TEST (test_int32)
     ++data;
   }
   gst_buffer_unmap (inbuffer, &map);
-
-  caps = gst_caps_from_string (SPECT_CAPS_STRING_S32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
   /* create a bus to get the spectrum message on */
@@ -332,7 +327,6 @@ GST_START_TEST (test_float32)
   GstElement *spectrum;
   GstBuffer *inbuffer, *outbuffer;
   GstBus *bus;
-  GstCaps *caps;
   GstMessage *message;
   const GstStructure *structure;
   int i, j;
@@ -342,7 +336,7 @@ GST_START_TEST (test_float32)
   GstClockTime endtime;
   gfloat level;
 
-  spectrum = setup_spectrum ();
+  spectrum = setup_spectrum (SPECT_CAPS_STRING_F32);
   g_object_set (spectrum, "post-messages", TRUE, "interval", GST_SECOND / 100,
       "bands", SPECT_BANDS, "threshold", -80, NULL);
 
@@ -365,10 +359,6 @@ GST_START_TEST (test_float32)
     ++data;
   }
   gst_buffer_unmap (inbuffer, &map);
-
-  caps = gst_caps_from_string (SPECT_CAPS_STRING_F32);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
   /* create a bus to get the spectrum message on */
@@ -437,7 +427,6 @@ GST_START_TEST (test_float64)
   GstElement *spectrum;
   GstBuffer *inbuffer, *outbuffer;
   GstBus *bus;
-  GstCaps *caps;
   GstMessage *message;
   const GstStructure *structure;
   int i, j;
@@ -447,7 +436,7 @@ GST_START_TEST (test_float64)
   GstClockTime endtime;
   gfloat level;
 
-  spectrum = setup_spectrum ();
+  spectrum = setup_spectrum (SPECT_CAPS_STRING_F64);
   g_object_set (spectrum, "post-messages", TRUE, "interval", GST_SECOND / 100,
       "bands", SPECT_BANDS, "threshold", -80, NULL);
 
@@ -470,10 +459,6 @@ GST_START_TEST (test_float64)
     ++data;
   }
   gst_buffer_unmap (inbuffer, &map);
-
-  caps = gst_caps_from_string (SPECT_CAPS_STRING_F64);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
-  gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
   /* create a bus to get the spectrum message on */
diff --git a/tests/check/elements/sunaudio.c b/tests/check/elements/sunaudio.c
index 30b569aa0..834e7cbb7 100644
--- a/tests/check/elements/sunaudio.c
+++ b/tests/check/elements/sunaudio.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/elements/udpsink.c b/tests/check/elements/udpsink.c
index 57603ec5c..d3f03f118 100644
--- a/tests/check/elements/udpsink.c
+++ b/tests/check/elements/udpsink.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include <gst/check/gstcheck.h>
 #include <gst/base/gstbasesink.h>
diff --git a/tests/check/elements/udpsrc.c b/tests/check/elements/udpsrc.c
index 3361e7ec0..1a0ab3cae 100644
--- a/tests/check/elements/udpsrc.c
+++ b/tests/check/elements/udpsrc.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include <gst/check/gstcheck.h>
 #include <gio/gio.h>
diff --git a/tests/check/elements/videocrop.c b/tests/check/elements/videocrop.c
index 9baaafba2..d7bfdfad4 100644
--- a/tests/check/elements/videocrop.c
+++ b/tests/check/elements/videocrop.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -160,6 +160,7 @@ typedef struct
   GstElement *src;
   GstElement *filter;
   GstElement *crop;
+  GstElement *filter2;
   GstElement *sink;
   GstBuffer *last_buf;
   GstCaps *last_caps;
@@ -190,12 +191,16 @@ videocrop_test_cropping_init_context (GstVideoCropTestContext * ctx)
   fail_unless (ctx->filter != NULL, "Failed to create capsfilter element");
   ctx->crop = gst_element_factory_make ("videocrop", "crop");
   fail_unless (ctx->crop != NULL, "Failed to create videocrop element");
+  ctx->filter2 = gst_element_factory_make ("capsfilter", "filter2");
+  fail_unless (ctx->filter2 != NULL,
+      "Failed to create second capsfilter element");
   ctx->sink = gst_element_factory_make ("fakesink", "sink");
   fail_unless (ctx->sink != NULL, "Failed to create fakesink element");
 
   gst_bin_add_many (GST_BIN (ctx->pipeline), ctx->src, ctx->filter,
-      ctx->crop, ctx->sink, NULL);
-  gst_element_link_many (ctx->src, ctx->filter, ctx->crop, ctx->sink, NULL);
+      ctx->crop, ctx->filter2, ctx->sink, NULL);
+  gst_element_link_many (ctx->src, ctx->filter, ctx->crop, ctx->filter2,
+      ctx->sink, NULL);
 
   /* set pattern to 'red' - for our purposes it doesn't matter anyway */
   g_object_set (ctx->src, "pattern", 4, NULL);
@@ -225,13 +230,15 @@ typedef void (*GstVideoCropTestBufferFunc) (GstBuffer * buffer, GstCaps * caps);
 
 static void
 videocrop_test_cropping (GstVideoCropTestContext * ctx, GstCaps * in_caps,
-    gint left, gint right, gint top, gint bottom,
+    GstCaps * out_caps, gint left, gint right, gint top, gint bottom,
     GstVideoCropTestBufferFunc func)
 {
-  GST_LOG ("lrtb = %03u %03u %03u %03u, caps = %" GST_PTR_FORMAT, left, right,
-      top, bottom, in_caps);
+  GST_LOG ("lrtb = %03u %03u %03u %03u, in_caps = %" GST_PTR_FORMAT
+      ", out_caps = %" GST_PTR_FORMAT, left, right, top, bottom, in_caps,
+      out_caps);
 
   g_object_set (ctx->filter, "caps", in_caps, NULL);
+  g_object_set (ctx->filter2, "caps", out_caps, NULL);
 
   g_object_set (ctx->crop, "left", left, "right", right, "top", top,
       "bottom", bottom, NULL);
@@ -345,11 +352,12 @@ GST_START_TEST (test_crop_to_1x1)
     gst_structure_set (s, "width", G_TYPE_INT, 160,
         "height", G_TYPE_INT, 160, NULL);
 
-    videocrop_test_cropping (&ctx, caps, 159, 0, 159, 0, check_1x1_buffer);
+    videocrop_test_cropping (&ctx, caps, NULL, 159, 0, 159, 0,
+        check_1x1_buffer);
     /* commented out because they don't really add anything useful check-wise:
-       videocrop_test_cropping (&ctx, caps, 0, 159, 0, 159, check_1x1_buffer);
-       videocrop_test_cropping (&ctx, caps, 159, 0, 0, 159, check_1x1_buffer);
-       videocrop_test_cropping (&ctx, caps, 0, 159, 159, 0, check_1x1_buffer);
+       videocrop_test_cropping (&ctx, caps, NULL, 0, 159, 0, 159, check_1x1_buffer);
+       videocrop_test_cropping (&ctx, caps, NULL, 159, 0, 0, 159, check_1x1_buffer);
+       videocrop_test_cropping (&ctx, caps, NULL, 0, 159, 159, 0, check_1x1_buffer);
      */
     gst_caps_unref (caps);
   }
@@ -397,7 +405,7 @@ GST_START_TEST (test_cropping)
     GST_INFO ("testing format: %" GST_PTR_FORMAT, caps);
 
     for (i = 0; i < G_N_ELEMENTS (sizes_to_try); ++i) {
-      GstCaps *in_caps;
+      GstCaps *in_caps, *out_caps;
 
       GST_INFO (" - %d x %d", sizes_to_try[i].width, sizes_to_try[i].height);
 
@@ -405,29 +413,51 @@ GST_START_TEST (test_cropping)
           "height", G_TYPE_INT, sizes_to_try[i].height, NULL);
       in_caps = gst_caps_copy (caps);
 
-      videocrop_test_cropping (&ctx, in_caps, 0, 0, 0, 0, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 1, 0, 0, 0, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 0, 1, 0, 0, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 0, 0, 1, 0, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 0, 0, 0, 1, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 63, 0, 0, 0, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 0, 63, 0, 0, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 0, 0, 63, 0, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 0, 0, 0, 63, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 63, 0, 0, 1, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 0, 63, 1, 0, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 0, 1, 63, 0, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 1, 0, 0, 63, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 0, 0, 0, 0, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 32, 0, 0, 128, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 0, 32, 128, 0, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 0, 128, 32, 0, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 128, 0, 0, 32, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 1, 1, 1, 1, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 63, 63, 63, 63, NULL);
-      videocrop_test_cropping (&ctx, in_caps, 64, 64, 64, 64, NULL);
+      gst_structure_set (s, "width", G_TYPE_INT, 1, "height", G_TYPE_INT, 1,
+          NULL);
+      out_caps = gst_caps_copy (caps);
+
+      videocrop_test_cropping (&ctx, in_caps, NULL, 0, 0, 0, 0, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 1, 0, 0, 0, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 0, 1, 0, 0, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 0, 0, 1, 0, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 0, 0, 0, 1, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 63, 0, 0, 0, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 0, 63, 0, 0, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 0, 0, 63, 0, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 0, 0, 0, 63, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 63, 0, 0, 1, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 0, 63, 1, 0, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 0, 1, 63, 0, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 1, 0, 0, 63, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 0, 0, 0, 0, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 32, 0, 0, 128, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 0, 32, 128, 0, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 0, 128, 32, 0, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 128, 0, 0, 32, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 1, 1, 1, 1, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 63, 63, 63, 63, NULL);
+      videocrop_test_cropping (&ctx, in_caps, NULL, 64, 64, 64, 64, NULL);
+
+      /* Dynamic cropping */
+      videocrop_test_cropping (&ctx, in_caps, out_caps, -1, -1, -1, -1, NULL);
+      videocrop_test_cropping (&ctx, in_caps, out_caps, 0, -1, -1, -1, NULL);
+      videocrop_test_cropping (&ctx, in_caps, out_caps, -1, 0, -1, -1, NULL);
+      videocrop_test_cropping (&ctx, in_caps, out_caps, -1, -1, 0, -1, NULL);
+      videocrop_test_cropping (&ctx, in_caps, out_caps, -1, -1, -1, 0, NULL);
+      videocrop_test_cropping (&ctx, in_caps, out_caps, 10, -1, 10, -1, NULL);
+      videocrop_test_cropping (&ctx, in_caps, out_caps, -1, 10, -1, 10, NULL);
+      videocrop_test_cropping (&ctx, in_caps, out_caps,
+          sizes_to_try[i].width - 1, -1, -1, -1, NULL);
+      videocrop_test_cropping (&ctx, in_caps, out_caps, -1,
+          sizes_to_try[i].width - 1, -1, -1, NULL);
+      videocrop_test_cropping (&ctx, in_caps, out_caps, -1, -1,
+          sizes_to_try[i].height - 1, -1, NULL);
+      videocrop_test_cropping (&ctx, in_caps, out_caps, -1, -1, -1,
+          sizes_to_try[i].height - 1, NULL);
 
       gst_caps_unref (in_caps);
+      gst_caps_unref (out_caps);
     }
 
     gst_caps_unref (caps);
diff --git a/tests/check/elements/videofilter.c b/tests/check/elements/videofilter.c
index 25e33c12a..2b5ae565c 100644
--- a/tests/check/elements/videofilter.c
+++ b/tests/check/elements/videofilter.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -88,12 +88,12 @@ check_filter_caps (const gchar * name, GstCaps * caps, gint size,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
 
+  gst_check_setup_events (mysrcpad, filter, caps, GST_FORMAT_TIME);
+
   /* ensure segment (format) properly setup */
   gst_segment_init (&segment, GST_FORMAT_TIME);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
 
-  gst_pad_set_caps (mysrcpad, caps);
-
   for (i = 0; i < num_buffers; ++i) {
     inbuffer = gst_buffer_new_and_alloc (size);
     /* makes valgrind's memcheck happier */
diff --git a/tests/check/elements/videomixer.c b/tests/check/elements/videomixer.c
new file mode 100644
index 000000000..d2de07a72
--- /dev/null
+++ b/tests/check/elements/videomixer.c
@@ -0,0 +1,1059 @@
+/* GStreamer
+ *
+ * unit test for videmixer
+ *
+ * Copyright (C) <2005> Thomas Vander Stichele <thomas at apestaart dot org>
+ * Copyright (C) <2013> 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifdef HAVE_VALGRIND
+# include <valgrind/valgrind.h>
+#endif
+
+#include <unistd.h>
+
+#include <gst/check/gstcheck.h>
+#include <gst/check/gstconsistencychecker.h>
+#include <gst/base/gstbasesrc.h>
+
+#define VIDEO_CAPS_STRING               \
+    "video/x-raw, "                 \
+    "width = (int) 320, "               \
+    "height = (int) 240, "              \
+    "framerate = (fraction) 25/1 , "    \
+    "format = (string) I420"
+
+static GMainLoop *main_loop;
+
+/* make sure downstream gets a CAPS event before buffers are sent */
+GST_START_TEST (test_caps)
+{
+  GstElement *pipeline, *src, *videomixer, *sink;
+  GstStateChangeReturn state_res;
+  GstCaps *caps;
+  GstPad *pad;
+
+  /* build pipeline */
+  pipeline = gst_pipeline_new ("pipeline");
+
+  src = gst_element_factory_make ("videotestsrc", "src1");
+  videomixer = gst_element_factory_make ("videomixer", "videomixer");
+  sink = gst_element_factory_make ("fakesink", "sink");
+  gst_bin_add_many (GST_BIN (pipeline), src, videomixer, sink, NULL);
+
+  fail_unless (gst_element_link_many (src, videomixer, sink, NULL));
+
+  /* prepare playing */
+  state_res = gst_element_set_state (pipeline, GST_STATE_PAUSED);
+  fail_unless_equals_int (state_res, GST_STATE_CHANGE_ASYNC);
+
+  /* wait for preroll */
+  state_res = gst_element_get_state (pipeline, NULL, NULL, GST_CLOCK_TIME_NONE);
+  fail_unless_equals_int (state_res, GST_STATE_CHANGE_SUCCESS);
+
+  /* check caps on fakesink */
+  pad = gst_element_get_static_pad (sink, "sink");
+  caps = gst_pad_get_current_caps (pad);
+  fail_unless (caps != NULL);
+  gst_caps_unref (caps);
+  gst_object_unref (pad);
+
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+  gst_object_unref (pipeline);
+}
+
+GST_END_TEST;
+
+static void
+message_received (GstBus * bus, GstMessage * message, GstPipeline * bin)
+{
+  GST_INFO ("bus message from \"%" GST_PTR_FORMAT "\": %" GST_PTR_FORMAT,
+      GST_MESSAGE_SRC (message), message);
+
+  switch (message->type) {
+    case GST_MESSAGE_EOS:
+      g_main_loop_quit (main_loop);
+      break;
+    case GST_MESSAGE_WARNING:{
+      GError *gerror;
+      gchar *debug;
+
+      gst_message_parse_warning (message, &gerror, &debug);
+      gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
+      g_error_free (gerror);
+      g_free (debug);
+      break;
+    }
+    case GST_MESSAGE_ERROR:{
+      GError *gerror;
+      gchar *debug;
+
+      gst_message_parse_error (message, &gerror, &debug);
+      gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
+      g_error_free (gerror);
+      g_free (debug);
+      g_main_loop_quit (main_loop);
+      break;
+    }
+    default:
+      break;
+  }
+}
+
+
+static GstFormat format = GST_FORMAT_UNDEFINED;
+static gint64 position = -1;
+
+static void
+test_event_message_received (GstBus * bus, GstMessage * message,
+    GstPipeline * bin)
+{
+  GST_INFO ("bus message from \"%" GST_PTR_FORMAT "\": %" GST_PTR_FORMAT,
+      GST_MESSAGE_SRC (message), message);
+
+  switch (message->type) {
+    case GST_MESSAGE_SEGMENT_DONE:
+      gst_message_parse_segment_done (message, &format, &position);
+      GST_INFO ("received segment_done : %" G_GINT64_FORMAT, position);
+      g_main_loop_quit (main_loop);
+      break;
+    default:
+      g_assert_not_reached ();
+      break;
+  }
+}
+
+
+GST_START_TEST (test_event)
+{
+  GstElement *bin, *src1, *src2, *videomixer, *sink;
+  GstBus *bus;
+  GstEvent *seek_event;
+  GstStateChangeReturn state_res;
+  gboolean res;
+  GstPad *srcpad, *sinkpad;
+  GstStreamConsistency *chk_1, *chk_2, *chk_3;
+
+  GST_INFO ("preparing test");
+
+  /* build pipeline */
+  bin = gst_pipeline_new ("pipeline");
+  bus = gst_element_get_bus (bin);
+  gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
+
+  src1 = gst_element_factory_make ("videotestsrc", "src1");
+  src2 = gst_element_factory_make ("videotestsrc", "src2");
+  videomixer = gst_element_factory_make ("videomixer", "videomixer");
+  sink = gst_element_factory_make ("fakesink", "sink");
+  gst_bin_add_many (GST_BIN (bin), src1, src2, videomixer, sink, NULL);
+
+  res = gst_element_link (src1, videomixer);
+  fail_unless (res == TRUE, NULL);
+  res = gst_element_link (src2, videomixer);
+  fail_unless (res == TRUE, NULL);
+  res = gst_element_link (videomixer, sink);
+  fail_unless (res == TRUE, NULL);
+
+  srcpad = gst_element_get_static_pad (videomixer, "src");
+  chk_3 = gst_consistency_checker_new (srcpad);
+  gst_object_unref (srcpad);
+
+  /* create consistency checkers for the pads */
+  srcpad = gst_element_get_static_pad (src1, "src");
+  chk_1 = gst_consistency_checker_new (srcpad);
+  sinkpad = gst_pad_get_peer (srcpad);
+  gst_consistency_checker_add_pad (chk_3, sinkpad);
+  gst_object_unref (sinkpad);
+  gst_object_unref (srcpad);
+
+  srcpad = gst_element_get_static_pad (src2, "src");
+  chk_2 = gst_consistency_checker_new (srcpad);
+  sinkpad = gst_pad_get_peer (srcpad);
+  gst_consistency_checker_add_pad (chk_3, sinkpad);
+  gst_object_unref (sinkpad);
+  gst_object_unref (srcpad);
+
+  seek_event = gst_event_new_seek (1.0, GST_FORMAT_TIME,
+      GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_FLUSH,
+      GST_SEEK_TYPE_SET, (GstClockTime) 0,
+      GST_SEEK_TYPE_SET, (GstClockTime) 2 * GST_SECOND);
+
+  format = GST_FORMAT_UNDEFINED;
+  position = -1;
+
+  main_loop = g_main_loop_new (NULL, FALSE);
+  g_signal_connect (bus, "message::segment-done",
+      (GCallback) test_event_message_received, bin);
+  g_signal_connect (bus, "message::error", (GCallback) message_received, bin);
+  g_signal_connect (bus, "message::warning", (GCallback) message_received, bin);
+  g_signal_connect (bus, "message::eos", (GCallback) message_received, bin);
+
+  GST_INFO ("starting test");
+
+  /* prepare playing */
+  state_res = gst_element_set_state (bin, GST_STATE_PAUSED);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  /* wait for completion */
+  state_res = gst_element_get_state (bin, NULL, NULL, GST_CLOCK_TIME_NONE);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  res = gst_element_send_event (bin, seek_event);
+  fail_unless (res == TRUE, NULL);
+
+  /* run pipeline */
+  state_res = gst_element_set_state (bin, GST_STATE_PLAYING);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  GST_INFO ("running main loop");
+  g_main_loop_run (main_loop);
+
+  state_res = gst_element_set_state (bin, GST_STATE_NULL);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  ck_assert_int_eq (position, 2 * GST_SECOND);
+
+  /* cleanup */
+  g_main_loop_unref (main_loop);
+  gst_consistency_checker_free (chk_1);
+  gst_consistency_checker_free (chk_2);
+  gst_consistency_checker_free (chk_3);
+  gst_bus_remove_signal_watch (bus);
+  gst_object_unref (bus);
+  gst_object_unref (bin);
+}
+
+GST_END_TEST;
+
+static guint play_count = 0;
+static GstEvent *play_seek_event = NULL;
+
+static void
+test_play_twice_message_received (GstBus * bus, GstMessage * message,
+    GstPipeline * bin)
+{
+  gboolean res;
+  GstStateChangeReturn state_res;
+
+  GST_INFO ("bus message from \"%" GST_PTR_FORMAT "\": %" GST_PTR_FORMAT,
+      GST_MESSAGE_SRC (message), message);
+
+  switch (message->type) {
+    case GST_MESSAGE_SEGMENT_DONE:
+      play_count++;
+      if (play_count == 1) {
+        state_res = gst_element_set_state (GST_ELEMENT (bin), GST_STATE_READY);
+        ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+        /* prepare playing again */
+        state_res = gst_element_set_state (GST_ELEMENT (bin), GST_STATE_PAUSED);
+        ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+        /* wait for completion */
+        state_res =
+            gst_element_get_state (GST_ELEMENT (bin), NULL, NULL,
+            GST_CLOCK_TIME_NONE);
+        ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+        res = gst_element_send_event (GST_ELEMENT (bin),
+            gst_event_ref (play_seek_event));
+        fail_unless (res == TRUE, NULL);
+
+        state_res =
+            gst_element_set_state (GST_ELEMENT (bin), GST_STATE_PLAYING);
+        ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+      } else {
+        g_main_loop_quit (main_loop);
+      }
+      break;
+    default:
+      g_assert_not_reached ();
+      break;
+  }
+}
+
+
+GST_START_TEST (test_play_twice)
+{
+  GstElement *bin, *src1, *src2, *videomixer, *sink;
+  GstBus *bus;
+  gboolean res;
+  GstStateChangeReturn state_res;
+  GstPad *srcpad;
+  GstStreamConsistency *consist;
+
+  GST_INFO ("preparing test");
+
+  /* build pipeline */
+  bin = gst_pipeline_new ("pipeline");
+  bus = gst_element_get_bus (bin);
+  gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
+
+  src1 = gst_element_factory_make ("videotestsrc", "src1");
+  src2 = gst_element_factory_make ("videotestsrc", "src2");
+  videomixer = gst_element_factory_make ("videomixer", "videomixer");
+  sink = gst_element_factory_make ("fakesink", "sink");
+  gst_bin_add_many (GST_BIN (bin), src1, src2, videomixer, sink, NULL);
+
+  res = gst_element_link (src1, videomixer);
+  fail_unless (res == TRUE, NULL);
+  res = gst_element_link (src2, videomixer);
+  fail_unless (res == TRUE, NULL);
+  res = gst_element_link (videomixer, sink);
+  fail_unless (res == TRUE, NULL);
+
+  srcpad = gst_element_get_static_pad (videomixer, "src");
+  consist = gst_consistency_checker_new (srcpad);
+  gst_object_unref (srcpad);
+
+  play_seek_event = gst_event_new_seek (1.0, GST_FORMAT_TIME,
+      GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_FLUSH,
+      GST_SEEK_TYPE_SET, (GstClockTime) 0,
+      GST_SEEK_TYPE_SET, (GstClockTime) 2 * GST_SECOND);
+
+  play_count = 0;
+
+  main_loop = g_main_loop_new (NULL, FALSE);
+  g_signal_connect (bus, "message::segment-done",
+      (GCallback) test_play_twice_message_received, bin);
+  g_signal_connect (bus, "message::error", (GCallback) message_received, bin);
+  g_signal_connect (bus, "message::warning", (GCallback) message_received, bin);
+  g_signal_connect (bus, "message::eos", (GCallback) message_received, bin);
+
+  GST_INFO ("starting test");
+
+  /* prepare playing */
+  state_res = gst_element_set_state (bin, GST_STATE_PAUSED);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  /* wait for completion */
+  state_res =
+      gst_element_get_state (GST_ELEMENT (bin), NULL, NULL,
+      GST_CLOCK_TIME_NONE);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  res = gst_element_send_event (bin, gst_event_ref (play_seek_event));
+  fail_unless (res == TRUE, NULL);
+
+  GST_INFO ("seeked");
+
+  /* run pipeline */
+  state_res = gst_element_set_state (bin, GST_STATE_PLAYING);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  g_main_loop_run (main_loop);
+
+  state_res = gst_element_set_state (bin, GST_STATE_NULL);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  ck_assert_int_eq (play_count, 2);
+
+  /* cleanup */
+  g_main_loop_unref (main_loop);
+  gst_consistency_checker_free (consist);
+  gst_event_ref (play_seek_event);
+  gst_bus_remove_signal_watch (bus);
+  gst_object_unref (bus);
+  gst_object_unref (bin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_play_twice_then_add_and_play_again)
+{
+  GstElement *bin, *src1, *src2, *src3, *videomixer, *sink;
+  GstBus *bus;
+  gboolean res;
+  GstStateChangeReturn state_res;
+  gint i;
+  GstPad *srcpad;
+  GstStreamConsistency *consist;
+
+  GST_INFO ("preparing test");
+
+  /* build pipeline */
+  bin = gst_pipeline_new ("pipeline");
+  bus = gst_element_get_bus (bin);
+  gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
+
+  src1 = gst_element_factory_make ("videotestsrc", "src1");
+  src2 = gst_element_factory_make ("videotestsrc", "src2");
+  videomixer = gst_element_factory_make ("videomixer", "videomixer");
+  sink = gst_element_factory_make ("fakesink", "sink");
+  gst_bin_add_many (GST_BIN (bin), src1, src2, videomixer, sink, NULL);
+
+  srcpad = gst_element_get_static_pad (videomixer, "src");
+  consist = gst_consistency_checker_new (srcpad);
+  gst_object_unref (srcpad);
+
+  res = gst_element_link (src1, videomixer);
+  fail_unless (res == TRUE, NULL);
+  res = gst_element_link (src2, videomixer);
+  fail_unless (res == TRUE, NULL);
+  res = gst_element_link (videomixer, sink);
+  fail_unless (res == TRUE, NULL);
+
+  play_seek_event = gst_event_new_seek (1.0, GST_FORMAT_TIME,
+      GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_FLUSH,
+      GST_SEEK_TYPE_SET, (GstClockTime) 0,
+      GST_SEEK_TYPE_SET, (GstClockTime) 2 * GST_SECOND);
+
+  main_loop = g_main_loop_new (NULL, FALSE);
+  g_signal_connect (bus, "message::segment-done",
+      (GCallback) test_play_twice_message_received, bin);
+  g_signal_connect (bus, "message::error", (GCallback) message_received, bin);
+  g_signal_connect (bus, "message::warning", (GCallback) message_received, bin);
+  g_signal_connect (bus, "message::eos", (GCallback) message_received, bin);
+
+  /* run it twice */
+  for (i = 0; i < 2; i++) {
+    play_count = 0;
+
+    GST_INFO ("starting test-loop %d", i);
+
+    /* prepare playing */
+    state_res = gst_element_set_state (bin, GST_STATE_PAUSED);
+    ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+    /* wait for completion */
+    state_res =
+        gst_element_get_state (GST_ELEMENT (bin), NULL, NULL,
+        GST_CLOCK_TIME_NONE);
+    ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+    res = gst_element_send_event (bin, gst_event_ref (play_seek_event));
+    fail_unless (res == TRUE, NULL);
+
+    GST_INFO ("seeked");
+
+    /* run pipeline */
+    state_res = gst_element_set_state (bin, GST_STATE_PLAYING);
+    ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+    g_main_loop_run (main_loop);
+
+    state_res = gst_element_set_state (bin, GST_STATE_READY);
+    ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+    ck_assert_int_eq (play_count, 2);
+
+    /* plug another source */
+    if (i == 0) {
+      src3 = gst_element_factory_make ("videotestsrc", "src3");
+      gst_bin_add (GST_BIN (bin), src3);
+
+      res = gst_element_link (src3, videomixer);
+      fail_unless (res == TRUE, NULL);
+    }
+
+    gst_consistency_checker_reset (consist);
+  }
+
+  state_res = gst_element_set_state (bin, GST_STATE_NULL);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  /* cleanup */
+  g_main_loop_unref (main_loop);
+  gst_event_ref (play_seek_event);
+  gst_consistency_checker_free (consist);
+  gst_bus_remove_signal_watch (bus);
+  gst_object_unref (bus);
+  gst_object_unref (bin);
+}
+
+GST_END_TEST;
+
+/* check if adding pads work as expected */
+GST_START_TEST (test_add_pad)
+{
+  GstElement *bin, *src1, *src2, *videomixer, *sink;
+  GstBus *bus;
+  GstPad *srcpad;
+  gboolean res;
+  GstStateChangeReturn state_res;
+
+  GST_INFO ("preparing test");
+
+  /* build pipeline */
+  bin = gst_pipeline_new ("pipeline");
+  bus = gst_element_get_bus (bin);
+  gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
+
+  src1 = gst_element_factory_make ("videotestsrc", "src1");
+  g_object_set (src1, "num-buffers", 4, NULL);
+  src2 = gst_element_factory_make ("videotestsrc", "src2");
+  /* one buffer less, we connect with 1 buffer of delay */
+  g_object_set (src2, "num-buffers", 3, NULL);
+  videomixer = gst_element_factory_make ("videomixer", "videomixer");
+  sink = gst_element_factory_make ("fakesink", "sink");
+  gst_bin_add_many (GST_BIN (bin), src1, videomixer, sink, NULL);
+
+  res = gst_element_link (src1, videomixer);
+  fail_unless (res == TRUE, NULL);
+  res = gst_element_link (videomixer, sink);
+  fail_unless (res == TRUE, NULL);
+
+  srcpad = gst_element_get_static_pad (videomixer, "src");
+  gst_object_unref (srcpad);
+
+  main_loop = g_main_loop_new (NULL, FALSE);
+  g_signal_connect (bus, "message::segment-done", (GCallback) message_received,
+      bin);
+  g_signal_connect (bus, "message::error", (GCallback) message_received, bin);
+  g_signal_connect (bus, "message::warning", (GCallback) message_received, bin);
+  g_signal_connect (bus, "message::eos", (GCallback) message_received, bin);
+
+  GST_INFO ("starting test");
+
+  /* prepare playing */
+  state_res = gst_element_set_state (bin, GST_STATE_PAUSED);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  /* wait for completion */
+  state_res =
+      gst_element_get_state (GST_ELEMENT (bin), NULL, NULL,
+      GST_CLOCK_TIME_NONE);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  /* add other element */
+  gst_bin_add_many (GST_BIN (bin), src2, NULL);
+
+  /* now link the second element */
+  res = gst_element_link (src2, videomixer);
+  fail_unless (res == TRUE, NULL);
+
+  /* set to PAUSED as well */
+  state_res = gst_element_set_state (src2, GST_STATE_PAUSED);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  /* now play all */
+  state_res = gst_element_set_state (bin, GST_STATE_PLAYING);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  g_main_loop_run (main_loop);
+
+  state_res = gst_element_set_state (bin, GST_STATE_NULL);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  /* cleanup */
+  g_main_loop_unref (main_loop);
+  gst_bus_remove_signal_watch (bus);
+  gst_object_unref (bus);
+  gst_object_unref (bin);
+}
+
+GST_END_TEST;
+
+/* check if removing pads work as expected */
+GST_START_TEST (test_remove_pad)
+{
+  GstElement *bin, *src, *videomixer, *sink;
+  GstBus *bus;
+  GstPad *pad, *srcpad;
+  gboolean res;
+  GstStateChangeReturn state_res;
+
+  GST_INFO ("preparing test");
+
+  /* build pipeline */
+  bin = gst_pipeline_new ("pipeline");
+  bus = gst_element_get_bus (bin);
+  gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
+
+  src = gst_element_factory_make ("videotestsrc", "src");
+  g_object_set (src, "num-buffers", 4, NULL);
+  videomixer = gst_element_factory_make ("videomixer", "videomixer");
+  sink = gst_element_factory_make ("fakesink", "sink");
+  gst_bin_add_many (GST_BIN (bin), src, videomixer, sink, NULL);
+
+  res = gst_element_link (src, videomixer);
+  fail_unless (res == TRUE, NULL);
+  res = gst_element_link (videomixer, sink);
+  fail_unless (res == TRUE, NULL);
+
+  /* create an unconnected sinkpad in videomixer */
+  pad = gst_element_get_request_pad (videomixer, "sink_%u");
+  fail_if (pad == NULL, NULL);
+
+  srcpad = gst_element_get_static_pad (videomixer, "src");
+  gst_object_unref (srcpad);
+
+  main_loop = g_main_loop_new (NULL, FALSE);
+  g_signal_connect (bus, "message::segment-done", (GCallback) message_received,
+      bin);
+  g_signal_connect (bus, "message::error", (GCallback) message_received, bin);
+  g_signal_connect (bus, "message::warning", (GCallback) message_received, bin);
+  g_signal_connect (bus, "message::eos", (GCallback) message_received, bin);
+
+  GST_INFO ("starting test");
+
+  /* prepare playing, this will not preroll as videomixer is waiting
+   * on the unconnected sinkpad. */
+  state_res = gst_element_set_state (bin, GST_STATE_PAUSED);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  /* wait for completion for one second, will return ASYNC */
+  state_res = gst_element_get_state (GST_ELEMENT (bin), NULL, NULL, GST_SECOND);
+  ck_assert_int_eq (state_res, GST_STATE_CHANGE_ASYNC);
+
+  /* get rid of the pad now, videomixer should stop waiting on it and
+   * continue the preroll */
+  gst_element_release_request_pad (videomixer, pad);
+  gst_object_unref (pad);
+
+  /* wait for completion, should work now */
+  state_res =
+      gst_element_get_state (GST_ELEMENT (bin), NULL, NULL,
+      GST_CLOCK_TIME_NONE);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  /* now play all */
+  state_res = gst_element_set_state (bin, GST_STATE_PLAYING);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  g_main_loop_run (main_loop);
+
+  state_res = gst_element_set_state (bin, GST_STATE_NULL);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  /* cleanup */
+  g_main_loop_unref (main_loop);
+  gst_bus_remove_signal_watch (bus);
+  gst_object_unref (G_OBJECT (bus));
+  gst_object_unref (G_OBJECT (bin));
+}
+
+GST_END_TEST;
+
+
+static GstBuffer *handoff_buffer = NULL;
+static void
+handoff_buffer_cb (GstElement * fakesink, GstBuffer * buffer, GstPad * pad,
+    gpointer user_data)
+{
+  GST_DEBUG ("got buffer %p", buffer);
+  gst_buffer_replace (&handoff_buffer, buffer);
+}
+
+/* check if clipping works as expected */
+GST_START_TEST (test_clip)
+{
+  GstSegment segment;
+  GstElement *bin, *videomixer, *sink;
+  GstBus *bus;
+  GstPad *sinkpad;
+  gboolean res;
+  GstStateChangeReturn state_res;
+  GstFlowReturn ret;
+  GstEvent *event;
+  GstBuffer *buffer;
+  GstCaps *caps;
+
+  GST_INFO ("preparing test");
+
+  /* build pipeline */
+  bin = gst_pipeline_new ("pipeline");
+  bus = gst_element_get_bus (bin);
+  gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
+
+  g_signal_connect (bus, "message::error", (GCallback) message_received, bin);
+  g_signal_connect (bus, "message::warning", (GCallback) message_received, bin);
+  g_signal_connect (bus, "message::eos", (GCallback) message_received, bin);
+
+  /* just an videomixer and a fakesink */
+  videomixer = gst_element_factory_make ("videomixer", "videomixer");
+  sink = gst_element_factory_make ("fakesink", "sink");
+  g_object_set (sink, "signal-handoffs", TRUE, NULL);
+  g_signal_connect (sink, "handoff", (GCallback) handoff_buffer_cb, NULL);
+  gst_bin_add_many (GST_BIN (bin), videomixer, sink, NULL);
+
+  res = gst_element_link (videomixer, sink);
+  fail_unless (res == TRUE, NULL);
+
+  /* set to playing */
+  state_res = gst_element_set_state (bin, GST_STATE_PLAYING);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  /* create an unconnected sinkpad in videomixer, should also automatically activate
+   * the pad */
+  sinkpad = gst_element_get_request_pad (videomixer, "sink_%u");
+  fail_if (sinkpad == NULL, NULL);
+
+  gst_pad_send_event (sinkpad, gst_event_new_stream_start ("test"));
+
+  caps = gst_caps_from_string (VIDEO_CAPS_STRING);
+
+  gst_pad_set_caps (sinkpad, caps);
+  gst_caps_unref (caps);
+
+  /* send segment to videomixer */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  segment.start = GST_SECOND;
+  segment.stop = 2 * GST_SECOND;
+  segment.time = 0;
+  event = gst_event_new_segment (&segment);
+  gst_pad_send_event (sinkpad, event);
+
+  /* should be clipped and ok */
+  buffer = gst_buffer_new_and_alloc (115200);
+  GST_BUFFER_TIMESTAMP (buffer) = 0;
+  GST_BUFFER_DURATION (buffer) = 250 * GST_MSECOND;
+  GST_DEBUG ("pushing buffer %p", buffer);
+  ret = gst_pad_chain (sinkpad, buffer);
+  ck_assert_int_eq (ret, GST_FLOW_OK);
+  fail_unless (handoff_buffer == NULL);
+
+  /* should be partially clipped */
+  buffer = gst_buffer_new_and_alloc (115200);
+  GST_BUFFER_TIMESTAMP (buffer) = 900 * GST_MSECOND;
+  GST_BUFFER_DURATION (buffer) = 250 * GST_MSECOND;
+  GST_DEBUG ("pushing buffer %p", buffer);
+  ret = gst_pad_chain (sinkpad, buffer);
+  ck_assert_int_eq (ret, GST_FLOW_OK);
+  fail_unless (handoff_buffer != NULL);
+  gst_buffer_replace (&handoff_buffer, NULL);
+
+  /* should not be clipped */
+  buffer = gst_buffer_new_and_alloc (115200);
+  GST_BUFFER_TIMESTAMP (buffer) = 1 * GST_SECOND;
+  GST_BUFFER_DURATION (buffer) = 250 * GST_MSECOND;
+  GST_DEBUG ("pushing buffer %p", buffer);
+  ret = gst_pad_chain (sinkpad, buffer);
+  ck_assert_int_eq (ret, GST_FLOW_OK);
+  fail_unless (handoff_buffer != NULL);
+  gst_buffer_replace (&handoff_buffer, NULL);
+
+  /* should be clipped and ok */
+  buffer = gst_buffer_new_and_alloc (115200);
+  GST_BUFFER_TIMESTAMP (buffer) = 2 * GST_SECOND;
+  GST_BUFFER_DURATION (buffer) = 250 * GST_MSECOND;
+  GST_DEBUG ("pushing buffer %p", buffer);
+  ret = gst_pad_chain (sinkpad, buffer);
+  ck_assert_int_eq (ret, GST_FLOW_OK);
+  fail_unless (handoff_buffer == NULL);
+
+  gst_object_unref (sinkpad);
+  gst_element_set_state (bin, GST_STATE_NULL);
+  gst_bus_remove_signal_watch (bus);
+  gst_object_unref (bus);
+  gst_object_unref (bin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_duration_is_max)
+{
+  GstElement *bin, *src[3], *videomixer, *sink;
+  GstStateChangeReturn state_res;
+  GstFormat format = GST_FORMAT_TIME;
+  gboolean res;
+  gint64 duration;
+
+  GST_INFO ("preparing test");
+
+  /* build pipeline */
+  bin = gst_pipeline_new ("pipeline");
+
+  /* 3 sources, an videomixer and a fakesink */
+  src[0] = gst_element_factory_make ("videotestsrc", NULL);
+  src[1] = gst_element_factory_make ("videotestsrc", NULL);
+  src[2] = gst_element_factory_make ("videotestsrc", NULL);
+  videomixer = gst_element_factory_make ("videomixer", "videomixer");
+  sink = gst_element_factory_make ("fakesink", "sink");
+  gst_bin_add_many (GST_BIN (bin), src[0], src[1], src[2], videomixer, sink,
+      NULL);
+
+  gst_element_link (src[0], videomixer);
+  gst_element_link (src[1], videomixer);
+  gst_element_link (src[2], videomixer);
+  gst_element_link (videomixer, sink);
+
+  /* irks, duration is reset on basesrc */
+  state_res = gst_element_set_state (bin, GST_STATE_PAUSED);
+  fail_unless (state_res != GST_STATE_CHANGE_FAILURE, NULL);
+
+  /* set durations on src */
+  GST_BASE_SRC (src[0])->segment.duration = 1000;
+  GST_BASE_SRC (src[1])->segment.duration = 3000;
+  GST_BASE_SRC (src[2])->segment.duration = 2000;
+
+  /* set to playing */
+  state_res = gst_element_set_state (bin, GST_STATE_PLAYING);
+  fail_unless (state_res != GST_STATE_CHANGE_FAILURE, NULL);
+
+  /* wait for completion */
+  state_res =
+      gst_element_get_state (GST_ELEMENT (bin), NULL, NULL,
+      GST_CLOCK_TIME_NONE);
+  fail_unless (state_res != GST_STATE_CHANGE_FAILURE, NULL);
+
+  res = gst_element_query_duration (GST_ELEMENT (bin), format, &duration);
+  fail_unless (res, NULL);
+
+  ck_assert_int_eq (duration, 3000);
+
+  gst_element_set_state (bin, GST_STATE_NULL);
+  gst_object_unref (bin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_duration_unknown_overrides)
+{
+  GstElement *bin, *src[3], *videomixer, *sink;
+  GstStateChangeReturn state_res;
+  GstFormat format = GST_FORMAT_TIME;
+  gboolean res;
+  gint64 duration;
+
+  GST_INFO ("preparing test");
+
+  /* build pipeline */
+  bin = gst_pipeline_new ("pipeline");
+
+  /* 3 sources, an videomixer and a fakesink */
+  src[0] = gst_element_factory_make ("videotestsrc", NULL);
+  src[1] = gst_element_factory_make ("videotestsrc", NULL);
+  src[2] = gst_element_factory_make ("videotestsrc", NULL);
+  videomixer = gst_element_factory_make ("videomixer", "videomixer");
+  sink = gst_element_factory_make ("fakesink", "sink");
+  gst_bin_add_many (GST_BIN (bin), src[0], src[1], src[2], videomixer, sink,
+      NULL);
+
+  gst_element_link (src[0], videomixer);
+  gst_element_link (src[1], videomixer);
+  gst_element_link (src[2], videomixer);
+  gst_element_link (videomixer, sink);
+
+  /* irks, duration is reset on basesrc */
+  state_res = gst_element_set_state (bin, GST_STATE_PAUSED);
+  fail_unless (state_res != GST_STATE_CHANGE_FAILURE, NULL);
+
+  /* set durations on src */
+  GST_BASE_SRC (src[0])->segment.duration = GST_CLOCK_TIME_NONE;
+  GST_BASE_SRC (src[1])->segment.duration = 3000;
+  GST_BASE_SRC (src[2])->segment.duration = 2000;
+
+  /* set to playing */
+  state_res = gst_element_set_state (bin, GST_STATE_PLAYING);
+  fail_unless (state_res != GST_STATE_CHANGE_FAILURE, NULL);
+
+  /* wait for completion */
+  state_res =
+      gst_element_get_state (GST_ELEMENT (bin), NULL, NULL,
+      GST_CLOCK_TIME_NONE);
+  fail_unless (state_res != GST_STATE_CHANGE_FAILURE, NULL);
+
+  res = gst_element_query_duration (GST_ELEMENT (bin), format, &duration);
+  fail_unless (res, NULL);
+
+  ck_assert_int_eq (duration, GST_CLOCK_TIME_NONE);
+
+  gst_element_set_state (bin, GST_STATE_NULL);
+  gst_object_unref (bin);
+}
+
+GST_END_TEST;
+
+
+static gboolean looped = FALSE;
+
+static void
+loop_segment_done (GstBus * bus, GstMessage * message, GstElement * bin)
+{
+  GST_INFO ("bus message from \"%" GST_PTR_FORMAT "\": %" GST_PTR_FORMAT,
+      GST_MESSAGE_SRC (message), message);
+
+  if (looped) {
+    g_main_loop_quit (main_loop);
+  } else {
+    GstEvent *seek_event;
+    gboolean res;
+
+    seek_event = gst_event_new_seek (1.0, GST_FORMAT_TIME,
+        GST_SEEK_FLAG_SEGMENT,
+        GST_SEEK_TYPE_SET, (GstClockTime) 0,
+        GST_SEEK_TYPE_SET, (GstClockTime) 1 * GST_SECOND);
+
+    res = gst_element_send_event (bin, seek_event);
+    fail_unless (res == TRUE, NULL);
+    looped = TRUE;
+  }
+}
+
+GST_START_TEST (test_loop)
+{
+  GstElement *bin, *src1, *src2, *videomixer, *sink;
+  GstBus *bus;
+  GstEvent *seek_event;
+  GstStateChangeReturn state_res;
+  gboolean res;
+
+  GST_INFO ("preparing test");
+
+  /* build pipeline */
+  bin = gst_pipeline_new ("pipeline");
+  bus = gst_element_get_bus (bin);
+  gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
+
+  src1 = gst_element_factory_make ("videotestsrc", "src1");
+  src2 = gst_element_factory_make ("videotestsrc", "src2");
+  videomixer = gst_element_factory_make ("videomixer", "videomixer");
+  sink = gst_element_factory_make ("fakesink", "sink");
+  gst_bin_add_many (GST_BIN (bin), src1, src2, videomixer, sink, NULL);
+
+  res = gst_element_link (src1, videomixer);
+  fail_unless (res == TRUE, NULL);
+  res = gst_element_link (src2, videomixer);
+  fail_unless (res == TRUE, NULL);
+  res = gst_element_link (videomixer, sink);
+  fail_unless (res == TRUE, NULL);
+
+  seek_event = gst_event_new_seek (1.0, GST_FORMAT_TIME,
+      GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_FLUSH,
+      GST_SEEK_TYPE_SET, (GstClockTime) 0,
+      GST_SEEK_TYPE_SET, (GstClockTime) 1 * GST_SECOND);
+
+  main_loop = g_main_loop_new (NULL, FALSE);
+  g_signal_connect (bus, "message::segment-done",
+      (GCallback) loop_segment_done, bin);
+  g_signal_connect (bus, "message::error", (GCallback) message_received, bin);
+  g_signal_connect (bus, "message::warning", (GCallback) message_received, bin);
+  g_signal_connect (bus, "message::eos", (GCallback) message_received, bin);
+
+  GST_INFO ("starting test");
+
+  /* prepare playing */
+  state_res = gst_element_set_state (bin, GST_STATE_PAUSED);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  /* wait for completion */
+  state_res = gst_element_get_state (bin, NULL, NULL, GST_CLOCK_TIME_NONE);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  res = gst_element_send_event (bin, seek_event);
+  fail_unless (res == TRUE, NULL);
+
+  /* run pipeline */
+  state_res = gst_element_set_state (bin, GST_STATE_PLAYING);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  GST_INFO ("running main loop");
+  g_main_loop_run (main_loop);
+
+  state_res = gst_element_set_state (bin, GST_STATE_NULL);
+
+  /* cleanup */
+  g_main_loop_unref (main_loop);
+  gst_bus_remove_signal_watch (bus);
+  gst_object_unref (bus);
+  gst_object_unref (bin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_flush_start_flush_stop)
+{
+  GstPadTemplate *sink_template;
+  GstPad *tmppad, *sinkpad1, *sinkpad2, *videomixer_src;
+  GstElement *pipeline, *src1, *src2, *videomixer, *sink;
+
+  GST_INFO ("preparing test");
+
+  /* build pipeline */
+  pipeline = gst_pipeline_new ("pipeline");
+  src1 = gst_element_factory_make ("videotestsrc", "src1");
+  src2 = gst_element_factory_make ("videotestsrc", "src2");
+  videomixer = gst_element_factory_make ("videomixer", "videomixer");
+  sink = gst_element_factory_make ("fakesink", "sink");
+  gst_bin_add_many (GST_BIN (pipeline), src1, src2, videomixer, sink, NULL);
+
+  sink_template =
+      gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (videomixer),
+      "sink_%u");
+  fail_unless (GST_IS_PAD_TEMPLATE (sink_template));
+  sinkpad1 = gst_element_request_pad (videomixer, sink_template, NULL, NULL);
+  tmppad = gst_element_get_static_pad (src1, "src");
+  gst_pad_link (tmppad, sinkpad1);
+  gst_object_unref (tmppad);
+
+  sinkpad2 = gst_element_request_pad (videomixer, sink_template, NULL, NULL);
+  tmppad = gst_element_get_static_pad (src2, "src");
+  gst_pad_link (tmppad, sinkpad2);
+  gst_object_unref (tmppad);
+
+  gst_element_link (videomixer, sink);
+
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+  fail_unless (gst_element_get_state (pipeline, NULL, NULL,
+          GST_CLOCK_TIME_NONE) == GST_STATE_CHANGE_SUCCESS);
+
+  videomixer_src = gst_element_get_static_pad (videomixer, "src");
+  fail_if (GST_PAD_IS_FLUSHING (videomixer_src));
+  gst_pad_send_event (sinkpad1, gst_event_new_flush_start ());
+  fail_unless (GST_PAD_IS_FLUSHING (videomixer_src));
+  gst_pad_send_event (sinkpad1, gst_event_new_flush_stop (TRUE));
+  fail_if (GST_PAD_IS_FLUSHING (videomixer_src));
+  gst_object_unref (videomixer_src);
+
+  /* cleanup */
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+  gst_object_unref (pipeline);
+}
+
+GST_END_TEST;
+
+
+static Suite *
+videomixer_suite (void)
+{
+  Suite *s = suite_create ("videomixer");
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_caps);
+  tcase_add_test (tc_chain, test_event);
+  tcase_add_test (tc_chain, test_play_twice);
+  tcase_add_test (tc_chain, test_play_twice_then_add_and_play_again);
+  tcase_add_test (tc_chain, test_add_pad);
+  tcase_add_test (tc_chain, test_remove_pad);
+  tcase_add_test (tc_chain, test_clip);
+  tcase_add_test (tc_chain, test_duration_is_max);
+  tcase_add_test (tc_chain, test_duration_unknown_overrides);
+  tcase_add_test (tc_chain, test_loop);
+  tcase_add_test (tc_chain, test_flush_start_flush_stop);
+
+  /* Use a longer timeout */
+#ifdef HAVE_VALGRIND
+  if (RUNNING_ON_VALGRIND) {
+    tcase_set_timeout (tc_chain, 5 * 60);
+  } else
+#endif
+  {
+    /* this is shorter than the default 60 seconds?! (tpm) */
+    /* tcase_set_timeout (tc_chain, 6); */
+  }
+
+  return s;
+}
+
+GST_CHECK_MAIN (videomixer);
diff --git a/tests/check/elements/vp8dec.c b/tests/check/elements/vp8dec.c
index 25648401a..786809e61 100644
--- a/tests/check/elements/vp8dec.c
+++ b/tests/check/elements/vp8dec.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -80,7 +80,7 @@ setup_vp8dec (const gchar * src_caps_str)
   sinkpad = gst_check_setup_sink_pad (bin, &sinktemplate);
   gst_pad_set_active (srcpad, TRUE);
   gst_pad_set_active (sinkpad, TRUE);
-  fail_unless (gst_pad_set_caps (srcpad, srccaps));
+  gst_check_setup_events (srcpad, bin, srccaps, GST_FORMAT_TIME);
 
   bus = gst_bus_new ();
   gst_element_set_bus (bin, bus);
diff --git a/tests/check/elements/vp8enc.c b/tests/check/elements/vp8enc.c
index fc130473d..86b1d929d 100644
--- a/tests/check/elements/vp8enc.c
+++ b/tests/check/elements/vp8enc.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -55,7 +55,7 @@ setup_vp8enc (const gchar * src_caps_str)
   sinkpad = gst_check_setup_sink_pad (vp8enc, &sinktemplate);
   gst_pad_set_active (srcpad, TRUE);
   gst_pad_set_active (sinkpad, TRUE);
-  fail_unless (gst_pad_set_caps (srcpad, srccaps));
+  gst_check_setup_events (srcpad, vp8enc, srccaps, GST_FORMAT_TIME);
 
   bus = gst_bus_new ();
   gst_element_set_bus (vp8enc, bus);
diff --git a/tests/check/elements/wavpackdec.c b/tests/check/elements/wavpackdec.c
index 01ae67d20..65c108dd5 100644
--- a/tests/check/elements/wavpackdec.c
+++ b/tests/check/elements/wavpackdec.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -82,6 +82,11 @@ setup_wavpackdec (void)
   mysinkpad = gst_check_setup_sink_pad (wavpackdec, &sinktemplate);
   gst_pad_set_active (mysrcpad, TRUE);
   gst_pad_set_active (mysinkpad, TRUE);
+  gst_check_setup_events (mysrcpad, wavpackdec, NULL, GST_FORMAT_TIME);
+
+  fail_unless (gst_element_set_state (wavpackdec,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
 
   return wavpackdec;
 }
@@ -108,10 +113,6 @@ GST_START_TEST (test_decode_frame)
   GstMapInfo map;
 
   wavpackdec = setup_wavpackdec ();
-
-  fail_unless (gst_element_set_state (wavpackdec,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
   bus = gst_bus_new ();
 
   inbuffer = gst_buffer_new_and_alloc (sizeof (test_frame));
@@ -162,10 +163,6 @@ GST_START_TEST (test_decode_frame_with_broken_header)
   GstMessage *message;
 
   wavpackdec = setup_wavpackdec ();
-
-  fail_unless (gst_element_set_state (wavpackdec,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
   bus = gst_bus_new ();
 
   inbuffer = gst_buffer_new_and_alloc (sizeof (test_frame));
@@ -199,10 +196,6 @@ GST_START_TEST (test_decode_frame_with_incomplete_frame)
   GstMessage *message;
 
   wavpackdec = setup_wavpackdec ();
-
-  fail_unless (gst_element_set_state (wavpackdec,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
-      "could not set to playing");
   bus = gst_bus_new ();
 
   inbuffer = gst_buffer_new_and_alloc (sizeof (test_frame) - 2);
diff --git a/tests/check/elements/wavpackenc.c b/tests/check/elements/wavpackenc.c
index 5536effcb..22e2e7c9f 100644
--- a/tests/check/elements/wavpackenc.c
+++ b/tests/check/elements/wavpackenc.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
diff --git a/tests/check/elements/wavpackparse.c b/tests/check/elements/wavpackparse.c
index d7d214f0a..ec409097f 100644
--- a/tests/check/elements/wavpackparse.c
+++ b/tests/check/elements/wavpackparse.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -79,6 +79,7 @@ setup_wavpackparse (void)
   mysinkpad = gst_check_setup_sink_pad (wavpackparse, &sinktemplate);
   gst_pad_set_active (mysrcpad, TRUE);
   gst_pad_set_active (mysinkpad, TRUE);
+  gst_check_setup_events (mysrcpad, wavpackparse, NULL, GST_FORMAT_BYTES);
 
   return wavpackparse;
 }
diff --git a/tests/check/elements/wavparse.c b/tests/check/elements/wavparse.c
new file mode 100644
index 000000000..e4fee9207
--- /dev/null
+++ b/tests/check/elements/wavparse.c
@@ -0,0 +1,80 @@
+/* GStreamer WavParse unit tests
+ *
+ * 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., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/check/gstcheck.h>
+
+static void
+do_test_empty_file (gboolean can_activate_pull)
+{
+  GstStateChangeReturn ret1, ret2;
+  GstElement *pipeline;
+  GstElement *src;
+  GstElement *wavparse;
+  GstElement *fakesink;
+
+  /* Pull mode */
+  pipeline = gst_pipeline_new ("testpipe");
+  src = gst_element_factory_make ("fakesrc", NULL);
+  fail_if (src == NULL);
+  wavparse = gst_element_factory_make ("wavparse", NULL);
+  fail_if (wavparse == NULL);
+  fakesink = gst_element_factory_make ("fakesink", NULL);
+  fail_if (fakesink == NULL);
+
+  gst_bin_add_many (GST_BIN (pipeline), src, wavparse, fakesink, NULL);
+  g_object_set (src, "num-buffers", 0, "can-activate-pull", can_activate_pull,
+      NULL);
+
+  fail_unless (gst_element_link_many (src, wavparse, fakesink, NULL));
+
+  ret1 = gst_element_set_state (pipeline, GST_STATE_PLAYING);
+  if (ret1 == GST_STATE_CHANGE_ASYNC)
+    ret2 = gst_element_get_state (pipeline, NULL, NULL, GST_CLOCK_TIME_NONE);
+  else
+    ret2 = ret1;
+
+  /* should have gotten an error on the bus, no output to fakesink */
+  fail_unless_equals_int (ret2, GST_STATE_CHANGE_FAILURE);
+
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+  gst_object_unref (pipeline);
+}
+
+GST_START_TEST (test_empty_file)
+{
+  do_test_empty_file (TRUE);
+  do_test_empty_file (FALSE);
+}
+
+GST_END_TEST;
+
+static Suite *
+wavparse_suite (void)
+{
+  Suite *s = suite_create ("wavparse");
+  TCase *tc_chain = tcase_create ("wavparse");
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_empty_file);
+  return s;
+}
+
+GST_CHECK_MAIN (wavparse)
diff --git a/tests/check/elements/y4menc.c b/tests/check/elements/y4menc.c
index 75935377f..2117ada8b 100644
--- a/tests/check/elements/y4menc.c
+++ b/tests/check/elements/y4menc.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -99,7 +99,7 @@ GST_START_TEST (test_y4m)
   /* makes valgrind's memcheck happier */
   gst_buffer_memset (inbuffer, 0, 0, size);
   caps = gst_caps_from_string (VIDEO_CAPS_STRING);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, y4menc, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   GST_BUFFER_TIMESTAMP (inbuffer) = 0;
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
diff --git a/tests/check/generic/states.c b/tests/check/generic/states.c
index 571b94090..4601e07eb 100644
--- a/tests/check/generic/states.c
+++ b/tests/check/generic/states.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/pipelines/effectv.c b/tests/check/pipelines/effectv.c
index b4904109f..6c25e4b71 100644
--- a/tests/check/pipelines/effectv.c
+++ b/tests/check/pipelines/effectv.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/pipelines/flacdec.c b/tests/check/pipelines/flacdec.c
index d1e4fc2b8..651d77f88 100644
--- a/tests/check/pipelines/flacdec.c
+++ b/tests/check/pipelines/flacdec.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -36,7 +36,7 @@ _get_first_sample (GstSample * sample)
   fail_unless (caps != NULL, "sample without caps");
 
   buf = gst_sample_get_buffer (sample);
-  GST_DEBUG ("buffer with size=%u, caps=%" GST_PTR_FORMAT,
+  GST_DEBUG ("buffer with size=%" G_GSIZE_FORMAT ", caps=%" GST_PTR_FORMAT,
       gst_buffer_get_size (buf), caps);
 
   gst_buffer_map (buf, &map, GST_MAP_READ);
diff --git a/tests/check/pipelines/simple-launch-lines.c b/tests/check/pipelines/simple-launch-lines.c
index 4dedbe3d8..cce4f2d2a 100644
--- a/tests/check/pipelines/simple-launch-lines.c
+++ b/tests/check/pipelines/simple-launch-lines.c
@@ -15,8 +15,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -289,7 +289,7 @@ simple_launch_lines_suite (void)
   tcase_add_test (tc_chain, test_rtp_payloaders);
   tcase_add_test (tc_chain, test_video_encoders_decoders);
   /* FIXME: very rarely fails, maybe because of negotiation issues? */
-  tcase_skip_broken_test (tc_chain, test_videomixer);
+  tcase_add_test (tc_chain, test_videomixer);
 #endif
   return s;
 }
diff --git a/tests/check/pipelines/tagschecking.c b/tests/check/pipelines/tagschecking.c
index 00a00683b..f09a32027 100644
--- a/tests/check/pipelines/tagschecking.c
+++ b/tests/check/pipelines/tagschecking.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -271,7 +271,8 @@ test_tags (const gchar * tag_str, const gchar * caps, const gchar * muxer,
 #define H264_CAPS "video/x-h264, width=(int)320, height=(int)240," \
                   " framerate=(fraction)30/1, codec_data=(buffer)" \
                   "01401592ffe10017674d401592540a0fd8088000000300" \
-                  "8000001e478b175001000468ee3c80, stream-format=(string)avc"
+                  "8000001e478b175001000468ee3c80, "\
+                  "stream-format=(string)avc, alignment=(string)au"
 
 #define COMMON_TAGS \
     "taglist,title=test_title,"    \
diff --git a/tests/check/pipelines/wavenc.c b/tests/check/pipelines/wavenc.c
index 2fdfdc3e8..b79fbf6ff 100644
--- a/tests/check/pipelines/wavenc.c
+++ b/tests/check/pipelines/wavenc.c
@@ -16,8 +16,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
diff --git a/tests/check/pipelines/wavpack.c b/tests/check/pipelines/wavpack.c
index d298848b1..9a6d07a8e 100644
--- a/tests/check/pipelines/wavpack.c
+++ b/tests/check/pipelines/wavpack.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in
index 4d3f9db4f..91c547214 100644
--- a/tests/examples/Makefile.in
+++ b/tests/examples/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -20,23 +19,51 @@
 # descending into all subdirectories a second time, but only after the first
 # (parallel) run has finished, so it should go right through the second time.
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,8 +83,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/parallel-subdirs.mak
+DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \
+	$(srcdir)/Makefile.in $(srcdir)/Makefile.am
 subdir = tests/examples
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -65,7 +92,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-gcc-inline-assembly.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 \
@@ -101,21 +127,28 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -123,9 +156,29 @@ am__can_run_installinfo = \
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -319,6 +372,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -531,22 +585,25 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -561,57 +618,12 @@ $(RECURSIVE_TARGETS):
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-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: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -627,12 +639,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -644,15 +651,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -661,6 +664,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -821,22 +839,20 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean 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 installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean 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 \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 .PHONY: independent-subdirs $(SUBDIRS)
diff --git a/tests/examples/audiofx/Makefile.in b/tests/examples/audiofx/Makefile.in
index b9d716a7e..0c10ff7b5 100644
--- a/tests/examples/audiofx/Makefile.in
+++ b/tests/examples/audiofx/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -55,14 +82,14 @@ target_triplet = @target@
 noinst_PROGRAMS = firfilter-example$(EXEEXT) \
 	iirfilter-example$(EXEEXT)
 subdir = tests/examples/audiofx
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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-gcc-inline-assembly.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 \
@@ -108,6 +135,7 @@ firfilter_example_DEPENDENCIES = $(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
+am__v_lt_1 = 
 firfilter_example_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(firfilter_example_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
@@ -121,6 +149,18 @@ iirfilter_example_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(iirfilter_example_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -133,20 +173,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = firfilter-example.c iirfilter-example.c
 DIST_SOURCES = firfilter-example.c iirfilter-example.c
 am__can_run_installinfo = \
@@ -154,6 +190,23 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -324,6 +377,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -531,9 +585,11 @@ clean-noinstPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 firfilter-example$(EXEEXT): $(firfilter_example_OBJECTS) $(firfilter_example_DEPENDENCIES) $(EXTRA_firfilter_example_DEPENDENCIES) 
 	@rm -f firfilter-example$(EXEEXT)
 	$(AM_V_CCLD)$(firfilter_example_LINK) $(firfilter_example_OBJECTS) $(firfilter_example_LDADD) $(LIBS)
+
 iirfilter-example$(EXEEXT): $(iirfilter_example_OBJECTS) $(iirfilter_example_DEPENDENCIES) $(EXTRA_iirfilter_example_DEPENDENCIES) 
 	@rm -f iirfilter-example$(EXEEXT)
 	$(AM_V_CCLD)$(iirfilter_example_LINK) $(iirfilter_example_OBJECTS) $(iirfilter_example_LDADD) $(LIBS)
@@ -602,26 +658,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -633,15 +678,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -650,6 +691,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -791,18 +847,19 @@ 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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/audiofx/firfilter-example.c b/tests/examples/audiofx/firfilter-example.c
index e2fa2dc25..a3a6cfec0 100644
--- a/tests/examples/audiofx/firfilter-example.c
+++ b/tests/examples/audiofx/firfilter-example.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* This small sample application creates a bandpass FIR filter
diff --git a/tests/examples/audiofx/iirfilter-example.c b/tests/examples/audiofx/iirfilter-example.c
index 708bde1e1..fc553f915 100644
--- a/tests/examples/audiofx/iirfilter-example.c
+++ b/tests/examples/audiofx/iirfilter-example.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* This small sample application creates a lowpass IIR filter
diff --git a/tests/examples/cairo/Makefile.in b/tests/examples/cairo/Makefile.in
index b3ca36a6d..3bae9c89f 100644
--- a/tests/examples/cairo/Makefile.in
+++ b/tests/examples/cairo/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,14 @@ host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = cairo_overlay$(EXEEXT)
 subdir = tests/examples/cairo
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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-gcc-inline-assembly.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 \
@@ -106,9 +133,22 @@ cairo_overlay_DEPENDENCIES = $(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
+am__v_lt_1 = 
 cairo_overlay_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(cairo_overlay_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -121,20 +161,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(cairo_overlay_SOURCES)
 DIST_SOURCES = $(cairo_overlay_SOURCES)
 am__can_run_installinfo = \
@@ -142,6 +178,23 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -310,6 +363,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -516,6 +570,7 @@ clean-noinstPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 cairo_overlay$(EXEEXT): $(cairo_overlay_OBJECTS) $(cairo_overlay_DEPENDENCIES) $(EXTRA_cairo_overlay_DEPENDENCIES) 
 	@rm -f cairo_overlay$(EXEEXT)
 	$(AM_V_CCLD)$(cairo_overlay_LINK) $(cairo_overlay_OBJECTS) $(cairo_overlay_LDADD) $(LIBS)
@@ -569,26 +624,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -600,15 +644,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -617,6 +657,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -758,18 +813,19 @@ 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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/cairo/cairo_overlay.c b/tests/examples/cairo/cairo_overlay.c
index 937528d94..9e9f71afa 100644
--- a/tests/examples/cairo/cairo_overlay.c
+++ b/tests/examples/cairo/cairo_overlay.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/tests/examples/equalizer/Makefile.in b/tests/examples/equalizer/Makefile.in
index 5e9885419..f92d76212 100644
--- a/tests/examples/equalizer/Makefile.in
+++ b/tests/examples/equalizer/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,14 @@ host_triplet = @host@
 target_triplet = @target@
 @HAVE_GTK_TRUE@noinst_PROGRAMS = demo$(EXEEXT)
 subdir = tests/examples/equalizer
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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-gcc-inline-assembly.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 \
@@ -106,9 +133,22 @@ demo_DEPENDENCIES = $(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
+am__v_lt_1 = 
 demo_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(demo_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -121,20 +161,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(demo_SOURCES)
 DIST_SOURCES = $(demo_SOURCES)
 am__can_run_installinfo = \
@@ -142,6 +178,23 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -310,6 +363,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -516,6 +570,7 @@ clean-noinstPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 demo$(EXEEXT): $(demo_OBJECTS) $(demo_DEPENDENCIES) $(EXTRA_demo_DEPENDENCIES) 
 	@rm -f demo$(EXEEXT)
 	$(AM_V_CCLD)$(demo_LINK) $(demo_OBJECTS) $(demo_LDADD) $(LIBS)
@@ -569,26 +624,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -600,15 +644,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -617,6 +657,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -758,18 +813,19 @@ 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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/jack/Makefile.in b/tests/examples/jack/Makefile.in
index cf8f82fdc..ed2d54ee6 100644
--- a/tests/examples/jack/Makefile.in
+++ b/tests/examples/jack/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,14 @@ host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = $(am__EXEEXT_1)
 subdir = tests/examples/jack
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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-gcc-inline-assembly.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 \
@@ -105,9 +132,22 @@ jack_client_LDADD = $(LDADD)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 jack_client_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(jack_client_CFLAGS) \
 	$(CFLAGS) $(jack_client_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -120,20 +160,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(jack_client_SOURCES)
 DIST_SOURCES = $(jack_client_SOURCES)
 am__can_run_installinfo = \
@@ -141,6 +177,23 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -309,6 +362,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -517,6 +571,7 @@ clean-noinstPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 jack_client$(EXEEXT): $(jack_client_OBJECTS) $(jack_client_DEPENDENCIES) $(EXTRA_jack_client_DEPENDENCIES) 
 	@rm -f jack_client$(EXEEXT)
 	$(AM_V_CCLD)$(jack_client_LINK) $(jack_client_OBJECTS) $(jack_client_LDADD) $(LIBS)
@@ -570,26 +625,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -601,15 +645,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -618,6 +658,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -759,18 +814,19 @@ 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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/jack/jack_client.c b/tests/examples/jack/jack_client.c
index 99599ab5c..969ceda9c 100644
--- a/tests/examples/jack/jack_client.c
+++ b/tests/examples/jack/jack_client.c
@@ -68,7 +68,7 @@ main (int argc, char **argv)
   }
 
   /* quit after 5 seconds */
-  g_timeout_add (5000, (GSourceFunc) quit_cb, NULL);
+  g_timeout_add_seconds (5, (GSourceFunc) quit_cb, NULL);
   gtk_main ();
 
   /* clean up */
diff --git a/tests/examples/level/Makefile.in b/tests/examples/level/Makefile.in
index dd580de6b..0b17d0197 100644
--- a/tests/examples/level/Makefile.in
+++ b/tests/examples/level/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,14 @@ host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = level-example$(EXEEXT)
 subdir = tests/examples/level
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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-gcc-inline-assembly.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 \
@@ -106,9 +133,22 @@ level_example_DEPENDENCIES = $(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
+am__v_lt_1 = 
 level_example_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(level_example_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -121,20 +161,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = level-example.c
 DIST_SOURCES = level-example.c
 am__can_run_installinfo = \
@@ -142,6 +178,23 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -310,6 +363,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -515,6 +569,7 @@ clean-noinstPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 level-example$(EXEEXT): $(level_example_OBJECTS) $(level_example_DEPENDENCIES) $(EXTRA_level_example_DEPENDENCIES) 
 	@rm -f level-example$(EXEEXT)
 	$(AM_V_CCLD)$(level_example_LINK) $(level_example_OBJECTS) $(level_example_LDADD) $(LIBS)
@@ -568,26 +623,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -599,15 +643,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -616,6 +656,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -757,18 +812,19 @@ 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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/level/level-example.c b/tests/examples/level/level-example.c
index 15de3ba0f..a953176d8 100644
--- a/tests/examples/level/level-example.c
+++ b/tests/examples/level/level-example.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <string.h>
@@ -40,34 +40,37 @@ message_handler (GstBus * bus, GstMessage * message, gpointer data)
       gdouble rms;
       const GValue *array_val;
       const GValue *value;
-      GValueArray *arr;
-
+      GValueArray *rms_arr, *peak_arr, *decay_arr;
       gint i;
 
       if (!gst_structure_get_clock_time (s, "endtime", &endtime))
         g_warning ("Could not parse endtime");
-      /* we can get the number of channels as the length of any of the value
-       * lists */
+
+      /* the values are packed into GValueArrays with the value per channel */
       array_val = gst_structure_get_value (s, "rms");
-      arr = (GValueArray *) g_value_get_boxed (array_val);
-      channels = arr->n_values;
+      rms_arr = (GValueArray *) g_value_get_boxed (array_val);
+
+      array_val = gst_structure_get_value (s, "peak");
+      peak_arr = (GValueArray *) g_value_get_boxed (array_val);
 
+      array_val = gst_structure_get_value (s, "decay");
+      decay_arr = (GValueArray *) g_value_get_boxed (array_val);
+
+      /* we can get the number of channels as the length of any of the value
+       * arrays */
+      channels = rms_arr->n_values;
       g_print ("endtime: %" GST_TIME_FORMAT ", channels: %d\n",
           GST_TIME_ARGS (endtime), channels);
       for (i = 0; i < channels; ++i) {
 
         g_print ("channel %d\n", i);
-        array_val = gst_structure_get_value (s, "rms");
-        arr = (GValueArray *) g_value_get_boxed (array_val);
-        value = g_value_array_get_nth (arr, i);
+        value = g_value_array_get_nth (rms_arr, i);
         rms_dB = g_value_get_double (value);
-        array_val = gst_structure_get_value (s, "peak");
-        arr = (GValueArray *) g_value_get_boxed (array_val);
-        value = g_value_array_get_nth (arr, i);
+
+        value = g_value_array_get_nth (peak_arr, i);
         peak_dB = g_value_get_double (value);
-        array_val = gst_structure_get_value (s, "decay");
-        arr = (GValueArray *) g_value_get_boxed (array_val);
-        value = g_value_array_get_nth (arr, i);
+
+        value = g_value_array_get_nth (decay_arr, i);
         decay_dB = g_value_get_double (value);
         g_print ("    RMS: %f dB, peak: %f dB, decay: %f dB\n",
             rms_dB, peak_dB, decay_dB);
@@ -118,7 +121,7 @@ main (int argc, char *argv[])
     g_error ("Failed to link level and fakesink");
 
   /* make sure we'll get messages */
-  g_object_set (G_OBJECT (level), "message", TRUE, NULL);
+  g_object_set (G_OBJECT (level), "post-messages", TRUE, NULL);
   /* run synced and not as fast as we can */
   g_object_set (G_OBJECT (fakesink), "sync", TRUE, NULL);
 
diff --git a/tests/examples/pulse/Makefile.in b/tests/examples/pulse/Makefile.in
index 5e060c7b0..c58662a04 100644
--- a/tests/examples/pulse/Makefile.in
+++ b/tests/examples/pulse/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,14 @@ host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = pulse$(EXEEXT)
 subdir = tests/examples/pulse
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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-gcc-inline-assembly.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 \
@@ -106,9 +133,22 @@ pulse_DEPENDENCIES = $(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
+am__v_lt_1 = 
 pulse_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(pulse_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -121,20 +161,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = pulse.c
 DIST_SOURCES = pulse.c
 am__can_run_installinfo = \
@@ -142,6 +178,23 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -310,6 +363,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -515,6 +569,7 @@ clean-noinstPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 pulse$(EXEEXT): $(pulse_OBJECTS) $(pulse_DEPENDENCIES) $(EXTRA_pulse_DEPENDENCIES) 
 	@rm -f pulse$(EXEEXT)
 	$(AM_V_CCLD)$(pulse_LINK) $(pulse_OBJECTS) $(pulse_LDADD) $(LIBS)
@@ -568,26 +623,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -599,15 +643,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -616,6 +656,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -757,18 +812,19 @@ 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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/pulse/pulse.c b/tests/examples/pulse/pulse.c
index f1d5b26ea..835244a2b 100644
--- a/tests/examples/pulse/pulse.c
+++ b/tests/examples/pulse/pulse.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
diff --git a/tests/examples/rtp/Makefile.in b/tests/examples/rtp/Makefile.in
index 9722e5c50..3740aef17 100644
--- a/tests/examples/rtp/Makefile.in
+++ b/tests/examples/rtp/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -55,14 +82,14 @@ host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = server-alsasrc-PCMA$(EXEEXT) client-PCMA$(EXEEXT)
 subdir = tests/examples/rtp
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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-gcc-inline-assembly.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 \
@@ -106,6 +133,7 @@ client_PCMA_DEPENDENCIES = $(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
+am__v_lt_1 = 
 client_PCMA_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(client_PCMA_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
@@ -119,6 +147,18 @@ server_alsasrc_PCMA_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(server_alsasrc_PCMA_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
 SCRIPTS = $(noinst_SCRIPTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -131,20 +171,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(client_PCMA_SOURCES) $(server_alsasrc_PCMA_SOURCES)
 DIST_SOURCES = $(client_PCMA_SOURCES) $(server_alsasrc_PCMA_SOURCES)
 am__can_run_installinfo = \
@@ -152,6 +188,23 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -322,6 +375,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -544,9 +598,11 @@ clean-noinstPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 client-PCMA$(EXEEXT): $(client_PCMA_OBJECTS) $(client_PCMA_DEPENDENCIES) $(EXTRA_client_PCMA_DEPENDENCIES) 
 	@rm -f client-PCMA$(EXEEXT)
 	$(AM_V_CCLD)$(client_PCMA_LINK) $(client_PCMA_OBJECTS) $(client_PCMA_LDADD) $(LIBS)
+
 server-alsasrc-PCMA$(EXEEXT): $(server_alsasrc_PCMA_OBJECTS) $(server_alsasrc_PCMA_DEPENDENCIES) $(EXTRA_server_alsasrc_PCMA_DEPENDENCIES) 
 	@rm -f server-alsasrc-PCMA$(EXEEXT)
 	$(AM_V_CCLD)$(server_alsasrc_PCMA_LINK) $(server_alsasrc_PCMA_OBJECTS) $(server_alsasrc_PCMA_LDADD) $(LIBS)
@@ -615,26 +671,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -646,15 +691,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -663,6 +704,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -804,18 +860,19 @@ 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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/rtp/client-PCMA.c b/tests/examples/rtp/client-PCMA.c
index ec498e386..ee8366f53 100644
--- a/tests/examples/rtp/client-PCMA.c
+++ b/tests/examples/rtp/client-PCMA.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <string.h>
diff --git a/tests/examples/rtp/server-alsasrc-PCMA.c b/tests/examples/rtp/server-alsasrc-PCMA.c
index 625a6ba9f..4690eed45 100644
--- a/tests/examples/rtp/server-alsasrc-PCMA.c
+++ b/tests/examples/rtp/server-alsasrc-PCMA.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
@@ -212,7 +212,7 @@ main (int argc, char *argv[])
   gst_element_set_state (pipeline, GST_STATE_PLAYING);
 
   /* print stats every second */
-  g_timeout_add (1000, (GSourceFunc) print_stats, rtpbin);
+  g_timeout_add_seconds (1, (GSourceFunc) print_stats, rtpbin);
 
   /* we need to run a GLib main loop to get the messages */
   loop = g_main_loop_new (NULL, FALSE);
diff --git a/tests/examples/shapewipe/Makefile.in b/tests/examples/shapewipe/Makefile.in
index 26196d2ac..199c42c69 100644
--- a/tests/examples/shapewipe/Makefile.in
+++ b/tests/examples/shapewipe/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -55,15 +82,14 @@ host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = shapewipe-example$(EXEEXT)
 subdir = tests/examples/shapewipe
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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-gcc-inline-assembly.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 \
@@ -109,10 +135,23 @@ shapewipe_example_DEPENDENCIES = $(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
+am__v_lt_1 = 
 shapewipe_example_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(shapewipe_example_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -125,20 +164,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(shapewipe_example_SOURCES)
 DIST_SOURCES = $(shapewipe_example_SOURCES)
 am__can_run_installinfo = \
@@ -147,6 +182,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -315,6 +367,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -522,6 +575,7 @@ clean-noinstPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 shapewipe-example$(EXEEXT): $(shapewipe_example_OBJECTS) $(shapewipe_example_DEPENDENCIES) $(EXTRA_shapewipe_example_DEPENDENCIES) 
 	@rm -f shapewipe-example$(EXEEXT)
 	$(AM_V_CCLD)$(shapewipe_example_LINK) $(shapewipe_example_OBJECTS) $(shapewipe_example_LDADD) $(LIBS)
@@ -575,26 +629,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -606,15 +649,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -623,6 +662,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -764,18 +818,19 @@ 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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/shapewipe/shapewipe-example.c b/tests/examples/shapewipe/shapewipe-example.c
index b10765834..05ed3d9c0 100644
--- a/tests/examples/shapewipe/shapewipe-example.c
+++ b/tests/examples/shapewipe/shapewipe-example.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
diff --git a/tests/examples/spectrum/Makefile.in b/tests/examples/spectrum/Makefile.in
index 0e7ef255e..4c45329c4 100644
--- a/tests/examples/spectrum/Makefile.in
+++ b/tests/examples/spectrum/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,14 +83,14 @@ target_triplet = @target@
 @HAVE_GTK_TRUE@	demo-audiotest$(EXEEXT) \
 @HAVE_GTK_TRUE@	spectrum-example$(EXEEXT)
 subdir = tests/examples/spectrum
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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-gcc-inline-assembly.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 \
@@ -109,6 +136,7 @@ demo_audiotest_DEPENDENCIES = $(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
+am__v_lt_1 = 
 demo_audiotest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(demo_audiotest_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
@@ -129,6 +157,18 @@ spectrum_example_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(spectrum_example_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -141,20 +181,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(demo_audiotest_SOURCES) $(demo_osssrc_SOURCES) \
 	$(spectrum_example_SOURCES)
 DIST_SOURCES = $(demo_audiotest_SOURCES) $(demo_osssrc_SOURCES) \
@@ -164,6 +200,23 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -332,6 +385,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -548,12 +602,15 @@ clean-noinstPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 demo-audiotest$(EXEEXT): $(demo_audiotest_OBJECTS) $(demo_audiotest_DEPENDENCIES) $(EXTRA_demo_audiotest_DEPENDENCIES) 
 	@rm -f demo-audiotest$(EXEEXT)
 	$(AM_V_CCLD)$(demo_audiotest_LINK) $(demo_audiotest_OBJECTS) $(demo_audiotest_LDADD) $(LIBS)
+
 demo-osssrc$(EXEEXT): $(demo_osssrc_OBJECTS) $(demo_osssrc_DEPENDENCIES) $(EXTRA_demo_osssrc_DEPENDENCIES) 
 	@rm -f demo-osssrc$(EXEEXT)
 	$(AM_V_CCLD)$(demo_osssrc_LINK) $(demo_osssrc_OBJECTS) $(demo_osssrc_LDADD) $(LIBS)
+
 spectrum-example$(EXEEXT): $(spectrum_example_OBJECTS) $(spectrum_example_DEPENDENCIES) $(EXTRA_spectrum_example_DEPENDENCIES) 
 	@rm -f spectrum-example$(EXEEXT)
 	$(AM_V_CCLD)$(spectrum_example_LINK) $(spectrum_example_OBJECTS) $(spectrum_example_LDADD) $(LIBS)
@@ -637,26 +694,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -668,15 +714,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -685,6 +727,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -826,18 +883,19 @@ 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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/spectrum/demo-audiotest.c b/tests/examples/spectrum/demo-audiotest.c
index 4b5cc00c3..5ddb0984c 100644
--- a/tests/examples/spectrum/demo-audiotest.c
+++ b/tests/examples/spectrum/demo-audiotest.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /* TODO: add wave selection */
 /* fast vs. slow mode - see update_spectrum_bands()
diff --git a/tests/examples/spectrum/demo-osssrc.c b/tests/examples/spectrum/demo-osssrc.c
index 9eeb6c6ff..1412b7b22 100644
--- a/tests/examples/spectrum/demo-osssrc.c
+++ b/tests/examples/spectrum/demo-osssrc.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/examples/spectrum/spectrum-example.c b/tests/examples/spectrum/spectrum-example.c
index c843d0c35..6ccb5012e 100644
--- a/tests/examples/spectrum/spectrum-example.c
+++ b/tests/examples/spectrum/spectrum-example.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <stdio.h>
diff --git a/tests/examples/v4l2/Makefile.in b/tests/examples/v4l2/Makefile.in
index e7604c1db..c6dd184cf 100644
--- a/tests/examples/v4l2/Makefile.in
+++ b/tests/examples/v4l2/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,14 @@ host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = camctrl$(EXEEXT)
 subdir = tests/examples/v4l2
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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-gcc-inline-assembly.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 \
@@ -106,9 +133,22 @@ camctrl_DEPENDENCIES = $(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
+am__v_lt_1 = 
 camctrl_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(camctrl_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -121,20 +161,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(camctrl_SOURCES)
 DIST_SOURCES = $(camctrl_SOURCES)
 am__can_run_installinfo = \
@@ -142,6 +178,23 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -310,6 +363,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -516,6 +570,7 @@ clean-noinstPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 camctrl$(EXEEXT): $(camctrl_OBJECTS) $(camctrl_DEPENDENCIES) $(EXTRA_camctrl_DEPENDENCIES) 
 	@rm -f camctrl$(EXEEXT)
 	$(AM_V_CCLD)$(camctrl_LINK) $(camctrl_OBJECTS) $(camctrl_LDADD) $(LIBS)
@@ -569,26 +624,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -600,15 +644,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -617,6 +657,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -758,18 +813,19 @@ 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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/v4l2/camctrl.c b/tests/examples/v4l2/camctrl.c
index 64db577fa..698341811 100644
--- a/tests/examples/v4l2/camctrl.c
+++ b/tests/examples/v4l2/camctrl.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /* demo for using gstcontroler with camera capture for e.g. bracketing
  *
diff --git a/tests/files/Makefile.in b/tests/files/Makefile.in
index dfced1d4c..87d25cc65 100644
--- a/tests/files/Makefile.in
+++ b/tests/files/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,14 +79,13 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = tests/files
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 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-gcc-inline-assembly.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 \
@@ -95,12 +121,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 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_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -108,6 +140,7 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -274,6 +307,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -486,11 +520,11 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
+
+ctags CTAGS:
 
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -626,15 +660,16 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool 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-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool 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-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/icles/Makefile.in b/tests/icles/Makefile.in
index d111f0779..0ce27011a 100644
--- a/tests/icles/Makefile.in
+++ b/tests/icles/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.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.
+# Copyright (C) 1994-2013 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.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -57,14 +84,14 @@ noinst_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \
 	videocrop-test$(EXEEXT) videobox-test$(EXEEXT) \
 	videocrop2-test$(EXEEXT)
 subdir = tests/icles
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 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-gcc-inline-assembly.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 \
@@ -112,6 +139,7 @@ equalizer_test_DEPENDENCIES = $(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
+am__v_lt_1 = 
 equalizer_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(equalizer_test_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
@@ -171,6 +199,18 @@ ximagesrc_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(ximagesrc_test_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
 	$@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+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_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -183,20 +223,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(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 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 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   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(equalizer_test_SOURCES) $(gdkpixbufsink_test_SOURCES) \
 	$(test_oss4_SOURCES) $(v4l2src_test_SOURCES) \
 	$(videobox_test_SOURCES) $(videocrop_test_SOURCES) \
@@ -211,6 +247,23 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -379,6 +432,7 @@ LIBM = @LIBM@
 LIBOBJS = @LIBOBJS@
 LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
 LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBRT = @LIBRT@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LIBV4L2_CFLAGS = @LIBV4L2_CFLAGS@
@@ -617,27 +671,35 @@ clean-noinstPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 equalizer-test$(EXEEXT): $(equalizer_test_OBJECTS) $(equalizer_test_DEPENDENCIES) $(EXTRA_equalizer_test_DEPENDENCIES) 
 	@rm -f equalizer-test$(EXEEXT)
 	$(AM_V_CCLD)$(equalizer_test_LINK) $(equalizer_test_OBJECTS) $(equalizer_test_LDADD) $(LIBS)
+
 gdkpixbufsink-test$(EXEEXT): $(gdkpixbufsink_test_OBJECTS) $(gdkpixbufsink_test_DEPENDENCIES) $(EXTRA_gdkpixbufsink_test_DEPENDENCIES) 
 	@rm -f gdkpixbufsink-test$(EXEEXT)
 	$(AM_V_CCLD)$(gdkpixbufsink_test_LINK) $(gdkpixbufsink_test_OBJECTS) $(gdkpixbufsink_test_LDADD) $(LIBS)
+
 test-oss4$(EXEEXT): $(test_oss4_OBJECTS) $(test_oss4_DEPENDENCIES) $(EXTRA_test_oss4_DEPENDENCIES) 
 	@rm -f test-oss4$(EXEEXT)
 	$(AM_V_CCLD)$(test_oss4_LINK) $(test_oss4_OBJECTS) $(test_oss4_LDADD) $(LIBS)
+
 v4l2src-test$(EXEEXT): $(v4l2src_test_OBJECTS) $(v4l2src_test_DEPENDENCIES) $(EXTRA_v4l2src_test_DEPENDENCIES) 
 	@rm -f v4l2src-test$(EXEEXT)
 	$(AM_V_CCLD)$(v4l2src_test_LINK) $(v4l2src_test_OBJECTS) $(v4l2src_test_LDADD) $(LIBS)
+
 videobox-test$(EXEEXT): $(videobox_test_OBJECTS) $(videobox_test_DEPENDENCIES) $(EXTRA_videobox_test_DEPENDENCIES) 
 	@rm -f videobox-test$(EXEEXT)
 	$(AM_V_CCLD)$(videobox_test_LINK) $(videobox_test_OBJECTS) $(videobox_test_LDADD) $(LIBS)
+
 videocrop-test$(EXEEXT): $(videocrop_test_OBJECTS) $(videocrop_test_DEPENDENCIES) $(EXTRA_videocrop_test_DEPENDENCIES) 
 	@rm -f videocrop-test$(EXEEXT)
 	$(AM_V_CCLD)$(videocrop_test_LINK) $(videocrop_test_OBJECTS) $(videocrop_test_LDADD) $(LIBS)
+
 videocrop2-test$(EXEEXT): $(videocrop2_test_OBJECTS) $(videocrop2_test_DEPENDENCIES) $(EXTRA_videocrop2_test_DEPENDENCIES) 
 	@rm -f videocrop2-test$(EXEEXT)
 	$(AM_V_CCLD)$(videocrop2_test_LINK) $(videocrop2_test_OBJECTS) $(videocrop2_test_LDADD) $(LIBS)
+
 ximagesrc-test$(EXEEXT): $(ximagesrc_test_OBJECTS) $(ximagesrc_test_DEPENDENCIES) $(EXTRA_ximagesrc_test_DEPENDENCIES) 
 	@rm -f ximagesrc-test$(EXEEXT)
 	$(AM_V_CCLD)$(ximagesrc_test_LINK) $(ximagesrc_test_OBJECTS) $(ximagesrc_test_LDADD) $(LIBS)
@@ -796,26 +858,15 @@ mostlyclean-libtool:
 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)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	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; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -827,15 +878,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -844,6 +891,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -985,18 +1047,19 @@ 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
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am 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 tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/icles/equalizer-test.c b/tests/icles/equalizer-test.c
index 41ee0f375..3f9e50e25 100644
--- a/tests/icles/equalizer-test.c
+++ b/tests/icles/equalizer-test.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/tests/icles/gdkpixbufsink-test.c b/tests/icles/gdkpixbufsink-test.c
index 272a07745..fbcb13abd 100644
--- a/tests/icles/gdkpixbufsink-test.c
+++ b/tests/icles/gdkpixbufsink-test.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/icles/test-oss4.c b/tests/icles/test-oss4.c
index 1715c663e..b2e4b96cb 100644
--- a/tests/icles/test-oss4.c
+++ b/tests/icles/test-oss4.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
diff --git a/tests/icles/v4l2src-test.c b/tests/icles/v4l2src-test.c
index 8b9dfe371..2162e5c57 100644
--- a/tests/icles/v4l2src-test.c
+++ b/tests/icles/v4l2src-test.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <string.h>
diff --git a/tests/icles/videobox-test.c b/tests/icles/videobox-test.c
index 49697df98..0c85a35de 100644
--- a/tests/icles/videobox-test.c
+++ b/tests/icles/videobox-test.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/icles/videocrop-test.c b/tests/icles/videocrop-test.c
index f44d48b6c..d95e9e4a7 100644
--- a/tests/icles/videocrop-test.c
+++ b/tests/icles/videocrop-test.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/icles/videocrop2-test.c b/tests/icles/videocrop2-test.c
index 58d19322f..2c6801f32 100644
--- a/tests/icles/videocrop2-test.c
+++ b/tests/icles/videocrop2-test.c
@@ -14,8 +14,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/icles/ximagesrc-test.c b/tests/icles/ximagesrc-test.c
index 12ec0dc98..fdcc580ee 100644
--- a/tests/icles/ximagesrc-test.c
+++ b/tests/icles/ximagesrc-test.c
@@ -13,8 +13,8 @@
  *
  * 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.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -60,7 +60,7 @@ main (int argc, char **argv)
   }
 
   /* We want to get out after 5 seconds */
-  g_timeout_add (5000, (GSourceFunc) terminate_playback, pipeline);
+  g_timeout_add_seconds (5, (GSourceFunc) terminate_playback, pipeline);
 
   g_main_loop_run (loop);
 
diff --git a/win32/common/config.h b/win32/common/config.h
index ff951be38..ebb77cc7b 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -90,6 +90,9 @@
    the CoreFoundation framework. */
 #undef HAVE_CFPREFERENCESCOPYAPPVALUE
 
+/* Define to 1 if you have the `clock_gettime' function. */
+#undef HAVE_CLOCK_GETTIME
+
 /* Define to 1 if you have the `cosh' function. */
 #undef HAVE_COSH
 
@@ -139,6 +142,10 @@
    */
 #undef HAVE_DCGETTEXT
 
+/* Define to 1 if you have the declaration of `V4L2_MEMORY_DMABUF', and to 0
+   if you don't. */
+#undef HAVE_DECL_V4L2_MEMORY_DMABUF
+
 /* Define to enable DirectSound plug-in (used by directsoundsink). */
 #undef HAVE_DIRECTSOUND
 
@@ -226,9 +233,6 @@
 /* Define to enable Portable Network Graphics library (used by png). */
 #undef HAVE_LIBPNG
 
-/* soup gnome integration */
-#undef HAVE_LIBSOUP_GNOME
-
 /* Whether libv4l2 is available for video buffer conversion */
 #undef HAVE_LIBV4L2
 
@@ -334,6 +338,12 @@
 /* Defined if the VP8 encoder is available */
 #undef HAVE_VP8_ENCODER
 
+/* Defined if the VP9 decoder is available */
+#undef HAVE_VP9_DECODER
+
+/* Defined if the VP9 encoder is available */
+#undef HAVE_VP9_ENCODER
+
 /* Define to enable VPX decoder (used by vpx). */
 #undef HAVE_VPX
 
@@ -378,7 +388,7 @@
 #define PACKAGE_NAME "GStreamer Good Plug-ins"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer Good Plug-ins 1.0.8"
+#define PACKAGE_STRING "GStreamer Good Plug-ins 1.1.2"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gst-plugins-good"
@@ -387,7 +397,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.0.8"
+#define PACKAGE_VERSION "1.1.2"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -421,7 +431,7 @@
 #undef TARGET_CPU
 
 /* Version number of package */
-#define VERSION "1.0.8"
+#define VERSION "1.1.2"
 
 /* old wavpack API */
 #undef WAVPACK_OLD_API
-- 
GitLab